ZHCADG6A December   2023  – April 2024 TMS320F2800157 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F28P659DK-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2编程基础知识
  6. 3ROM 引导加载程序和十六进制实用程序用法
  7. 4DCAN 闪存内核
    1. 4.1 实施
      1. 4.1.1 自定义闪存组和扇区擦除
      2. 4.1.2 应用程序加载
  8. 5MCAN 闪存内核
    1. 5.1 实施
      1. 5.1.1 自定义闪存组和扇区擦除
      2. 5.1.2 应用程序加载
  9. 6实现示例
    1. 6.1 器件设置
      1. 6.1.1 闪存内核
      2. 6.1.2 硬件
    2. 6.2 主机应用:dcan_flash_programmer
      1. 6.2.1 概述
      2. 6.2.2 使用 Visual Studio 编译和运行 dcan_flash_programmer
      3. 6.2.3 为 F28003x 运行 dcan_flash_programmer
      4. 6.2.4 使用 DCAN 引导加载程序下载工程
      5. 6.2.5 使用 CCS 编译工程
    3. 6.3 主机应用:can_flash_programmer [MCAN]
      1. 6.3.1 概述
      2. 6.3.2 使用 Visual Studio 编译和运行 can_flash_programmer
      3. 6.3.3 为 F28003x 运行 can_flash_programmer
      4. 6.3.4 使用 MCAN 引导加载程序下载工程
      5. 6.3.5 使用 CCS 编译工程
    4. 6.4 应用加载:CPU2 映像
      1. 6.4.1 组合两个映像 (.txt)
  10. 7疑难解答
    1. 7.1 常见问题
    2. 7.2 DCAN 引导
    3. 7.3 MCAN 引导
  11. 8参考资料
  12. 9修订历史记录

ROM 引导加载程序和十六进制实用程序用法

器件启动之初,器件引导,并根据引导模式决定是执行已编程到闪存存储器中的代码还是使用某个 ROM 加载程序加载代码。本应用手册重点介绍未连接仿真器 (CCS) 时的引导执行路径。

注: 本节基于 TMS320F28003x 器件。特定器件的具体信息可以在器件特定技术参考手册 (TRM) 的引导 ROM 一章中找到。
表 3-1 F28003x 器件的默认引导模式
引导模式 GPIO24(默认引导模式选择引脚 1) GPIO32(默认引导模式选择引脚 0)
并行 I/O 0 0
SCI/等待引导 0 1
CAN 1 0
闪存 1 1

在引导 ROM 准备好使用的器件后,它决定应该从哪里开始执行(闪存或引导 ROM)。如果是独立启动,它通过检查两个 GPIO(如表 3-1 中所示,默认选择是 GPIO 24 和 32)的状态来实现此目的。在某些情况下,可以检查编程到一次性可编程 (OTP) 存储器中的两个值。本应用手册所述的实现使用了 CAN 和 MCAN 加载程序,因此在上电时 GPIO 32 必须强制为低电平,GPIO 24 必须强制为高电平。如果器件引导时出现这种情况,ROM 中的 CAN 加载程序将开始执行并等待从主机接收数据。

对于 CAN 引导模式 (DCAN),GPIO 分配的引导表由表 3-2 定义。表 3-3 展示了 MCAN 引导选项。请注意,DCAN 和 MCAN 的引导选项使用相同的 GPIO 分配来选择引导定义值。常见的 GPIO 对是 GPIO4 和 GPIO5,以及 GPIO13 和 GPIO12。如需更多信息,请查看特定于器件的 TRM 中的引导选项。

表 3-2 CAN 引导选项
选项 BOOTDEF 值 CANTXA GPIO CANRXA GPIO
0(默认值) 0x02 GPIO4 GPIO5
1 0x22 GPIO32 GPIO33
2 0x42 GPIO2 GPIO3
3 0x62 GPIO13 GPIO12
表 3-3 MCAN 引导选项
选项 BOOTDEFx 值 CANTXA GPIO CANRXA GPIO
0 0x08 GPIO4 GPIO5
1 0x28 GPIO1 GPIO0
2 0x48 GPIO13 GPIO12

ROM 加载程序要求以特定结构向其提供数据。该结构对所有 ROM 加载程序都是通用的,[6] 中的引导加载程序数据流结构 一节对此进行了详细介绍。您可以使用 TI C2000 编译器随附的 hex2000 实用程序,轻松生成这种格式的应用程序。通过添加具有以下选项的编译后处理步骤,甚至可以在 Code Composer Studio 编译过程中生成此文件格式:

"${CG_TOOL_HEX}" "${BuildArtifactFileName}" -boot -sci8 -a -o "${BuildArtifactFileBaseName}.txt"

或者,您可以使用 TI hex2000 实用程序将 COFF 和 EABI .out 文件转换为正确的十六进制格式引导文件。为此,您需要在“Project Properties”下启用 C2000 Hex Utility。具体命令如下:

hex2000.exe -boot -sci8 -a -o <file.txt> <file.out>

如前所述,ROM 加载程序只能将代码加载到 RAM 中,因此会将其加载到闪存内核中,这将在 DCAN 闪存内核MCAN 闪存内核小节介绍。

闪存内核期望固件映像采用相同的格式,因此上面的命令也可用于生成固件映像十六进制文件。

MCAN ROM 引导加载程序有三个引导选项,每个选项都映射到不同的 GPIO 引脚,用于 MCANRX 和 MCANTX 功能。为了将器件配置为 MCAN 引导模式,需要对器件的 OTP 进行编程以包括 MCAN 引导。有关如何对一次性可编程 (OTP) 进行编程的更多详细信息,请参阅 TMS320F28003x 实时微控制器技术参考手册 (TRM) 的引导 ROM 一章。