【问题标题】:Read flash memory data, ATSAM3读取闪存数据,ATSAM3
【发布时间】:2017-12-11 16:26:34
【问题描述】:

我正在通过 Arduino Due Board (ATSAM3X) 开发一个项目,我正在使用 Atmel Studio7 和 ASF。 我想知道如何读取闪存块/区域,计算 CRC32 或简单的校验和存储器,数据表非常混乱,EEFC 模块描述了如何在闪存中写入或如何读取“唯一标识符”,但不是如何读取地址闪存范围。

如果有人有我可以阅读的示例代码或文档,我将不胜感激。

向大家致以最诚挚的问候。 马可

【问题讨论】:

  • 你的意思是你正在执行的闪存有一个固定的地址空间?你只要指着它读就行了吗?
  • 我不知道我是否正确地问了这个问题,我很抱歉,但 ATSAM3X 的闪存范围从 0x80000h 到闪存代码结尾。我只想在执行时“读取”这些地址范围的数据来计算校验和。
  • 然后就这样做,阅读它。无符号字符 *x; x = (unsigned char *)0x80000;并使用它(然后根据需要混合挥发物)
  • 您是否在 RTOS 操作系统上运行?
  • 2 行代码,问题已解决。 “你就是男人!”,我很感激你的回应。

标签: arm cortex-m3 atsam3x


【解决方案1】:

您可以使用
char *ptr = <start address of the required memory block>;
然后从ptr开始阅读。

你碰巧提到你要计算校验和。计算正在运行的程序的校验和有一个缺点,即程序数据部分(其中包含变量赋值的部分)随着程序的执行而变化。仅计算 文本部分 的校验和,该校验和在整个程序中保持不变。阅读代码部分了解更多详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多