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.
您好专家、
我的客户正在为 F28075开发引导加载程序。
他们发现 TI 演示已将 FlashAPI 放入 RAM 中。
我不确定这是 F28075的必去之地吗? 他们没有这样做,但有时它可以工作。
BR
Emma
Emma、
在此器件上、闪存 API 应从 RAM 执行。 示例显示了在运行时加载到闪存、然后复制到 RAM 执行。
如果您有其他问题、请告诉我。
谢谢、此致、
Vamsi
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
Vamsi、
谢谢。 因此、必须将闪存 API 放入 RAM 中。 我是对的吗?
另一件事是、为什么在运行函数后汇编代码发生更改?
请帮您了解一下这个问题吗?
BR
Emma
Emma、
是的、从闪存复制到 RAM 并从 RAM 执行。
在汇编代码更改时:如果您在从 RAM 执行 API 之后观察到这一点、我们可以进行调试。 我不认为会发生这种情况。 让我知道它是如何与 RAM 执行一同执行的。
谢谢、此致、
Vamsi