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.

[参考译文] 调试时、是否可以从2个 ELF 文件加载符号。 (引导加载程序和应用程序)

Guru**** 2589280 points
Other Parts Discussed in Thread: TMS570LC4357

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/981929/is-it-possible-to-load-symbols-from-2-elf-files-when-debugging-bootloader-and-application

主题中讨论的其他器件:TMS570LC4357

我有一个具有外部并行和 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 解决我的问题?