我有一个具有外部并行和 SPI 闪存以及外部 SRAM 的 TMS570LC4357设计。
前64 KB 包含一个引导加载程序、它是一个单独的项目。
内部闪存的其余部分用于主应用。
外部闪存将用于存储各种其他应用
所有这些都从外部 RAM 执行。
通常是自检和其他实用程序。
使用参数覆盖模块将前64KB 重新映射到 SRAM 的引导加载程序
可使用 Y 调制解调器对所有闪存进行编程、并可将应用程序下载到外部 SRAM。
调试时、我需要引导加载程序符号和应用程序符号。
据我所知、我无法编写自己的可供 CCS 使用的闪存加载程序
以下载到 SRAM 或对外部闪存进行编程。
这是为什么? 我想为当前的闪存加载程序获取源代码、以便我可以扩展它。
为此、我们使用了 IAR EWARM、我已将闪存加载程序扩展为支持对我的所有闪存进行编程。
由于当前应用程序(u-boot)需要在 Linux 计算机上编译、
我还想使用 Linux 进行调试。
我要执行的步骤是:
1.将 u-boot 编译为 ELF 文件。 这包括在链接器命令文件中定义的专有标头。
2.在后处理步骤中向标头添加 CRC-64 ISO
3.将 U-Boot 下载到外部 SRAM。 下载要求执行一些定制操作来初始化 EMIF。
同时、引导加载程序的符号应加载并与主应用程序符号合并。
4.复位 CPU 并开始在地址0处执行。
5、SRAM 内容不应由此改变。 (与 IAR 配合使用)
6.芯片现在正在运行引导加载程序,并通过串行命令开始执行应用程序
或者在某些情况下、它会自动启动、而不是启动主应用程序
如果无法下载到外部 SRAM、我可以使用 Y 调制解调器将应用程序下载到闪存
开始调试之前。
我可以启动手动 连接并加载符号、但我可以通过某种方式加载两个 ELF 文件吗?
使用引导加载程序运行不会是一种异常情况。
对外部闪存进行编程不会是一种异常情况。
如何使用 CCS 解决我的问题?