【发布时间】:2021-02-06 11:33:05
【问题描述】:
我希望在 atmega644p 上进行一些实验,以评估电源循环之间 SRAM 的衰减量。我的方法是将SRAM中的字节数设置为0xFF,然后当MCU上电后,统计这些字节中剩余的1个数。
为此,我需要从 SRAM 中的已知内存地址读取和写入 1 数组。到目前为止,我的代码使用设置为 0x1000 的指针将值写入特定地址,然后在加电时开始从该地址读取数组。但是,我需要一种方法来保证这部分 SRAM 内存(例如,0x100 + 64 字节)在读取之前不会分配给其他变量/被覆盖。
我在网上查看了分配内存段的可能性——我不知道在这种情况下这是否是一个好的解决方案,甚至不太确定如何去做。任何人都可以提出一个解决这个问题的巧妙方法吗?
如有任何问题,请提出澄清。
感谢您的帮助。
【问题讨论】:
-
Can anyone suggest a neat way of approaching this?指定在链接描述文件中不使用的区域。这就是链接描述文件的用途。 -
您的 SRAM 是否总是降级 1->0?这是否记录在您的特定设备的某个地方?如果您假设因为当您的代码运行时 RAM 始终为 0,那可能只是因为这就是初始化将 RAM 归零的原因,即已知状态。
-
我的理解是 SRAM 中的位具有默认状态,可以是 1 或 0。这个想法是,如果将足够的位设置为 1,大约 50% 将变为零,因为它们会腐烂。