Other Parts Discussed in Thread: C2000WARE
主题中讨论的其他器件:C2000WARE
您好专家、
我的客户正在为 F28075开发引导加载程序。
他们发现 TI 演示已将 FlashAPI 放入 RAM 中。

我不确定这是 F28075的必去之地吗? 他们没有这样做,但有时它可以工作。
BR
Emma
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.
Other Parts Discussed in Thread: C2000WARE
您好专家、
我的客户正在为 F28075开发引导加载程序。
他们发现 TI 演示已将 FlashAPI 放入 RAM 中。

我不确定这是 F28075的必去之地吗? 他们没有这样做,但有时它可以工作。
BR
Emma
Vamsi、
感谢您的回复。 问题是、客户的引导加载程序代码未完成此操作、但仍可以正常工作。
但是、他们发现代码将在加1指令时消失。 因此、他们正在检查根本原因。
附加的客户命令文件。
e2e.ti.com/.../2807x_5F00_FLASH_5F00_CLA_5F00_lnk_5F00_cpu1.cmd
您是否发现任何问题?
另一个问题是、他们发现汇编代码在运行函数后会发生变化。
这是原始源代码和汇编代码:

运行函数 fapi_setActiveFlashBank()后,汇编代码发生了很大变化。

我们可以在右侧看到许多指令:
MOVB XAR0,#0x30 ADDB XAR4,#67
我真的想知道这意味着什么?
BR
Emma
Emma、
在链接器 cmd 文件中、我不会看到闪存 API 库映射到闪存以进行加载、也不会看到映射到 RAM 以进行执行。
请查看 C2000Ware 中提供的闪存 API 使用示例。 在示例项目中、您将注意到闪存 API 函数是从 RAM 执行的。 从示例中观察以下内容:
(a)示例中使用的链接器命令文件: 将闪存 API 库分配给.TI.ramfunc 段、该段具有闪存加载地址和 RAM 运行地址。
(b)示例的 main 函数调用 memcpy()、在上述段的内容被执行之前将其从闪存复制到 RAM 中。
以上内容在闪存 API 常见问题解答页面中进行了介绍: e2e.ti.com/.../faq-faq-on-flash-api-usage-for-c2000-devices
谢谢、此致、
Vamsi