2

我对嵌入式编程相对较新,并且无法找到将数据保存到 MCU 的方法,因此它在重新启动期间仍然存在。

我在某处读到需要使用 PROGMEM 保存到 MCU 闪存。但还没有找到任何进一步的细节。

我需要能够执行以下操作:-

  • 将字符串(设备名称)保存到 MCU。
  • 需要时从 MCU 检索字符串(设备名称)。

我正在开发 ARM Cortex M4 微控制器

编辑:我刚刚注意到我正在使用的 ARM Cortex M4(TI TM4C123x 系列)有 2k 的 EEPROM,所以我假设这是持久数据的更好选择。但是怎么做?

4

2 回答 2

3

如果数据只需要通过软重置来保持,那么您应该能够将数据存储在 RAM 中。您需要确保启动代码不会初始化持久数据所在的 RAM 部分。但是,如果您希望数据在断电时保持不变,那么您需要将数据存储在非易失性存储器中,例如闪存或 EEPROM。

为了将数据写入闪存或 EEPROM,您需要根据需要操作控制寄存器的驱动程序代码。为了编写驱动程序,您必须阅读并理解设备数据表的相关部分。

TI 制造了一个名为 Tiva C LaunchPad (EK-TM4C123GXL) 的评估板,其中包含一个 TM4C123G 微控制器。为了支持该板,他们还提供软件,包括示例程序和驱动程序。他们的驱动程序软件包括片上闪存和 EEPROM 的示例驱动程序。您应该下载该软件并查看闪存和 EEPROM 驱动程序以及其他示例。您可以按原样使用他们的示例驱动程序。这是Tiva C LaunchPad 资源页面的链接,您可以在其中下载软件。

于 2013-10-22T12:16:02.897 回答
1

您需要查看特定微控制器或片上系统的数据表。

您可能可以写入程序闪存,但这有点“可怕”,因为您冒着外部工具覆盖您的数据的风​​险,例如当您下次重新闪存实际软件时。

如果您的设备有其他非易失性存储区域,请使用该区域而不是程序闪存。

如何做到这一点的确切说明(方式)超出了 C 语言的规定;您需要弄清楚要写入哪些寄存器以及以什么确切顺序写入。通常也有时间要求。

于 2013-10-22T09:53:47.737 回答