ZHCU875Z August   2001  – October 2023 SM320F28335-EP

 

  1.   1
  2.   请先阅读
    1.     关于本手册
    2.     如何使用本手册
    3.     命名规则
    4.     德州仪器 (TI) 提供的相关文档
    5.     商标
  3. 软件开发工具简介
    1. 1.1 软件开发工具概述
    2. 1.2 工具说明
  4. 目标模块简介
    1. 2.1 目标文件格式规范
    2. 2.2 可执行目标文件
    3. 2.3 段简介
      1. 2.3.1 特殊段名
    4. 2.4 汇编器如何处理段
      1. 2.4.1 未初始化的段
      2. 2.4.2 已初始化段
      3. 2.4.3 用户命名的段
      4. 2.4.4 当前段
      5. 2.4.5 段程序计数器
      6. 2.4.6 子段
      7. 2.4.7 使用 Sections 指令
    5. 2.5 链接器如何处理段
      1. 2.5.1 合并输入段
      2. 2.5.2 放置段
    6. 2.6 符号
      1. 2.6.1 全局(外部)符号
      2. 2.6.2 局部符号
      3. 2.6.3 弱符号
      4. 2.6.4 符号表
    7. 2.7 符号重定位
      1. 2.7.1 具有多个可重定位符号的表达式(仅限 COFF)
    8. 2.8 加载程序
  5. 程序加载和运行
    1. 3.1 负载
      1. 3.1.1 加载和运行地址
      2. 3.1.2 引导加载
        1. 3.1.2.1 引导、加载和运行地址
        2. 3.1.2.2 主引导加载程序
        3. 3.1.2.3 次级引导加载程序
        4. 3.1.2.4 引导表
        5. 3.1.2.5 引导加载程序例程
          1. 3.1.2.5.1 次级引导加载程序例程示例
    2. 3.2 入口点
    3. 3.3 运行时初始化
      1. 3.3.1 _c_int00 函数
      2. 3.3.2 RAM 模型与 ROM 模型
        1. 3.3.2.1 在运行时自动初始化变量 (--rom_model)
        2. 3.3.2.2 在加载时初始化变量 (--ram_model)
        3. 3.3.2.3 --rom_model 和 --ram_model 链接器选项
      3. 3.3.3 关于链接器生成的复制表
        1. 3.3.3.1 BINIT
        2. 3.3.3.2 CINIT
    4. 3.4 main 的参数
    5. 3.5 运行时重定位
    6. 3.6 其他信息
  6. 汇编器说明
    1. 4.1  汇编器概述
    2. 4.2  汇编器在软件开发流程中的作用
    3. 4.3  调用汇编器
    4. 4.4  控制应用二进制接口
    5. 4.5  指定用于汇编器输入的备用目录
      1. 4.5.1 使用 --include_path 汇编器选项
      2. 4.5.2 使用 C2000_A_DIR 环境变量
    6. 4.6  源语句格式
      1. 4.6.1 标签字段
      2. 4.6.2 助记符字段
      3. 4.6.3 操作数字段
      4. 4.6.4 注释字段
    7. 4.7  字面常量
      1. 4.7.1 整数字面量
        1. 4.7.1.1 二进制整数字面量
        2. 4.7.1.2 八进制整数字面量
        3. 4.7.1.3 十进制整数字面量
        4. 4.7.1.4 十六进制整数字面量
        5. 4.7.1.5 字符字面量
      2. 4.7.2 字符串字面量
      3. 4.7.3 浮点字面量
    8. 4.8  汇编器符号
      1. 4.8.1 标识符
      2. 4.8.2 标签
      3. 4.8.3 局部标签
        1. 4.8.3.1 $n 格式的局部标签
        2.       85
        3. 4.8.3.2 name? 格式的局部标签
        4.       87
      4. 4.8.4 符号常数
      5. 4.8.5 定义符号常量(--asm_define 选项)
      6. 4.8.6 预定义符号常量
      7. 4.8.7 寄存器
      8. 4.8.8 替代符号
    9. 4.9  表达式
      1. 4.9.1 数学和逻辑运算符
      2. 4.9.2 关系运算符和条件表达式
      3. 4.9.3 明确定义的表达式
      4. 4.9.4 合法表达式
    10. 4.10 内置函数和运算符
      1. 4.10.1 内置数学和三角函数
    11. 4.11 TMS320C28x 汇编器扩展
      1. 4.11.1 C28x 支持
      2. 4.11.2 C28x FPU32 和 FPU64 扩展
      3. 4.11.3 C28x CLA 扩展
    12. 4.12 源程序列表
    13. 4.13 调试汇编源文件
    14. 4.14 交叉引用列表
    15. 4.15 智能编码
    16. 4.16 流水线冲突检测
      1. 4.16.1 受保护和不受保护的流水线指令
      2. 4.16.2 流水线冲突预防和检测
      3. 4.16.3 检测到的流水线冲突
  7. 汇编器指令
    1. 5.1  指令摘要
    2. 5.2  用于定义段的指令
    3. 5.3  用于初始化值的指令
    4. 5.4  执行对齐和保留空间的指令
    5. 5.5  用于设置输出列表格式的指令
    6. 5.6  用于引用其他文件的指令
    7. 5.7  用于启用条件汇编的指令
    8. 5.8  用于定义联合体或结构体类型的指令
    9. 5.9  用于定义枚举类型的指令
    10. 5.10 在汇编时用于定义符号的指令
    11. 5.11 其他命令
    12. 5.12 指令参考
      1.      .align
      2.      .asg/.define/.eval
      3.      .asmfunc/.endasmfunc
      4.      .bits
      5.      .bss
      6.      .byte/.ubyte/.char/.uchar
      7.      .cdecls
      8.      .clink
      9.      .common
      10.      .copy/.include
      11.      .cstruct/.cunion/.endstruct/.endunion/.tag
      12.      .data
      13.      .drlist/.drnolist
      14.      .elfsym
      15.      .emsg/.mmsg/.wmsg
      16.      .end
      17.      .fclist/.fcnolist
      18.      .field
      19.      .float/.xfloat/.xldouble
      20.      .global/.def/.ref
      21.      .group/.gmember/.endgroup
      22.      .if/.elseif/.else/.endif
      23.      .int/.unint/.word/.uword
      24.      .label
      25.      .length/.width
      26.      .list/.nolist
      27.      .long/.ulong/.xlong
      28.      .loop/.endloop/.break
      29.      .macro/.endm
      30.      .mlib
      31.      .mlist/.mnolist
      32.      .newblock
      33.      .option
      34.      .page
      35.      .retain/.retainrefs
      36.      .sblock
      37.      .sect
      38.      .set
      39.      .space/.bes
      40.      .sslist/.ssnolist
      41.      .string/.cstring/.pstring
      42.      .struct/.endstruct/.tag
      43.      .symdepend
      44.      .tab
      45.      .text
      46.      .title
      47.      .unasg/.undefine
      48.      .union/.endunion/.tag
      49.      .usect
      50.      .var
      51.      .weak
  8. 宏语言说明
    1. 6.1  使用宏
    2. 6.2  定义宏
    3. 6.3  宏参数/替代符号
      1. 6.3.1 用于定义替代符号的指令
      2. 6.3.2 内置替代符号函数
      3. 6.3.3 递归替代符号
      4. 6.3.4 强制替代
      5. 6.3.5 访问带下标的替代符号的各个字符
      6. 6.3.6 替代符号作为宏中的局部变量
    4. 6.4  宏库
    5. 6.5  在宏中使用条件汇编
    6. 6.6  在宏中使用标签
    7. 6.7  在宏中生成消息
    8. 6.8  使用指令设置输出列表的格式
    9. 6.9  使用递归和嵌套宏
    10. 6.10 宏指令摘要
  9. 归档器说明
    1. 7.1 归档器概述
    2. 7.2 归档器在软件开发流程中的作用
    3. 7.3 调用归档器
    4. 7.4 归档器示例
    5. 7.5 库信息归档器说明
      1. 7.5.1 调用库信息归档器
      2. 7.5.2 库信息归档器示例
      3. 7.5.3 列出索引库的内容
      4. 7.5.4 要求
  10. 链接器说明
    1. 8.1  链接器概述
    2. 8.2  链接器在软件开发流程中的作用
    3. 8.3  调用链接器
    4. 8.4  链接器选项
      1. 8.4.1  文件、段和符号模式中的通配符
      2. 8.4.2  通过链接器选项指定 C/C++ 符号
      3. 8.4.3  重定位功能(--absolute_exe 和 --relocatable 选项)
        1. 8.4.3.1 生成绝对输出模块(--absolute_exe 选项)
        2. 8.4.3.2 生成可重定位输出模块(--relocatable 选项)
      4. 8.4.4  分配存储器供加载器使用以传递参数(--arg_size 选项)
      5. 8.4.5  压缩(--cinit_compression 和 --copy_compression 选项)
      6. 8.4.6  压缩 DWARF 信息(--compress_dwarf 选项)
      7. 8.4.7  控制链接器诊断
      8. 8.4.8  自动选择库(--disable_auto_rts 选项)
      9. 8.4.9  禁用条件链接(--disable_clink 选项)
      10. 8.4.10 不要删除未使用的段(--unused_section_elimination 选项)
      11. 8.4.11 链接器命令文件预处理(--disable_pp、--define 和 --undefine 选项)
      12. 8.4.12 纠错码测试(--ecc 选项)
      13. 8.4.13 定义入口点(--entry_point 选项)
      14. 8.4.14 设置默认填充值(--fill_value 选项)
      15. 8.4.15 定义堆大小(--heap_size 选项)
      16. 8.4.16 隐藏符号
      17. 8.4.17 改变库搜索算法(--library、--search_path 和 C2000_C_DIR)
        1. 8.4.17.1 指定备用库目录(--search_path 选项)
        2. 8.4.17.2 指定备用库目录(C2000_C_DIR 环境变量)
        3. 8.4.17.3 详尽读取和搜索库(--reread_libs 和 --priority 选项)
      18. 8.4.18 更改符号局部化
        1. 8.4.18.1 将所有全局符号设为静态(--make_static 选项)
      19. 8.4.19 创建映射文件(--map_file 选项)
      20. 8.4.20 管理映射文件内容(--mapfile_contents 选项)
      21. 8.4.21 禁用名称还原 (--no_demangle)
      22. 8.4.22 禁止合并符号调试信息(--no_sym_merge 选项)
      23. 8.4.23 去除符号信息(--no_symtable 选项)
      24. 8.4.24 指定输出模块(--output_file 选项)
      25. 8.4.25 确定函数放置优先级(--preferred_order 选项)
      26. 8.4.26 C 语言选项(--ram_model 和 --rom_model 选项)
      27. 8.4.27 保留丢弃的段(--retain 选项)
      28. 8.4.28 创建绝对列表文件(--run_abs 选项)
      29. 8.4.29 扫描所有库中的重复符号定义(--scan_libraries)
      30. 8.4.30 定义栈大小(--stack_size 选项)
      31. 8.4.31 符号映射(--symbol_map 选项)
      32. 8.4.32 引入未解析的符号(--undef_sym 选项)
      33. 8.4.33 创建未定义的输出段时显示一条消息 (--warn_sections)
      34. 8.4.34 生成 XML 链接信息文件(--xml_link_info 选项)
      35. 8.4.35 零初始化(--zero_init 选项)
    5. 8.5  链接器命令文件
      1. 8.5.1  链接器命令文件中的保留名称
      2. 8.5.2  链接器命令文件中的常量
      3. 8.5.3  从链接器命令文件访问文件和库
      4. 8.5.4  MEMORY 指令
        1. 8.5.4.1 默认存储器型号
        2. 8.5.4.2 MEMORY 指令语法
        3. 8.5.4.3 表达式和地址运算符
      5. 8.5.5  SECTIONS 指令
        1. 8.5.5.1 SECTIONS 指令语法
        2. 8.5.5.2 段分配和放置
          1. 8.5.5.2.1 示例:在 RAM 放置在函数中
          2. 8.5.5.2.2 绑定
          3. 8.5.5.2.3 指定的存储器
          4. 8.5.5.2.4 使用 HIGH 位置说明符来控制放置
            1. 8.5.5.2.4.1 使用 HIGH 说明符进行链接器放置
            2.         265
            3. 8.5.5.2.4.2 在没有 HIGH 说明符的情况下进行链接器放置
          5. 8.5.5.2.5 对齐和分块
          6. 8.5.5.2.6 对齐和填充
          7. 8.5.5.2.7 使用页面方法
        3. 8.5.5.3 指定输入段
          1. 8.5.5.3.1 指定段内容的最常用方法
          2.        272
        4. 8.5.5.4 使用多级子段
        5. 8.5.5.5 指定库或存档成员作为输出段的输入
          1. 8.5.5.5.1 将成员存档至输出段
          2.        276
        6. 8.5.5.6 使用多个存储器范围进行分配
        7. 8.5.5.7 在非连续存储器范围之间自动拆分输出段
      6. 8.5.6  在不同的加载和运行地址放置段
        1. 8.5.6.1 指定加载和运行地址
        2.       281
        3. 8.5.6.2 使用 .label 指令引用加载地址
      7. 8.5.7  使用 GROUP 和 UNION 语句
        1. 8.5.7.1 将输出段一同进行分组
        2. 8.5.7.2 利用 UNION 语句叠加段
        3. 8.5.7.3 将存储器用于多种用途
        4. 8.5.7.4 嵌套 UNION 和 GROUP
        5. 8.5.7.5 检查分配器的一致性
        6. 8.5.7.6 为 UNION 和 GROUP 命名
      8. 8.5.8  叠加页面
        1. 8.5.8.1 使用 MEMORY 指令定义叠加页面
        2. 8.5.8.2 叠加页的示例
          1. 8.5.8.2.1 带重叠页的 MEMORY 指令
          2.        294
        3. 8.5.8.3 在 SECTIONS 指令中使用叠加页面
          1. 8.5.8.3.1 SECTIONS 指令重叠定义
          2.        297
        4. 8.5.8.4 重叠页的存储器分配
      9. 8.5.9  特殊段类型(DSECT、COPY、NOLOAD 和 NOINIT)
      10. 8.5.10 使用链接器配置纠错码 (ECC)
        1. 8.5.10.1 在存储器映射中使用 ECC 说明符
        2. 8.5.10.2 使用 ECC 指令
        3. 8.5.10.3 在存储器映射中使用 VFILL 限定符
      11. 8.5.11 在链接时分配符号
        1. 8.5.11.1 赋值语句的语法
        2. 8.5.11.2 向符号分配 SPC
        3. 8.5.11.3 赋值表达式
        4. 8.5.11.4 由链接器自动定义的符号
        5. 8.5.11.5 向符号分配一个段的确切开始值、结束值和大小值
        6. 8.5.11.6 为什么点运算符有时不起作用
        7. 8.5.11.7 地址和维度运算符
          1. 8.5.11.7.1 输入项
          2. 8.5.11.7.2 输出段
          3. 8.5.11.7.3 GROUP
          4. 8.5.11.7.4 UNION
        8. 8.5.11.8 LAST 运算符
      12. 8.5.12 创建和填充孔洞
        1. 8.5.12.1 已初始化和未初始化的段
        2. 8.5.12.2 创建空洞
        3. 8.5.12.3 填充孔洞
        4. 8.5.12.4 对未初始化的段进行显式初始化
    6. 8.6  链接器符号
      1. 8.6.1 链接器定义的函数和数组
      2. 8.6.2 链接器定义的整数值
      3. 8.6.3 链接器定义的地址
      4. 8.6.4 有关 _symval 运算符的更多信息
      5. 8.6.5 弱符号
        1. 8.6.5.1 弱符号引用
        2. 8.6.5.2 弱符号定义
      6. 8.6.6 利用对象库解析符号
    7. 8.7  默认放置算法
      1. 8.7.1 分配算法如何创建输出段
      2. 8.7.2 减少存储器碎片
    8. 8.8  使用由链接器生成的复制表
      1. 8.8.1 使用复制表进行引导加载
      2. 8.8.2 在复制表中使用内置链接运算符
      3. 8.8.3 重叠管理示例
      4. 8.8.4 使用 table() 运算符生成复制表
        1. 8.8.4.1 table() 操作符
        2. 8.8.4.2 启动时复制表
        3. 8.8.4.3 使用 table() 操作符管理目标组件
        4. 8.8.4.4 由链接器生成的复制表段和符号
        5. 8.8.4.5 拆分对象组件和重叠管理
      5. 8.8.5 压缩
        1. 8.8.5.1 压缩的复制表格式
        2. 8.8.5.2 目标文件中的压缩段表示
        3. 8.8.5.3 压缩的数据布局
        4. 8.8.5.4 运行时解压缩
        5. 8.8.5.5 压缩算法
        6.       350
      6. 8.8.6 复制表内容
      7. 8.8.7 通用复制例程
    9. 8.9  由链接器生成的 CRC 表和存储器范围的 CRC
      1. 8.9.1 在 SECTIONS 指令中使用 crc_table() 运算符
        1. 8.9.1.1 使用 crc_table() 运算符时的限制
        2. 8.9.1.2 示例
          1. 8.9.1.2.1 使用 crc_table() 操作符计算 .text 数据的 CRC 值
          2.        358
          3. 8.9.1.2.2 在 crc_table() 操作符中指定算法
          4.        360
          5. 8.9.1.2.3 多个段使用单一表
          6.        362
          7. 8.9.1.2.4 将 crc_table() 运算符应用于 GROUP 或 UNION
          8.        364
        3. 8.9.1.3 使用 crc_table() 运算符时的接口
          1. 8.9.1.3.1 CRC 表头,crc_tbl.h
      2. 8.9.2 在 MEMORY 指令中使用 crc() 操作符
        1. 8.9.2.1 使用 crc() 运算符时的限制
        2. 8.9.2.2 在 GROUP 中使用 VFILL 限定符
        3. 8.9.2.3 为大部分或全部闪存生成 CRC
        4. 8.9.2.4 存储器范围和段的 CRC 计算
        5. 8.9.2.5 指定存储器范围 CRC 的示例
        6. 8.9.2.6 使用 crc() 运算符时的接口
      3. 8.9.3 关于 16 位字符的特别说明
    10. 8.10 部分(增量)链接
    11. 8.11 链接 C/C++ 代码
      1. 8.11.1 运行时初始化
      2. 8.11.2 对象库和运行时支持
      3. 8.11.3 设置堆栈段的大小
      4. 8.11.4 在运行时初始化和自动初始化变量
    12. 8.12 链接器示例
  11. 绝对列表器说明
    1. 9.1 生成绝对列表
    2. 9.2 调用绝对列表器
    3. 9.3 绝对列表器示例
  12. 10交叉参考列表器说明
    1. 10.1 生成交叉参考列表
    2. 10.2 调用交叉参考列表器
    3. 10.3 交叉参考列表示例
  13. 11目标文件实用程序
    1. 11.1 调用目标文件显示实用程序
    2. 11.2 调用反汇编器
    3. 11.3 调用名称实用程序
    4. 11.4 调用符号去除实用程序
  14. 12十六进制转换实用程序说明
    1. 12.1  软件开发流程中十六进制转换实用程序的作用
    2. 12.2  调用十六进制转换实用程序
      1. 12.2.1 从命令行调用十六进制转换实用程序
      2. 12.2.2 使用命令文件调用十六进制转换实用程序
    3. 12.3  理解存储器宽度
      1. 12.3.1 目标宽度
      2. 12.3.2 指定存储器宽度
      3. 12.3.3 将数据分入输出文件
      4. 12.3.4 指定输出字的字顺序
    4. 12.4  ROMS 指令
      1. 12.4.1 何时使用 ROMS 指令
      2. 12.4.2 ROMS 指令的示例
    5. 12.5  SECTIONS 指令
    6. 12.6  加载映像格式(--load_image 选项)
      1. 12.6.1 加载映像段形成
      2. 12.6.2 加载映像特性
    7. 12.7  排除指定段
    8. 12.8  分配输出文件名
    9. 12.9  映像模式和 --fill 选项
      1. 12.9.1 生成存储器映像
      2. 12.9.2 指定填充值
      3. 12.9.3 使用映像模式的步骤
    10. 12.10 数组输出格式
    11. 12.11 为片上引导加载程序编译引导表
      1. 12.11.1 引导表说明
      2. 12.11.2 引导表格式
      3. 12.11.3 如何构建引导表
        1. 12.11.3.1 构建引导表
        2. 12.11.3.2 为引导表留出空间
      4. 12.11.4 从器件外设进行引导
      5. 12.11.5 设置引导表的进入点
      6. 12.11.6 使用 C28x 引导加载程序
        1. 12.11.6.1 从 8 位 SPI Boot 引导的示例命令文件
        2.       429
        3. 12.11.6.2 C28x 16 位并行引导 GP I/O 的示例命令文件
        4.       431
        5. 12.11.6.3 从 8 位 SCI Boot 引导的示例命令文件
        6.       433
    12. 12.12 在 TMS320F2838x 器件上使用安全闪存引导功能
    13. 12.13 控制 ROM 器件地址
    14. 12.14 控制十六进制转换实用程序诊断
    15. 12.15 目标格式说明
      1. 12.15.1 ASCII 十六进制对象格式(--ascii 选项)
      2. 12.15.2 Intel MCS-86 目标格式(--intel 选项)
      3. 12.15.3 Motorola Exorciser 对象格式(--motorola 选项)
      4. 12.15.4 扩展的 Tektronix 目标格式(--tektronix 选项)
      5. 12.15.5 德州仪器 (TI) SDSMAC (TI-Tagged) 目标格式(--ti_tagged 选项)
      6. 12.15.6 TI-TXT 十六进制格式(--ti_txt 选项)
        1. 12.15.6.1 TI-TXT 目标格式
    16. 12.16 十六进制转换实用程序错误消息
  15. 13与汇编源代码共享 C/C++ 头文件
    1. 13.1 .cdecls 指令概述
    2. 13.2 C/C++ 转换注意事项
      1. 13.2.1  说明
      2. 13.2.2  条件编译(#if/#else/#ifdef/等)
      3. 13.2.3  Pragma
      4. 13.2.4  #error 和 #warning 指令
      5. 13.2.5  预定义符号 __ASM_HEADER__
      6. 13.2.6  在 C/C++ asm( ) 语句中的用法
      7. 13.2.7  #include 指令
      8. 13.2.8  转换 #define 宏
      9. 13.2.9  #undef 指令
      10. 13.2.10 枚举
      11. 13.2.11 C 字符串
      12. 13.2.12 C/C++ 内置函数
      13. 13.2.13 结构体和联合体
      14. 13.2.14 函数/变量原型
      15. 13.2.15 C 常量后缀
      16. 13.2.16 基本 C/C++ 类型
    3. 13.3 C++ 专有转换注意事项
      1. 13.3.1 名称改编
      2. 13.3.2 衍生类
      3. 13.3.3 模板
      4. 13.3.4 虚拟函数
    4. 13.4 汇编器特殊支持
      1. 13.4.1 枚举 (.enum/.emember/.endenum)
      2. 13.4.2 .define 指令
      3. 13.4.3 .undefine/.unasg 指令
      4. 13.4.4 $defined( ) 内置函数
      5. 13.4.5 $sizeof 内置函数
      6. 13.4.6 结构体/联合体对齐和 $alignof( )
      7. 13.4.7 .cstring 指令
  16.   A 符号调试指令
    1.     A.1 DWARF 调试格式
    2.     A.2 调试指令语法
  17.   B XML 链接信息文件说明
    1.     B.1 XML 信息文件元素类型
    2.     B.2 文档元素
      1.      B.2.1 标头元素
      2.      B.2.2 输入文件列表
      3.      B.2.3 对象组件列表
      4.      B.2.4 逻辑组列表
      5.      B.2.5 放置映射
      6.      B.2.6 符号表
  18.   C CRC 参考设计
    1.     C.1 编译指令
    2.     C.2 参考 CRC 计算例程
      1.      C.2.1 CRC 计算函数的参考设计:ref_crc.c
    3.     C.3 由链接器生成的复制表和 CRC 表
      1.      C.3.1 示例应用的 main 例程:main.c
      2.      C.3.2 检查 CRC 值:check_crc.c
      3.      C.3.3 任务 1 例程:task1.c
      4.      C.3.4 任务 2 例程:task2.c
      5.      C.3.5 任务 3 例程:task3.c
      6.      C.3.6 示例 1 命令文件:ex1.cmd(用于 COFF)
  19.   D 术语表
    1.     D.1 术语
  20.   E 修订历史记录

修订历史记录

All Revision History Changes Intro HTMLJune 3, 2022 to October 31, 2023 (from RevisionY (June 2022)to RevisionZ (October 2023))

  • 复制表现在是 32 位对齐的。它们之前是 64 位对齐的。Go
  • CINIT 表现在是 32 位对齐的。它们之前是 64 位对齐的。Go
  • 删除了 .preserve 指令的文档。C 代码中支持保留变量,但手工编码的汇编代码中不支持保留变量Go
  • 删除了 --symbol_map 选项示例中的引号。Go
  • 阐明了链接器定义的符号的使用,包括何时以及如何使用 _symval() 运算符Go
  • 复制表现在是 32 位对齐的。它们之前是 64 位对齐的。Go
  • CRC 表现在是 32 位对齐的。它们之前是 64 位对齐的。Go
  • 更正了 ASCII 十六进制输出格式地址大小和默认宽度Go

All Revision History Changes Intro HTMLDecember 22, 2021 to June 3, 2022 (from RevisionX (December 2021)to RevisionY (June 2022))

  • 更正了 --asm_cross_reference_listing 选项的名称Go
  • --strict_compatibility 链接器选项不再起任何作用,已从文档中删除。Go
  • 更正链接器的头文件搜索路径的说明。Go
  • 添加了 --boot_align_sect 和 --boot_block_size 选项。Go
  • 说明使用十六进制转换实用程序时,来自多个输入映像的段不得重叠。Go
  • 添加了 --boot_align_sect 和 --boot_block_size 选项。Go

All Revision History Changes Intro HTMLJune 15, 2021 to December 22, 2021 (from RevisionW (June 2021)to RevisionX (December 2021))

  • 删除了不受支持的 -ar 选项的文档。Go
  • 记录了仅当使用 COFF ABI 时才支持组合 --absolute_exe 和 --relocatable 选项。Go

All Revision History Changes Intro HTMLDecember 16, 2020 to June 15, 2021 (from RevisionV (December 2020)to RevisionW (June 2021))

  • 更正了 C28_CHECKSUM_16 算法的名称Go
  • 更正了 C28_CHECKSUM_16 算法的名称Go

All Revision History Changes Intro HTMLSeptember 1, 2020 to December 15, 2020 (from RevisionU (September 2020)to RevisionV (December 2020))

  • 添加了 --lfu_reference_elf 命令行选项。Go
  • 添加了用于实时固件更新 (LFU) 的 .preserve 指令。Go
  • 为 .elfsym 指令添加了 SYM_PRESERVE 和 SYM_UPDATE 类型。Go
  • 删除了不受支持的 --rom 链接器选项的文档Go
  • 添加了对存储器范围的循环冗余校验 (CRC) 的支持Go
  • 添加了用于 CRC 检查的 C28_CHECKSUM 算法,以便匹配 CCS 校验和工具。Go
  • 添加了对存储器范围的循环冗余代码 (CRC) 校验的支持。Go
  • 与 CRC 算法不同,新的 C28_CHECKSUM 算法作用于 16 位单元Go
  • 记录了与用于并行 XINTF 流的引导表相关的十六进制转换实用程序选项。Go
  • 记录了与映像加载相关的十六进制转换实用程序选项。Go
  • 记录了与映像加载相关的其他十六进制转换实用程序选项。Go

All Revision History Changes Intro HTMLFebruary 28, 2020 to August 31, 2020 (from RevisionT (February 2020)to RevisionU (August 2020))

  • 更新了整个文档中的表格、图和交叉参考的编号格式。Go
  • 删除了整个文档中对处理器 Wiki 的引用。Go

下表列出了更改文档编号格式前对此文档做出的改动。左列标识了本文档出现该特定改动的首个版本。

添加内容的版本 章节 位置 添加/修改/删除
SPRU513T 程序加载 GUID-2ADFA9EA-D117-4046-82B3-A44A83461545.html#GUID-2ADFA9EA-D117-4046-82B3-A44A83461545 更正了有关 RAM 和 ROM 型号使用 CINIT 进行初始化的信息。
SPRU513T 链接器 GUID-CA083EDE-2CFD-4161-A82A-4DAD5AA7C51A.html#GUID-CA083EDE-2CFD-4161-A82A-4DAD5AA7C51A 阐明了如果只有链接器在运行,则需要 --rom_model 或 --ram_model,但如果编译器在同一命令行中的 C/C++ 文件上运行,则 --rom_model 是默认选项。
SPRU513T 链接器 GUID-88BEF897-2B81-4E60-B2D3-0DFDC3B57C38.html#GUID-88BEF897-2B81-4E60-B2D3-0DFDC3B57C38 阐明了只有在使用 --rom_model 链接器选项时,才发生零初始化,使用 --ram_model 选项时则不发生。
SPRU513T 链接器 GUID-B65E09DA-4E20-4B45-9353-DF20B9418324.html#GUID-B65E09DA-4E20-4B45-9353-DF20B9418324GUID-FF28563B-D6AD-4B87-8954-50CAED14DB3B.html#GUID-FF28563B-D6AD-4B87-8954-50CAED14DB3BGUID-1369FD42-8A59-4A32-A442-7F8E25B7EFB2.html#GUID-1369FD42-8A59-4A32-A442-7F8E25B7EFB2 添加了使用相关存储器区域中上一个已分配字节的运行时地址来定义符号的 LAST 操作符。
SPRU513T 十六进制转换实用程序 GUID-DA3B0CEE-E77D-4709-B228-F1CB0A32AEA7.html#GUID-DA3B0CEE-E77D-4709-B228-F1CB0A32AEA7 现在可以将引导表与十六进制转换实用程序的安全闪存启动流程 ( (--cmac) 功能搭配使用。
SPRU513T 十六进制转换实用程序 GUID-33A0B39D-F299-441F-8420-FCCFEA9EADBC.html#GUID-33A0B39D-F299-441F-8420-FCCFEA9EADBC 提供示例,展示 ROMS 指令语法中 8 位存储器宽度与 16 位存储器宽度的效果对比。
SPRU513S -- 全文 -- 更改了由编译器创建的目标文件的默认文件扩展名,以防止在 C 和 C++ 文件具有相同名称时发生冲突。从 C 源文件生成的目标文件具有 .c.obj 扩展名。从 C++ 源文件生成的目标文件具有 .cpp.obj 扩展名。从汇编源文件生成的目标文件仍然具有 .obj 扩展名。
SPRU513S 十六进制转换实用程序 GUID-DA3B0CEE-E77D-4709-B228-F1CB0A32AEA7.html#GUID-DA3B0CEE-E77D-4709-B228-F1CB0A32AEA7 添加了对 TMS320F2838x 器件的安全闪存启动功能的支持。
SPRU513R.1 链接器 GUID-7909E664-EC9A-4A11-8DBC-380625950B1D.html#GUID-7909E664-EC9A-4A11-8DBC-380625950B1D 添加了有关 NOINIT 特殊段类型的文档。(仅限 EABI)
SPRU513R -- 全文 -- 添加了有关 EABI 支持的更多文档。其中包括标记仅支持 COFF 或 EABI 的功能。在必要时将示例标记为 COFF 特定示例。
SPRU513R 目标模块 GUID-E8B058A6-EB5B-4F30-ABC1-5E092BC85BDE.html#GUID-E8B058A6-EB5B-4F30-ABC1-5E092BC85BDE 添加了有关 ELF 目标文件格式的信息。
SPRU513R 目标模块 GUID-1676484E-7353-4D58-9D54-CF210DFC2053.html#GUID-1676484E-7353-4D58-9D54-CF210DFC2053GUID-B37D38DC-3E0F-4CAA-AE24-2364FEEF9528.html#GUID-B37D38DC-3E0F-4CAA-AE24-2364FEEF9528 添加了有关 EABI 所用段名的信息。
SPRU513R 目标模块 GUID-CF6CBE91-29B9-4050-8D6B-C9AADF1B7FF5.html#GUID-CF6CBE91-29B9-4050-8D6B-C9AADF1B7FF5 为清楚起见,修改了有关符号类型的信息。
SPRU513R 程序加载 GUID-924DD8ED-D843-4EAB-844B-E11E05A38C20.html#GUID-924DD8ED-D843-4EAB-844B-E11E05A38C20 添加了有关 EABI 的 RAM 型号和 ROM 型号的信息。
SPRU513R 汇编器说明 GUID-7F8930CE-64B3-49EA-8F9E-2FC3409140D2.html#GUID-7F8930CE-64B3-49EA-8F9E-2FC3409140D2 添加了有关控制 ABI 设置的信息。
SPRU513R 汇编器说明 GUID-F412EB68-5F15-48C1-8C88-4CD468E6B79F.html#GUID-F412EB68-5F15-48C1-8C88-4CD468E6B79F 更正了符号常量列表。
SPRU513R 汇编器说明 GUID-6B2E45D6-02D0-4016-8B9A-F45551EDE696.html#GUID-6B2E45D6-02D0-4016-8B9A-F45551EDE696 添加了有关 FPU RB 寄存器的文档。
SPRU513R 汇编器指令 GUID-40FB6767-A63F-4969-9392-2558E5C14288.html#GUID-40FB6767-A63F-4969-9392-2558E5C14288 添加了与 EABI 相关的指令的主题:.bss、.common、.elfsym、.group、.gmember、endgroup、.retain、.retainrefs、.weak、.xfloat 和 .xldouble。
SPRU513R 汇编器指令 .bits 主题 修改了关于 .bits 指令的说明。
SPRU513R 汇编器指令 .usect 主题 修改了关于 .usect 指令的说明。
SPRU513R 汇编器指令 .symdepend 主题 .weak 主题 拆分了 .symdepend 和 .weak 指令主题。
SPRU513R 链接器 GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3.html#GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3 添加了 --emit_references:file 链接器选项。
SPRU513R 链接器 GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3.html#GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3 添加了与 EABI 相关的链接器选项:--cinit_compression、--copy_compression、--retain、--unused_section_elimination、--warn_sections 和 --zero_init。
SPRU513R 链接器 GUID-2B5A3343-5ADB-487E-A11C-3FEED17B51A0.html#GUID-2B5A3343-5ADB-487E-A11C-3FEED17B51A0 添加了链接器自动为 EABI 定义的符号。
SPRU513R 链接器 GUID-80882276-4CEE-43F4-B9F2-BAA544DCEE26.html#GUID-80882276-4CEE-43F4-B9F2-BAA544DCEE26 添加了有关 EABI 所用弱符号的信息。
SPRU513R 链接器 GUID-6BEDEFB7-8E12-47D5-B4D2-27E6E2FBD02F.html#GUID-6BEDEFB7-8E12-47D5-B4D2-27E6E2FBD02F 添加了有关 EABI 可用压缩的信息。
SPRU513Q 添加了对 EABI 的支持。COFF ABI 是默认值。
SPRU513Q 汇编器、
链接器
GUID-F412EB68-5F15-48C1-8C88-4CD468E6B79F.html#GUID-F412EB68-5F15-48C1-8C88-4CD468E6B79FGUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DA.html#GUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DAGUID-BA59EA1B-5D52-4730-97C9-A48835E5AB20.html#GUID-BA59EA1B-5D52-4730-97C9-A48835E5AB20 添加了对 64 位浮点运算的支持(--float_support=fpu64)。
添加了对快速整数除法的支持(--idiv_support=idiv0)。
添加了对附加 TMU 指令的支持(--tmu_support=tmu1)。
添加了对 VCU 的循环冗余校验(CRC) 的支持(--vcu_support=vcrc)。
SPRU513Q 链接器 GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3.html#GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3GUID-40753F17-63A7-47C4-8AB6-C802BA12A5A6.html#GUID-40753F17-63A7-47C4-8AB6-C802BA12A5A6GUID-B9CCD576-4ACA-4E98-A04C-A88641189267.html#GUID-B9CCD576-4ACA-4E98-A04C-A88641189267 添加了 --ecc=on 链接器选项,支持生成 ECC。请注意,ECC 生成功能现在默认关闭。
SPRU513Q 链接器 GUID-DFB8D324-FC2A-40EA-A9E9-04E31EC1DC64.html#GUID-DFB8D324-FC2A-40EA-A9E9-04E31EC1DC64 添加了链接器语法,将经过初始化的段与未经初始化的段合并。
SPRU513P 十六进制转换实用程序 GUID-956F28BC-EE18-4F39-B4A4-D838F3310D89.html#GUID-956F28BC-EE18-4F39-B4A4-D838F3310D89GUID-D6C99CD4-1246-47FF-B926-6499BC29C58B.html#GUID-D6C99CD4-1246-47FF-B926-6499BC29C58B 添加了 --array 选项,可生成阵列输出格式。
SPRU513M 目标模块、
汇编器指令
GUID-B37D38DC-3E0F-4CAA-AE24-2364FEEF9528.html#GUID-B37D38DC-3E0F-4CAA-AE24-2364FEEF9528.usect 主题 添加了有关 DP 负载优化的信息。
SPRU513M 汇编器说明 GUID-2D9E46D7-5F6F-4013-A38A-7AF0E15B3B3C.html#GUID-2D9E46D7-5F6F-4013-A38A-7AF0E15B3B3CGUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DA.html#GUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DAGUID-5BFBCF32-BA9C-4099-911A-3A85C8C9B57B.html#GUID-5BFBCF32-BA9C-4099-911A-3A85C8C9B57B 记录了对 CLA 版本 2 和 CLA v2 背景任务的支持。
SPRU513M 汇编器指令 .usect 主题 阐释了 .usect 指令对齐标志的效果。
SPRU513M 链接器说明 GUID-EE812211-E132-497B-BB26-288B6C164992.html#GUID-EE812211-E132-497B-BB26-288B6C164992 提供了指向 E2E 博客文章的链接,通过示例展示如何使用由链接器生成的 CRC 表来执行循环冗余校验。
SPRU513L 链接器说明 GUID-B9CCD576-4ACA-4E98-A04C-A88641189267.html#GUID-B9CCD576-4ACA-4E98-A04C-A88641189267 记录了 ECC 指令的修改后行为。
SPRU513K 链接器说明 GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3.html#GUID-26A6E3F3-7F0E-4EB2-8F4E-FFF8A877E2F3 弃用、删除或重命名了几个链接器选项。链接器继续接受一些已被弃用的选项,但不建议使用它们。
SPRU513J 链接器说明 GUID-A8826637-0346-4D10-8D8E-A47F5969FEDE.html#GUID-A8826637-0346-4D10-8D8E-A47F5969FEDE 增加了有关从链接器命令文件访问文件和库的信息。
SPRU513J 链接器说明 GUID-DA0DC720-0693-4BBB-909A-483FE2172CA5.html#GUID-DA0DC720-0693-4BBB-909A-483FE2172CA5 扩展了可用 CRC 算法的列表。
SPRU513J 目标文件实用程序 GUID-0C894731-9E85-4DB0-B450-BEB10E1FCEBE.html#GUID-0C894731-9E85-4DB0-B450-BEB10E1FCEBE 目标文件显示实用程序增加了 –cg 选项,能够以 XML 格式显示函数栈的使用情况和被调用函数信息。
SPRU513I 程序加载、链接器 GUID-CA94F19A-55D3-458C-AF20-299842571855.html#GUID-CA94F19A-55D3-458C-AF20-299842571855GUID-5DAC9927-33BD-4FF7-81CC-2FAFDE7B4371.html#GUID-5DAC9927-33BD-4FF7-81CC-2FAFDE7B4371 添加了 BINIT(引导时初始化)复制表。
SPRU513I 链接器 GUID-44F2BC16-D744-4B19-A62F-F29E6C6BDCDB.html#GUID-44F2BC16-D744-4B19-A62F-F29E6C6BDCDB 为 --mapfile_contents 链接器选项添加了作为筛选器的模块。
SPRU513I 链接器 GUID-56BA022E-394B-48A6-84D1-C8332DDEAB3E.html#GUID-56BA022E-394B-48A6-84D1-C8332DDEAB3E 添加了在 RAM 中放置函数的示例。
SPRU513I 链接器 GUID-C9B54916-31F7-4AF3-B6DD-5B85CDA49B6C.html#GUID-C9B54916-31F7-4AF3-B6DD-5B85CDA49B6C 记录了 table() 操作符。
SPRU513H -- -- 弃用了 near 和 far 关键字,不再支持小型存储器型号;唯一的存储器型号使用 32 位指针。也不再支持 C27x 目标模式。不再使用 .bss、.const, 和 .sysmem 段;使用 .ebss、.econst 和 .esysmem 段。因此,不再记录 --farheap 链接器选项、far call trampolines 和若干其他相关特性。
SPRU513H 目标模块 GUID-1656ACA2-A8EC-43B6-A2D5-841DF5E62343.html#GUID-1656ACA2-A8EC-43B6-A2D5-841DF5E62343 添加了有关当前段以及指令如何与其交互的信息。
SPRU513H 目标模块 GUID-CF6CBE91-29B9-4050-8D6B-C9AADF1B7FF5.html#GUID-CF6CBE91-29B9-4050-8D6B-C9AADF1B7FF5GUID-BB00316F-8220-4F47-A0ED-1C17FDC79B5B.html#GUID-BB00316F-8220-4F47-A0ED-1C17FDC79B5B 添加了有关各种类型的符号以及符号表的信息。
SPRU513G 汇编器说明 GUID-2D9E46D7-5F6F-4013-A38A-7AF0E15B3B3C.html#GUID-2D9E46D7-5F6F-4013-A38A-7AF0E15B3B3CGUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DA.html#GUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DA 通过 --vcu_support=vcu2 添加了对 2 类 VCU 的支持。
SPRU513G 汇编器说明 GUID-2D9E46D7-5F6F-4013-A38A-7AF0E15B3B3C.html#GUID-2D9E46D7-5F6F-4013-A38A-7AF0E15B3B3CGUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DA.html#GUID-6218AD22-946B-4383-BBF8-A6B12EEAF8DA 通过 --cla_support=cla1 添加了对 1 类 CLA 的支持。
SPRU513H 汇编器说明 GUID-5BFBCF32-BA9C-4099-911A-3A85C8C9B57B.html#GUID-5BFBCF32-BA9C-4099-911A-3A85C8C9B57B 更改了 CLA 编译器暂存存储器中函数帧的命名。
SPRU513H 链接器 GUID-C27F439A-019A-454A-A309-13D83DDBD258.html#GUID-C27F439A-019A-454A-A309-13D83DDBD258GUID-FF28563B-D6AD-4B87-8954-50CAED14DB3B.html#GUID-FF28563B-D6AD-4B87-8954-50CAED14DB3BGUID-A4A89280-A715-4E24-A66E-E6C0B2976FB2.html#GUID-A4A89280-A715-4E24-A66E-E6C0B2976FB2 添加了有关引用链接器符号的信息。
SPRU513H 链接器 GUID-BA59EA1B-5D52-4730-97C9-A48835E5AB20.html#GUID-BA59EA1B-5D52-4730-97C9-A48835E5AB20 添加了链接器的预定义宏列表。
SPRU513G 链接器 GUID-DF2119B0-6645-4D9B-AD96-6003E8505498.html#GUID-DF2119B0-6645-4D9B-AD96-6003E8505498 删除了加载和填充属性的无效语法。

Date Letter Revision History Changes Intro HTML ()to Revision ()