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.

[参考译文] TMS320F28388D:将变量存储在闪存中

Guru**** 2604715 points
Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1050408/tms320f28388d-store-variables-in-flash

器件型号:TMS320F28388D

大家好、

我正在为 TMS320F28388D 的 CM 开发软件、我想将一些变量存储在闪存存储器中。 执行 IPC 时、我能够使用 Pragma 指定存储器区域:

#pragma DATA_SECTION (cpuToCm、  "MSGRAM_CPU1_TO_CM_ECAT")
常量静态 GPC_CPU_TO_CM cpuToCm;

linker-CMD:
MSGRAM_CPU1_TO_CM_ECAT:> CPU1TOCMMSGRAM0_ECAT,type=NOINIT

现在、我对其他数据尝试了相同的东西
#pragma DATA_SECTION (CiA402ProfileObjects、  "flash_objects")
proto TOBJECT OBJMEM CiA402ProfileObjects[MAX_TOTAL_Axs][13];

linker-CMD:
Flash_objects:> CMBANK0_SECTOR9

这样、链接器会将变量放置在闪存存储器中、但不会初始化存储器。 我从存储器位置读取的所有值都是0xFFFF。

那么、我的问题是、如何将只读变量存储在闪存存储器中、以及如何在闪存过程中对其进行初始化。 (在 TMS320F28388D 的 CM 上)

谢谢、此致、

Marcel Kummer。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Marcel:  

    您是否在 CCS 的"Memory"窗口中查看了"Program"或"Data"视图? 当您将项目编程到器件中时、您能看到闪存 API 首先擦除扇区、然后对其进行编程吗?

    谢谢、  

    Anu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当我在 DebugView 中选择 CM 时、我可以在其中选择(DATA/Program/IO/外设)的下拉菜单消失。 因此、我只能观察默认的存储器视图。 MEMORY 视图和表达式窗口都显示0xFFFF。
    (CCS 版本:版本:10.1.1.00004)

    当闪存时、我可以看到每个闪存组都被删除。 刷写应用程序时、我只能看到.text。

    如果变量不常量、是否有问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    马塞尔  

    我会在一天内回来。  

    谢谢、  

    Anu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anu、您好!

    您是否找到了对我有所帮助的东西?

    此致、

    Marcel。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    马塞尔  

    我对拖延表示歉意,我仍在研究这一点。 有一个问题适合您-是否还有其他问题要写入此领域? 闪存擦除按扇区发生、如果在程序执行期间有需要修改的闪存内容、则需要进入单独的扇区。  

    谢谢、  

    Anu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anu、您好!

    在这个部门没有其他任何东西。 我在链接器 CMD 文件中选择了一个空扇区。

    我也不想在执行期间更改数据。 这就是我首先要将数据放入闪存的原因。

    此致、

    Marcel。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    马塞尔  

    我尝试在我的一侧进行一些测试来重现此问题、并发现使用 const 关键字确实会对使用 DATA_SECTION pragma 时变量的内容是否写入闪存产生影响。 我假设您至少将从数组中读取正确吗? 如果您不从数组中读取、则还需要一个 RETAIN pragma。  

    谢谢、  

    Anu