工具/软件:
我正在使用 TMS320F28384S 并开发一个引导加载程序、但该程序在执行闪存下载后不会跳转。
问题
使用相同的引导加载程序、如果我使用调试器写入程序、则跳转将正常工作。 但是、如果我使用引导加载程序写入它、则不会发生跳转。
正常运行
1-1. 应用程序直接通过调试器写入(从 0x84000 开始)。
1-2. 引导加载程序直接通过调试器写入 (0x80000、仅使用扇区 0 和 1)。
1-3. 在引导加载程序中、应用程序跳转到_c_int00 的地址。
1-4. 程序正常跳转。
失效情况
2-1. 引导加载程序直接通过调试器写入 (0x80000、仅使用扇区 0 和 1)。
2-2. 使用 SCIA、使用 Fapi_issueProgrammingCommand 函数将十六进制文件写入从地址 0x84000 开始的闪存。
我添加了以下十六进制文件选项:
-map=sections.txt --entrypoint=_c_int00 --memwidth=16 --romwidth=8 --order=LS
2-3. 在引导加载程序中、应用程序跳转到_c_int00 的地址。
2-4. 程序不会跳转。
已检查的分数/问题
比较使用调试器写入与使用引导加载程序写入后的存储器内容时、
Memory Browser 中的 8 位十六进制 TI 样式视图看起来完全相同。
但是、16 位十六进制 — TI 样式视图显示了差异。 哪一个应该被认为是正确的?
由于使用了相同的引导加载程序、我们是否可以假设程序跳转代码本身正确?
