工具/软件:Code Composer Studio
您好!
我为 定制板开发了第二个引导加载程序。 目标 C6418、CCS5.2和应用程序是非 BIOS 应用程序。 它没有充分发挥作用。 我将二进制文件存储到闪存中、CS1、8位。 我看到 在引导时正确复制了第一个1k 映像 、然后我能够确认 boot.asm 例程正确地将应用程序映像从外部闪存复制到片上 RAM 中 (为了进行调试、我在 boot.asm 代码的末尾添加了一个无限循环、并使用调试器加载了符号、最后通过存储器查看器、我能够在 ram 0x400处看到正确复制的应用程序映像字节)。 问题似乎 出在_c_int00调用上、事实上、一旦.asm 例程结束且 c_int00被调用、就不 会发生其他情况。 我不理解 的是、如果我执行以下操作、我会看到该应用程序正常工作:
1) 1)将目标与仿真器连接;
2) 2) 使用 code composer 菜单 Run->ResetCpu 重置 CPU
3) 3)让应用程序运行(F8)
为什么如果我连接了仿真器、并且只需执行 CPU 复位命令、然后执行运行命令、我会看到应用程序从闪存正确加载并执行、但如果我打开电路板(没有仿真器) 、它不起作用? 它是否与链接器配置有关? 我已确保 在电路板启动时未显示硬件错误。 我甚至向 boot.asm 例程添加了一个长延迟(30秒)、以确保与启动群集相关的内容会影响引导加载程序。
我看到我的目标(C6418)的_c_int00 由 rst6400.lib 管理、 查看映射文件、我看到它位于地址0x1864。 我在"常规"项目属性上的"运行时支持库"中的项目属性上链接了 rts6400库。
我使用了以下命令:
MyApp.out
-b.
--图像
--map MyApp.map
--entrypoint _c_int00
--零
ROM
{
ROM1:org = 0x000000000、len = 0x001C00、romwidth=8、memwidth=8
文件={MyApp.bin}
}
您对如何理解这一点有什么建议吗?
"加载符号"实际上是调试启动时发生的情况的最佳方法吗?
由于我看到它在一个中工作、我将目标与仿真器(加载符号)连接、因此与 典型的引导序列相比、这个设置有何差异?
谢谢你
此致