ZHCAB23A June 2019 – January 2021 OMAP-L132 , OMAP-L138 , TMS320C6742 , TMS320C6746 , TMS320C6748
问题: 如何启动可执行文件?
答案:必须使用 AISgen 工具将 COFF/ELF 格式的可执行文件转换为 AIS 格式。有关此过程的更多详细信息和示例,请参阅Topic Link Label3.1。
问题: 如何启动 DSP 可执行文件?
答案:由于 OMAP-L138 是 ARM 启动器件,因此必须首先引导可执行文件以唤醒 DSP。对于 C6748,可以直接启动 DSP AIS 二进制文件。有关此过程的更多详细信息和示例,请参阅Topic Link Label3.2。
问题: 是否有任何适用于 EVM 的示例 AISgen 配置文件?
答案:以下文件包含将内核/mDDR 频率设置为 456/150MHz 和 300/132MHz 的 AISgen 配置文件。
下载示例 AISgen 配置文件。这些可从以下位置上的AISgen包获得::AISgen for D800K008\cfg_files。
请注意,选择 OPP 时必须适当调整内核电压。
问题: 为什么我的程序可以在 CCS 中运行,但无法从闪存中启动?
答案:Gel 文件的依赖性
常见的问题是在代码需要的GEL 文件中做了一些配置,如外部内存配置、pinmux 配置或 PLL 配置。大多数功能也可以由引导加载程序使用 AISgen 工具来执行。启动后比较 PLL、pinmux 和 DDR 寄存器,并验证它们是否与 GEL 文件设置的情况相匹配。
答案:错误的外部内存配置
如果您的代码在外部内存中有一些段,则引导加载程序必须在复制该代码之前,先配置控制器设置。验证 AISgen 中使用的 DDR 配置设置是否与 GEL 文件中使用的设置相匹配。如果 DDR 配置正确,您应该能够在 CCS (0xC0000000) 中插入 DDR 内存区域。
答案:管理员模式与用户模式
SOC 设计要求 Arm 内核处于管理员模式,以配置引脚多路复用 (PINMUX) 寄存器。TI Arm 工具链在初始化期间以用户模式配置内核,因此 Arm 应用需要包含 boot.asm 源文件,以将 Arm 执行状态更改为管理员模式。可在Topic Link Label3.2.2的 zip 文件中找到该文件。在 CCS 中,应在项目链接器选项中勾选“Search libraries in priority order (--priority, -priority)”框以避免链接错误。
答案:KICK 寄存器解锁
在以前版本的器件(版本 1.0 和 1.1)上,在访问某些受保护的寄存器之前,必须先解锁 KICK 寄存器。虽然 CCS 中的 GEL 文件可以自动执行此操作,但应在代码开始执行以使文件可移植。有关该过程的更多信息,请参阅 OMAP-L138 C6000 DSP+ARM 处理器技术参考手册。
答案:错误的启动模式
再次检查启动引脚在复位上升沿处的电压是否合适。使用Topic Link Label4中的 Debug GEL 文件确定器件锁存的启动模式,并查看任何其他 ROM 错误消息。另外,请验证 TRST 是否从外部下拉。
答案:使用引导加载程序共享内存
ROM 引导加载程序本身使用从 0x80000000 开始的 16KB 共享 RAM,用于多种用途。该内存不应该被用户应用程序的任何初始化段使用。
答案:RAM 与 ROM 自动初始化模型
通过 ROM 启动代码时,请确保在链接器选项中使用 ROM 自动初始化模型 (-c)。如果使用 RAM 自动初始化模型 (-cr),即使某些内存位置在 CCS 下,也永远不会被加载。可以在此处找到构建选项:
问题: 是否需要次级引导加载程序 (UBL)?
答案:在引导加载程序无法解析 AIS 文件的较旧器件上,需要次级引导加载程序,又名用户引导加载程序 (UBL)。通过将 AISgen 工具与 OMAP-L138 引导加载程序一起使用,以前由 UBL 执行的大部分功能都可以由引导加载程序完成。
对于典型的 Linux 应用程序,旧流程如下所示:
OMAP-L138 的流程如下所示:
所以一般来说,不需要单独的 UBL,因为 AIS 功能可以执行大部分相同的任务。
问题: 如何为 NOR direct 或 NOR legacy 启动模式准备映像?
答案:有关创建启动映像的说明,请参阅 处理器SDK 软件开发人员指南的启动 一节。
问题: 应如何格式化 SD/MMC 卡以便于启动?
答案:有关如何准备 SD/MMC 卡的详细信息,请参阅 处理器DK 软件开发人员指南的启动 一节。。