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.

[参考译文] TM4C123GH6PM:闪存

Guru**** 1788580 points
Other Parts Discussed in Thread: TM4C123GH6PM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1404423/tm4c123gh6pm-flash-memory

器件型号:TM4C123GH6PM

工具与软件:

大家好、

我不熟悉闪存编程、需要一些帮助。

我有一些用户设置需要保存在非易失性存储器中。

我在这里找到一个示例、

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));