gpt4 book ai didi

c - C语言RAM校验和

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:08 24 4
gpt4 key购买 nike

我需要在启动时使用类似棋盘的算法检查 MCU 的 RAM。我不想丢失 RAM 中已有的任何数据,而且我也不知道如何不影响我用来执行此算法的变量。我在想类似的事情:

for (position=0; position< 4096; position++)
{
*Temporal = 0x5555;
if(*Temporal != 0x5555) Error = TRUE;
*Temporal = 0xAAAA;
if(*Temporal != 0xAAAA) Error= TRUE;

Temporal +=1;

}

我应该修改链接器以了解 Temporal 和 Error 的放置位置吗?

最佳答案

声明指针时使用修饰符“register”(如“register int *”)。寄存器是处理器内核中的一段特殊内存,(通常)不算作 RAM 的一部分,因此对它们的任何更改都不算作 RAM 读/写。存在一些异常(exception)情况;例如,在 AVR 微 Controller 中,RAM 的前 32 个字节被“伪造”到寄存器中。

你的问题可能因为不够清晰而遭到否决,大多数初学者 C 程序员很容易解决关于保留 RAM 中的内容的问题(只需在测试之前将指针的内容复制到临时变量中,然后复制考试结束后返回)。此外,您没有执行校验和:您只是在进行内存测试。这些是非常不同、独立的东西。

关于c - C语言RAM校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142428/

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