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.
工具与软件:
您好 Ankush:
"你说什么 \examples\nortos\LP_MSPM0G3507\EEPROM 应该在 MSPM0L2228上正常工作?
我正在尝试配置或映射一个可使用的闪存区域、该区域类似于 MSPM0L2228中的 EEPROM 存储。
此致、
Chris
Chris、您好!
我会打开一个 empty_MSPM0L2228示例、并通过在 EEPROM 文件中添加您所需要的正确器件链接器和头文件。 应用代码与 MSPM0无关、并且将在任何 MSPM0器件上运行。
如果您想利用 CASH 在链接帖子中提到的双组属性、那么您可以对链接器文件(.cmd)进行一些调整并调整您的存储器组织。
请注意、代码示例是一个示例、而不是完整的程序。
此致、
Luke
尊敬的 Luke:
谢谢、这与我目前研究的方法非常相似、很高兴知道它与器件无关。
我可以询问并仔细检查、我所使用的构建是否需要从 RAM 运行?
我想是这样、但在示例中没有看到任何配置选项。
我在网上找到了一些说明、这些说明表明这里有配置选项、但可能适用于不同的器件。
此致、
Chris
Chris、您好!
该示例中的函数确实使用"FromRAM"更新闪存、因为原始器件是单存储体器件。 由于 L2228是双存储体器件、因此您实际上可以使用正常的闪存功能。
但是、在这个过程中需要考虑一个系统流程。 一次只能在闪存中执行一个功能-执行、擦除、编程。 因此、当您擦除一个存储体时、所有可执行函数都需要在另一个存储体中执行。 解决这个问题有几种不同的方法、但我要做的是在另一个组擦除时、在我的主存储库中保留要执行的函数子集、本质上是切换到状态机。
您可以在.cmd 文件中对存储器进行分区、以轻松对组进行分段、并使用编译器属性将函数放置在闪存区域中。
此致、
Luke
尊敬的 Luke:
谢谢、所以使用普通闪存函数、我应该能够从组0中执行、并将组1用作模拟 EEPROM?
关于.cmd 文件、我似乎在我的项目中没有该文件、并假设它使用的是默认值。
您能否分享示例或指向参考的链接?
此致、
Chris
大家好、团队成员:
如果不看到某件事起作用、就很难取得进展。
所有示例都失败、我没有参考点来生成 cmd 文件来移动存储器中的函数。
是否有无需更改即可为 L2228正常工作的示例项目?
此致、
Chris
Chris、您好!
默认的.cmd 文件显示了如何将函数放在存储器的特定部分中。 在查看我的图像时、您会看到.TI.ramfunc 已加载到闪存中并从 SRAM 运行。 函数本身具有要放置在具有这些属性的段中的属性的标签。
您可以针对 L2228执行类似的操作、但将其拆分为单独的闪存组。
我们没有具体的 L2228示例。
当您指出示例失败时、会遇到哪些问题?
谢谢您、我看到所有示例都在 Default_Handler 中结束、最后尝试的是对 DL_FlashCTL_executeCommandFromRAM 的调用。
它最初看起来不是从 RAM 运行、但 PC 显然是 RAM 地址:
未到达屏幕截图中的第二个断点、首先到达 Default_Handler。
因此、问题很可能是我的配置出现了其他情况。
最终、我想在 L2228上获得一个可用作 EEPROM 的闪存区域。
我没有在闪存中分隔一个区域、只是想先看看示例工作。
确认函数 DL_FlashCTL_executeCommandFromRAM 正在从 RAM 运行后、我将配置一个闪存区域、并通过链接器配置演示 flashctl_multiple_size_write 可使用的闪存区域。 如果仍然存在错误、则必须由于其他原因而调用 Default_Handler。
我已经尝试使用链接器命令文件、但在尝试擦除扇区时仍然遇到代码异常。
所有这些都已在我们自己的电路板上完成、明天或下周早些时候可以在 Launchpad 电路板上尝试类似操作。
我所做的更改如下:
我通过检查映射文件确认链接器文件已经用于成功构建:
除了看到它在 LaunchPad 板上的表现外、我不确定还可以尝试哪些其他方法、因为出现异常的根本原因并不明显。
这感觉就像一个访问问题、但不确定可能是什么。
尊敬的 TI 团队:
我已经找到了我遇到的所有 MSPM0L2228闪存编程示例在 Default_Handler 中最后的问题的根本原因。
问题是 SDK 中缺少启动代码。
这是 SDK mspm0_sdk_2_02_00_05中 MSPM0L2228的源代码中包含的内容:
它应该是:
在比较 MSPM0G3507的运行代码时、这一点很明显、在静态分析差异时缺失。
是否计划对 SDK 进行更新以避免类似问题?
Chris、您好!
我不知道对启动文件的更改、因此感谢您提出此问题。 我会将其告知我们的团队、我们可以做什么、要么默认添加此文件、要么提供消息、以便在相关示例中轻松找到它(.TI.ramFunc 段创建功能在.cmd 文件中可能是一个合适的地方)。
此致、
Luke