ZHCAB23A June   2019  – January 2021 OMAP-L132 , OMAP-L138 , TMS320C6742 , TMS320C6746 , TMS320C6748

 

  1.   商标
  2. 1OMAP-L138 启动过程
    1. 1.1 复位期间
    2. 1.2 复位后
  3. 2启动实用程序
    1. 2.1 AISgen
    2. 2.2 串行引导和闪存加载实用程序
      1. 2.2.1 编译
        1. 2.2.1.1 在 Windows 下
        2. 2.2.1.2 在 Linux 下
      2. 2.2.2 运行
        1. 2.2.2.1 在 Windows 下
        2. 2.2.2.2 在 Linux 下
      3. 2.2.3 串行闪存器选项
    3. 2.3 对定制板的修改
    4. 2.4 重建和定制启动实用程序
      1. 2.4.1 下载闪存实用程序和启动实用程序
      2. 2.4.2 安装和配置所需的软件
        1. 2.4.2.1 Cygwin
        2. 2.4.2.2 Microsoft .NET Framework
      3. 2.4.3 编译器工具
        1. 2.4.3.1 编译器工具 (CODESOURCERY G++ LITE)
        2. 2.4.3.2 C6X 编译器工具
        3. 2.4.3.3 较新版本 CCS
      4. 2.4.4 为特定平台重建串行闪存和启动实用程序包
      5. 2.4.5 为 OMAPL13x 重建 HexAIS 实用程序
  4. 3启动示例
    1. 3.1 启动二进制文件
      1. 3.1.1 说明
      2. 3.1.2 获取软件
      3. 3.1.3 运行
    2. 3.2 在 AM1808/OMAPL138 上启动 DSP 二进制文件
      1. 3.2.1 说明
      2. 3.2.2 获取软件
      3. 3.2.3 运行
        1. 3.2.3.1 OMAP-L138 EVM
        2. 3.2.3.2 C6748 EVM
  5. 4调试引导加载程序
  6. 5OMAP-L138开机基准测试
    1. 5.1 主机启动性能
    2. 5.2 测试详细信息
      1. 5.2.1 方法
      2. 5.2.2 43
      3. 5.2.3 软件
      4. 5.2.4 硬件
      5. 5.2.5 讨论
  7. 6OMAP-L138 引导加载程序常见问题解答
  8. 7参考文献
  9.   A 使用 SYS/BIOS 设置 c_int00
  10.   修订历史记录

OMAP-L138 引导加载程序常见问题解答

问题: 如何启动可执行文件?

答案:必须使用 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 下,也永远不会被加载。可以在此处找到构建选项:

  • CCS3.3:Build Options -> Linker -> Autoinit Model
  • CCS4+:Build Options -> Runtime Environment

问题: 是否需要次级引导加载程序 (UBL)?

答案:在引导加载程序无法解析 AIS 文件的较旧器件上,需要次级引导加载程序,又名用户引导加载程序 (UBL)。通过将 AISgen 工具与 OMAP-L138 引导加载程序一起使用,以前由 UBL 执行的大部分功能都可以由引导加载程序完成。

对于典型的 Linux 应用程序,旧流程如下所示:

  • UBL(设置 DDR、PSC 并将 U-Boot 复制到内存)
  • U-Boot(加载 Linux 和文件系统)
  • Linux

OMAP-L138 的流程如下所示:

  • AIS 签名的 U-Boot(设置 DDR、PSC 并加载 Linux 和文件系统)
  • Linux

所以一般来说,不需要单独的 UBL,因为 AIS 功能可以执行大部分相同的任务。

问题: 如何为 NOR direct 或 NOR legacy 启动模式准备映像?

答案:有关创建启动映像的说明,请参阅 处理器SDK 软件开发人员指南的启动 一节

问题: 应如何格式化 SD/MMC 卡以便于启动?

答案:有关如何准备 SD/MMC 卡的详细信息,请参阅 处理器DK 软件开发人员指南的启动 一节。