gpt4 book ai didi

c++ - 检查写入寄存器的值是否正确

转载 作者:行者123 更新时间:2023-11-30 20:23:54 25 4
gpt4 key购买 nike

我是c语言的初学者。

我有一个将一些特定值写入寄存器的函数:

  if(something == someCondition )
{

Write_into_register( Msg->R_addres, Msg->value );
}

到目前为止,这有效。我还有一个读取函数,它只读取写入寄存器的值:

uint read_value_from_register( R_addres addr ){}

这也很好用。

现在我想要这样的东西:

  1. 每次将值写入寄存器时,检查它是否确实是写入寄存器的正确值(使用我的读取函数)
  2. 如果没有写入值或者不是同一个值,请尝试3次写入正确的值
  3. 如果第三次尝试未成功,则提出错误

如何表示这个算法并将其与我现有的函数结合起来?你能将它表示为伪代码吗?将不胜感激!

尝试过这样的事情:

int index;
Write_into_register(addres, value );
for (index=0;index<3;i++)
if (value== read_value_from_register(addres))
return 1;
else
return ERROR;

最佳答案

假设你要写入的数据是一个整数。

int Write_verify( R_addres addr, int data)
{
Write_into_register(addr, data );
if (data == read_value_from_register(addr))
return 1;
else
return 0;
}

该函数将写入并验证数据。如果验证成功,则返回 1;如果验证失败,则返回 0。

如果你想写入3次数据,你必须像这样修改上面的代码。

int Write_verify( R_addres addr, int data)
{
Write_into_register(addr, data );
for (int i=0; i<2; i++)
{
if (data == read_value_from_register(addr))
return 1;
else
Write_into_register(addr, data );
}

// Check for last value
if (data == read_value_from_register(addr))
return 1;
else
return 0;
}

关于c++ - 检查写入寄存器的值是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35222104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com