工具与软件:
大家好、
我不熟悉闪存编程、需要一些帮助。
我有一些用户设置需要保存在非易失性存储器中。
我在这里找到一个示例、
https://www.youtube.com/watch?v=coztn7F4jbM
这种状态表明只要不覆盖程序存储位置、就可以"在任何位置编程"。
阅读了数据表后、我更加困惑、因为数据表中没有讨论上面的视频中提到的任何内容。 除了需要存储的用户寄存器太小、用户寄存器似乎没有进行编程的安全区域。
有人对如何开始有任何建议吗?
谢谢!
解决了
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
大家好、
我不熟悉闪存编程、需要一些帮助。
我有一些用户设置需要保存在非易失性存储器中。
我在这里找到一个示例、
https://www.youtube.com/watch?v=coztn7F4jbM
这种状态表明只要不覆盖程序存储位置、就可以"在任何位置编程"。
阅读了数据表后、我更加困惑、因为数据表中没有讨论上面的视频中提到的任何内容。 除了需要存储的用户寄存器太小、用户寄存器似乎没有进行编程的安全区域。
有人对如何开始有任何建议吗?
谢谢!
解决了
您好、Allan:
是的、您可以将用户数据编程到闪存中、但您需要非常小心、不要覆盖闪存中存储的现有程序代码。 例如、TM4C123GH6PM 上有256KB 的闪存。 假设您知道您的固件永远不会超过128KB、然后您可以在运行时使用上部128KB 来存储用户的数据。 要问的问题是、您需要存储多少数据? 如果只需存储几个数据、为什么不在 EEPROM 上存储运行时用户数据? 除非您需要保存大量数据、否则 TM4C123 MCU 上有一个2kB EEPROM。 则可以将运行时用户数据保存在 EEPROM 上。 对 EEPROM 进行编程相当简单。 您观看的 YouTube 示例中的任何内容都可以使用 EEPROM 来完成。 请参阅以下示例、您也可以在外设驱动程序用户指南中找到该示例。
= EEPROMInit(); // // Check if the EEPROM Initialization returned an error // and inform the application // if(ui32EEPROMInit != EEPROM_INIT_OK) { while(1) { } } // // Program some data into the EEPROM at address 0x400. // pui32Data[0] = 0x12345678; pui32Data[1] = 0x56789abc; EEPROMProgram(pui32Data, 0x400, sizeof(pui32Data)); // // Read it back. // EEPROMRead(pui32Read, 0x400, sizeof(pui32Read));