主题中讨论的其他器件:C2000WARE
您好!
我可以使用一些提示、想法和建议。 我正在编写一个引导加载程序、该加载程序位于第一个闪存扇区中、应通过 CAN 接受固件并将其存储在其余扇区中。 引导加载程序擦除为固件保留的闪存扇区、然后使用来自 CAN 总线的数据刷写固件。 这非常好!
我使用 make (CMake)构建软件、并将生成的具有 CSS 和 XDS200的 bootloader.out 文件加载到 TMS320F28379D 的第一个 CPU 中(所有其他 CPU 都空闲)。 我启动软件、一切正常。
当我现在关闭硬件并再次打开电源时、软件崩溃、并执行非法操作。 到目前为止、崩溃似乎是从返回包含对 F021 API (驻留在 RAM 中)调用的函数开始的。 如果我注释掉对 F021 API 函数的调用、引导加载程序不会崩溃。 当我单步执行代码时、API 调用不会崩溃、但从 RAM 驻留调用函数返回到闪存中的函数似乎是问题所在。 (函数正忙等待 Fapi_checkFsmForReady()返回 Fapi_Status_FsmReady)。
在我看来、bootloader.out 文件的加载确实具有一些必要的副作用、但在对软件进行电源复位时不会发生这种副作用。 我尝试设置范围规避设置:0x00-0x80000、0x82000-0xffffffff、以防止调试探针(XDS200)写入引导加载程序闪存扇区之外的任何内容。 但这并没有改变任何东西。
有什么东西、我可以用来查看调试探针写入的存储器范围吗?
此致、
Torsten