ZHCU820Y September   2004  – June 2021

 

  1. 1请先阅读
    1. 1.1 关于本手册
    2. 1.1 标记规则
    3. 1.1 相关文档
    4. 1.1 米6体育平台手机版_好二三四 (TI) 提供的相关文档
    5. 1.1 商标
  2. 1软件开发工具简介
    1. 1.1 软件开发工具概述
    2. 1.2 编译器接口
    3. 1.3 ANSI/ISO 标准
    4. 1.4 输出文件
    5. 1.5 实用程序
  3. 2使用 C/C++ 编译器
    1. 2.1  关于编译器
    2. 2.2  调用 C/C++ 编译器
    3. 2.3  使用选项更改编译器的行为
      1. 2.3.1  链接器选项
      2. 2.3.2  常用选项
      3. 2.3.3  其他有用的选项
      4. 2.3.4  运行时模型选项
      5. 2.3.5  符号调试选项
      6. 2.3.6  指定文件名
      7. 2.3.7  更改编译器解释文件名的方式
      8. 2.3.8  更改编译器处理 C 文件的方式
      9. 2.3.9  更改编译器解释和命名扩展名的方式
      10. 2.3.10 指定目录
      11. 2.3.11 汇编器选项
      12. 2.3.12 已弃用的选项
    4. 2.4  通过环境变量控制编译器
      1. 2.4.1 设置默认编译器选项 (MSP430_C_OPTION)
      2. 2.4.2 命名一个或多个备用目录 (MSP430_C_DIR)
    5. 2.5  控制预处理器
      1. 2.5.1  预先定义的宏名称
      2. 2.5.2  #include 文件的搜索路径
        1. 2.5.2.1 将目录添加到 #include 文件搜索路径(--include_path 选项)
      3. 2.5.3  支持#warning 和 #warn 指令
      4. 2.5.4  生成预处理列表文件(--preproc_only 选项)
      5. 2.5.5  预处理后继续编译(--preproc_with_compile 选项)
      6. 2.5.6  生成带有注释的预处理列表文件(--preproc_with_comment 选项)
      7. 2.5.7  生成带有行控制详细信息的预处理列表(--preproc_with_line 选项)
      8. 2.5.8  为 Make 实用程序生成预处理输出(--preproc_dependency 选项)
      9. 2.5.9  生成包含#include在内的文件列表(--preproc_includes 选项)
      10. 2.5.10 在文件中生成宏列表(--preproc_macros 选项)
    6. 2.6  将参数传递给 main()
    7. 2.7  了解诊断消息
      1. 2.7.1 控制诊断消息
      2. 2.7.2 如何使用诊断抑制选项
    8. 2.8  其他消息
    9. 2.9  生成交叉引用列表信息(--gen_cross_reference 选项)
    10. 2.10 生成原始列表文件(--gen_preprocessor_listing 选项)
    11. 2.11 使用内联函数扩展
      1. 2.11.1 内联内在函数运算符
      2. 2.11.2 内联限制
    12. 2.12 使用交叉列出功能
    13. 2.13 控制应用程序二进制接口
    14. 2.14 启用入口挂钩和出口挂钩函数
  4. 3优化您的代码
    1. 3.1  调用优化
    2. 3.2  控制代码大小与速度
    3. 3.3  执行文件级优化(--opt_level=3 选项)
      1. 3.3.1 创建优化信息文件(--gen_opt_info 选项)
    4. 3.4  程序级优化(--program_level_compile 和 --opt_level=3 选项)
      1. 3.4.1 控制程序级优化(--call_assumptions 选项)
      2. 3.4.2 混合 C/C++ 和汇编代码时的优化注意事项
    5. 3.5  自动内联扩展(--auto_inline 选项)
    6. 3.6  链接时优化(--opt_level=4 选项)
      1. 3.6.1 选项处理
      2. 3.6.2 不兼容的类型
    7. 3.7  使用反馈制导优化
      1. 3.7.1 反馈向导优化
        1. 3.7.1.1 第 1 阶段 - 收集程序分析信息
        2. 3.7.1.2 第 2 阶段 - 使用应用程序分析信息进行优化
        3. 3.7.1.3 生成和使用配置文件信息
        4. 3.7.1.4 反馈制导优化的应用示例
        5. 3.7.1.5 .ppdata 段
        6. 3.7.1.6 反馈制导优化和代码大小调整
        7. 3.7.1.7 检测程序执行开销
        8. 3.7.1.8 无效的分析数据
      2. 3.7.2 分析数据解码器
      3. 3.7.3 反馈制导优化 API
      4. 3.7.4 反馈制导优化总结
    8. 3.8  使用配置文件信息分析代码覆盖率
      1. 3.8.1 代码覆盖
        1. 3.8.1.1 第 1 阶段 - 收集程序分析信息
        2. 3.8.1.2 第 2 阶段 -- 生成代码覆盖信息报告
      2. 3.8.2 相关的特征和功能
        1. 3.8.2.1 路径分析器
        2. 3.8.2.2 分析选项
        3. 3.8.2.3 环境变量
    9. 3.9  访问优化代码中的别名变量
    10. 3.10 在优化代码中谨慎使用 asm 语句
    11. 3.11 将交叉列出功能与优化一起使用
    12. 3.12 调试优化代码
    13. 3.13 正在执行什么类型的优化?
      1. 3.13.1  基于成本的寄存器分配
      2. 3.13.2  别名消歧
      3. 3.13.3  分支优化和控制流简化
      4. 3.13.4  数据流优化
      5. 3.13.5  表达式简化
      6. 3.13.6  函数的内联扩展
      7. 3.13.7  函数符号别名
      8. 3.13.8  归纳变量和强度降低
      9. 3.13.9  循环不变量代码运动
      10. 3.13.10 循环旋转
      11. 3.13.11 指令排程
      12. 3.13.12 尾部合并
      13. 3.13.13 用常数除数进行整数除法
  5. 4链接 C/C++ 代码
    1. 4.1 通过编译器调用链接器(-z 选项)
      1. 4.1.1 单独调用链接器
      2. 4.1.2 调用链接器作为编译步骤的一部分
      3. 4.1.3 禁用链接器(--compile_only 编译器选项)
    2. 4.2 链接器代码优化
      1. 4.2.1 条件链接
      2. 4.2.2 生成聚合数据子段(--gen_data_subsections 编译器选项)
    3. 4.3 控制链接过程
      1. 4.3.1 包含运行时支持库
        1. 4.3.1.1 自动选择运行时支持库
          1. 4.3.1.1.1 使用 --issue_remarks 选项
        2. 4.3.1.2 手动选择运行时支持库
        3. 4.3.1.3 用于搜索符号的库顺序
      2. 4.3.2 运行时初始化
      3. 4.3.3 通过中断向量进行初始化
      4. 4.3.4 FRAM 内存保护单元的初始化
      5. 4.3.5 Cinit 的初始化和看门狗计时器保持
      6. 4.3.6 全局对象构造函数
      7. 4.3.7 指定全局变量初始化类型
      8. 4.3.8 指定在内存中分配段的位置
      9. 4.3.9 链接器命令文件示例
  6. 5C/C++ 语言实现
    1. 5.1  MSP430 C 的特征
      1. 5.1.1 实现定义的行为
    2. 5.2  MSP430 C++ 的特征
    3. 5.3  使用 ULP Advisor
    4. 5.4  关于硬件配置的建议
    5. 5.5  数据类型
      1. 5.5.1 枚举类型大小
    6. 5.6  文件编码和字符集
    7. 5.7  关键字
      1. 5.7.1 const 关键字
      2. 5.7.2 __interrupt 关键字
      3. 5.7.3 restrict 关键字
      4. 5.7.4 volatile 关键字
    8. 5.8  C++ 异常处理
    9. 5.9  寄存器变量和参数
    10. 5.10 __asm 语句
    11. 5.11 pragma 指令
      1. 5.11.1  BIS_IE1_INTERRUPT
      2. 5.11.2  CALLS Pragma
      3. 5.11.3  CHECK_ULP Pragma
      4. 5.11.4  CODE_ALIGN Pragma
      5. 5.11.5  CODE_SECTION Pragma
      6. 5.11.6  DATA_ALIGN Pragma
      7. 5.11.7  DATA_SECTION Pragma
        1. 5.11.7.1 使用 DATA_SECTION Pragma C 源文件
        2. 5.11.7.2 使用 DATA_SECTION Pragma C++ 源文件
        3. 5.11.7.3 使用 DATA_SECTION Pragma 汇编源文件
      8. 5.11.8  诊断消息 Pragma
      9. 5.11.9  FORCEINLINE Pragma
      10. 5.11.10 FORCEINLINE_RECURSIVE Pragma
      11. 5.11.11 FUNC_ALWAYS_INLINE Pragma
      12. 5.11.12 FUNC_CANNOT_INLINE Pragma
      13. 5.11.13 FUNC_EXT_CALLED Pragma
      14. 5.11.14 FUNC_IS_PURE Pragma
      15. 5.11.15 FUNC_NEVER_RETURNS Pragma
      16. 5.11.16 FUNC_NO_GLOBAL_ASG Pragma
      17. 5.11.17 FUNC_NO_IND_ASG Pragma
      18. 5.11.18 FUNCTION_OPTIONS Pragma
      19. 5.11.19 INTERRUPT Pragma
      20. 5.11.20 LOCATION Pragma
      21. 5.11.21 MUST_ITERATE Pragma
        1. 5.11.21.1 MUST_ITERATE Pragma 语法
        2. 5.11.21.2 使用 MUST_ITERATE 扩展编译器对循环的了解
      22. 5.11.22 NOINIT 和 PERSISTENT Pragma
      23. 5.11.23 NOINLINE Pragma
      24. 5.11.24 NO_HOOKS Pragma
      25. 5.11.25 once Pragma
      26. 5.11.26 pack Pragma
      27. 5.11.27 PROB_ITERATE Pragma
      28. 5.11.28 RESET_ULP Pragma
      29. 5.11.29 RETAIN Pragma
      30. 5.11.30 SET_CODE_SECTION 和 SET_DATA_SECTION Pragma
      31. 5.11.31 UNROLL Pragma
      32. 5.11.32 vector Pragma
      33. 5.11.33 WEAK Pragma
    12. 5.12 _Pragma 运算符
    13. 5.13 应用程序二进制接口
    14. 5.14 目标文件符号命名规则(链接名)
    15. 5.15 更改 ANSI/ISO C/C++ 语言模式
      1. 5.15.1 C99 支持 (--c99)
      2. 5.15.2 C11 支持 (--c11)
      3. 5.15.3 严格 ANSI 模式和宽松 ANSI 模式(--strict_ansi 和 --relaxed_ansi)
    16. 5.16 GNU 和 Clang 语言扩展
      1. 5.16.1 扩展
      2. 5.16.2 函数属性
      3. 5.16.3 For 循环属性
      4. 5.16.4 变量属性
      5. 5.16.5 类型属性
      6. 5.16.6 内置函数
    17. 5.17 编译器限制
  7. 6运行时环境
    1. 6.1  内存模型
      1. 6.1.1 代码内存模型
      2. 6.1.2 数据存储器模式
      3. 6.1.3 支持近数据
      4. 6.1.4
      5. 6.1.5 C/C++ 软件堆栈
      6. 6.1.6 动态内存分配
    2. 6.2  对象表示
      1. 6.2.1 数据类型存储
        1. 6.2.1.1 指向成员函数类型的指针
        2. 6.2.1.2 结构和数组对齐
        3. 6.2.1.3 字段/结构对齐
        4. 6.2.1.4 var 的 C 代码定义
      2. 6.2.2 字符串常量
    3. 6.3  寄存器惯例
    4. 6.4  函数结构和调用惯例
      1. 6.4.1 函数如何进行调用
      2. 6.4.2 被调用函数如何响应
      3. 6.4.3 访问参数和局部变量
    5. 6.5  访问 C 和 C++ 中的链接器符号
    6. 6.6  将 C 和 C++ 与汇编语言相连
      1. 6.6.1 使用汇编语言模块与 C/C++ 代码
      2. 6.6.2 从 C/C++ 访问汇编语言函数
        1. 6.6.2.1 从 C/C++ 程序调用汇编语言函数
        2. 6.6.2.2 Topic Link Label1 调用的汇编语言程序
        3.       227
      3. 6.6.3 从 C/C++ 访问汇编语言变量
        1. 6.6.3.1 访问汇编语言全局变量
          1. 6.6.3.1.1 汇编语言变量程序
          2. 6.6.3.1.2 C 程序从 Topic Link Label1 中访问汇编语言
        2.       232
        3. 6.6.3.2 访问汇编语言常量
          1. 6.6.3.2.1 从 C 语言访问汇编语言常量
          2. 6.6.3.2.2 Topic Link Label1 的汇编语言程序
          3.        236
      4. 6.6.4 与汇编源代码共享 C/C++ 头文件
      5. 6.6.5 使用内联汇编语言
    7. 6.7  中断处理
      1. 6.7.1 在中断期间保存寄存器
      2. 6.7.2 使用 C/C++ 中断例程
        1.       242
      3. 6.7.3 使用汇编语言中断例程
      4. 6.7.4 中断向量
      5. 6.7.5 其他中断信息
    8. 6.8  使用内在函数访问汇编语言语句
      1. 6.8.1 MSP430 内在函数
      2. 6.8.2 Floating Point Conversion Intrinsics
      3. 6.8.3 弃用的内在函数
      4. 6.8.4 __delay_cycle 内在函数
      5. 6.8.5 __never_executed 内在函数
        1. 6.8.5.1 将 __never_executed 与矢量发生器搭配使用
          1. 6.8.5.1.1 TBIV 矢量发生器
          2.        254
        2. 6.8.5.2 将 __never_executed 与通用 Switch 表达式搭配使用
          1. 6.8.5.2.1 通用 Switch 语句
          2.        257
    9. 6.9  系统初始化
      1. 6.9.1 用于系统预初始化的引导挂钩函数
      2. 6.9.2 运行时栈
      3. 6.9.3 变量的自动初始化
        1. 6.9.3.1 零初始化变量
        2. 6.9.3.2 的直接初始化
        3. 6.9.3.3 在 运行时自动初始化变量
        4. 6.9.3.4 的自动初始化表
          1. 6.9.3.4.1 数据格式遵循的长度
          2. 6.9.3.4.2 零初始化格式
          3. 6.9.3.4.3 行程编码 (RLE) 格式
          4. 6.9.3.4.4 Lempel-Ziv-Storer-Szymanski 压缩 (LZSS) 格式
        5. 6.9.3.5 在加载时初始化变量
        6. 6.9.3.6 全局构造函数
      4. 6.9.4 初始化表
    10. 6.10 对 20 位 MSP430X 器件的编译
  8. 7使用运行时支持函数并构建库
    1. 7.1 C 和 C++ 运行时支持库
      1. 7.1.1 将代码与对象库链接
      2. 7.1.2 头文件
      3. 7.1.3 修改库函数
      4. 7.1.4 支持字符串处理
      5. 7.1.5 极少支持国际化
      6. 7.1.6 时间和时钟函数支持
      7. 7.1.7 允许打开的文件数量
      8. 7.1.8 源码树中的非标准头文件
      9. 7.1.9 库命名规则
    2. 7.2 C I/O 函数
      1. 7.2.1 高级 I/O 函数
        1. 7.2.1.1 格式化和格式转换缓冲区
      2. 7.2.2 低级 I/O 实现概述
        1.       open
        2.       close
        3.       read
        4.       write
        5.       lseek
        6.       unlink
        7.       rename
      3. 7.2.3 器件驱动程序级别 I/O 函数
        1.       DEV_open
        2.       DEV_close
        3.       DEV_read
        4.       DEV_write
        5.       DEV_lseek
        6.       DEV_unlink
        7.       DEV_rename
      4. 7.2.4 为 C I/O 添加用户定义的器件驱动程序
        1. 7.2.4.1 将默认流映射到器件
      5. 7.2.5 器件前缀
        1.       add_device
        2.       308
        3. 7.2.5.1 为 C I/O 器件编程
    3. 7.3 处理可重入性(_register_lock() 和 _register_unlock() 函数)
    4. 7.4 库构建流程
      1. 7.4.1 所需的非米6体育平台手机版_好二三四 (TI) 软件
      2. 7.4.2 使用库构建流程
        1. 7.4.2.1 通过链接器自动重建标准库
        2. 7.4.2.2 手动调用 mklib
          1. 7.4.2.2.1 构建标准库
          2. 7.4.2.2.2 共享或只读库目录
          3. 7.4.2.2.3 使用自定义选项构建库
          4. 7.4.2.2.4 mklib 程序选项摘要
      3. 7.4.3 扩展 mklib
        1. 7.4.3.1 底层机制
        2. 7.4.3.2 来自其他供应商的库
  9. 8C++ 名称还原器
    1. 8.1 调用 C++ 名称还原器
    2. 8.2 C++ 名称还原器的示例用法
      1.      A 术语表
        1.       A.1 术语
          1.        B 修订历史记录

术语

    绝对列表器

    一调试工具,允许创建包含绝对地址的汇编器列表。

    别名消歧

    一种当两个指针表达式不能指向同一位置的技术,允许编译器自由地优化此类表达式的技术。

    别名化

    以多种方式访问单个对象的能力,如两个指针指向单个对象时。它会破坏优化,这是因为任何间接引用都可能引用任何其它对象。

    分配

    链接器计算输出段的最终内存地址的过程。

    ANSI

    美国国家标准协会;这是一家建立行业自愿遵循的标准的组织。

    应用程序二进制接口 (ABI)

    一项指定两个目标模块之间接口的标准。ABI 指定如何调用函数以及如何将信息从一个程序组件传递到另一个程序组件。

    存档库

    由归档器将单独文件组合成单个文件的集合。

    归档器

    一种将几个单独文件集合到称为存档库的单个文件的软件程序。借助归档器,可以添加、删除、提取或替换存档库的成员。

    汇编器

    一种从包含汇编语言指令、指示和宏定义的源文件创建机器语言程序的软件程序。汇编器将绝对操作码替换为符号操作码,并将绝对地址或可重定位地址替换为符号地址。

    赋值语句

    用值来初始化变量的语句。

    自动初始化

    在程序开始执行之前,初始化全局 C 变量(包含在 .cinit 段中)的过程。

    运行时的自动初始化

    链接器在链接 C 代码时使用的初始化方法。在使用 --rom_model 链接选项调用链接器时,链接器会使用此方法。链接器将数据表的 .cinit 段加载到内存中,并在运行时初始化变量。

    大端

    一种寻址协议,字中的字节从左至右编号。字中最高有效字节具有较低编号的地址。端排序是特定于硬件的,并在复位时确定。另请参阅小端

    BIS

    位指令集。

    一组用大括号组合在一起并作为实体的语句。

    .bss 段

    默认目标文件段之一。使用汇编器 .bss 指令在内存映射中保留指定量的空间,用于以后存储数据。.bss 段未初始化。

    字节

    根据 ANSI/ISO C,可以容纳字符的最小可寻址单元。

    C/C++ 编译器

    一种将 C 源语句转换成汇编语言源语句的软件程序。

    代码发生器

    一种编译器工具,采用解析器和优化器生成的文件并生成汇编语言源文件。

    COFF

    通用目标文件格式;根据 AT&T 开发的标准配置的目标文件系统。不再支持该 ABI。

    命令文件

    包含链接器或十六进制转换实用程序的选项、文件名、指令或命令的文件。

    注释

    记录或提高源文件可读性的源语句(或源语句的一部分)。注释不进行编译、汇编或链接;对目标文件没有影响。

    编译器程序

    一种实用工具,可以一步编辑、汇编和选择性链接。通过编译器(包括解析器、优化器和代码生成器)、汇编器和链接器,编译器可以运行一个或多个源代码模块。

    配置内存

    链接器已指定用于分配的内存。

    常量

    其值不能改变的类型。

    交叉引用列表

    由汇编器创建的输出文件,其中列出了定义的符号、符号定义在哪行、哪些行引用了符号以及符号的最终值。

    .data 段

    默认目标文件段之一。.data 段是包含初始化数据的初始化段。可以使用 .data 指令将代码汇编到 .data 段中。

    直接调用

    一种函数调用,其中一个函数使用函数名称调用另一函数。

    指令

    用于控制软件工具操作和功能的专用命令(与用于控制器件操作的汇编语言指令相反)。

    消歧

    请参阅别名消歧

    动态内存分配

    一种在运行时为变量动态分配内存的几个函数(如 malloc,calloc 和 realloc)使用的技术。这是通过定义较大的内存池(堆)并使用函数分配堆中的内存来实现。

    ELF

    可执行和可链接格式;根据系统V 应用程序二进制接口规范配置的目标文件系统。

    仿真器

    复制 MSP430 运行的硬件开发系统。

    入口点

    目标内存中开始执行的点。

    环境变量

    由您定义并分配给字符串的系统符号。环境变量通常包含在 Windows 批处理文件或 UNIX shell 脚本(例如 .cshrc 或 .profile)中。

    结语

    函数中恢复堆栈并返回的代码部分。

    可执行目标文件

    在目标系统上下载并执行的可执行链接目标文件。

    表达式

    一个常量、一个符号或由算术运算符分隔的一系列常量和符号。

    外部符号

    一种在当前程序模块中使用但在其他程序模块中定义或声明的符号。

    文件级优化

    一种优化级别,汇编程序使用其具有的有关整个文件的信息来优化代码(与程序级优化相反,汇编程序使用其具有的有关整个程序的信息来优化代码)。

    函数内联

    在调用点为函数插入代码的过程。这节省了函数调用的开销,并允许优化器在周围代码的上下文中优化函数。

    全局符号

    一种在当前模块中定义并在另一模块中访问或者在当前模块中访问但在另一模块中定义的符号。

    高级语言调试

    编译程序保留符号和高级语言信息(如类型和函数定义)的能力,这样调试工具就可以使用此类信息。

    间接调用

    一种函数调用,其中一个函数通过给出被调用函数的地址来调用另一个函数。

    加载时初始化

    链接器在链接 C/C++ 代码时使用的自动初始化方法。在使用 --ram_model 链接选项调用链接器时,链接器会使用此方法。此方法在加载时而不是运行时初始化变量。

    初始化段

    从目标文件中链接到可执行目标文件中的段。

    输入段

    从目标文件中链接到可执行目标文件中的段。

    集成预处理器

    与解析器合并的C/C++ 预处理器,以允许更快的编译。也可以使用独立的预处理或已预处理的列表。

    交叠特征

    一种将原始 C/C++ 源语句作为注释插入到汇编器的汇编语言输出中的特征。C/C++ 语句被会插入到等效汇编指令的旁边。

    内联函数

    像函数一样使用的运算符,可生成在 C 中无法表达或者需要更多时间和精力才能编写代码的汇编语言代码。

    ISO

    国际标准化组织;一个由国家标准机构组成的全球联合会,其制定了行业自愿遵循的国际标准。

    K&R C

    Kernighan 和 Ritchie C,在C 程序设计语言 (K&R) 第一版中定义的事实标准。大多数为早期非 ISO C 编译器编写的 K&R C 程序应该无需修改即可正确编译和运行。

    标签

    一种从汇编程序源语句第 1 列开始并对应于该语句的地址的符号。标签是唯一能从第 1 列开始的汇编程序语句。

    链接器

    一种将目标文件组合成可执行目标文件的软件程序,该文件可分配到系统内存中并由器件执行。

    列表文件

    由汇编器创建的输出文件,其中列出源语句、源语句的行号以及源语句对段程序计数器 (SPC) 的影响。

    小端

    一种寻址协议,字中的字节从右至左编号。字中最高有效字节具有较高编号的地址。端排序是特定于硬件 ,并在复位时确定。另请参阅大端

    加载器

    一种将可执行目标文件放入系统内存的器件。

    循环展开

    一种扩展小循环的优化,以便循环的每次迭代出现在您的代码中。虽然循环展开会增大代码大小,但可以提高代码性能。

    可用作指令的用户定义例程。

    宏调用

    调用宏的过程。

    宏定义

    定义组成宏的名称和代码的源语句块。

    宏扩展

    将源语句插入代码以代替宏调用的过程。

    映射文件

    由链接器创建的输出文件,其中显示内存配置、段组成、段分配、符号定义以及为程序定义符号的地址。

    内存映射

    被划分为功能块的目标系统内存空间的映射。

    名称改编

    编译器专用特征,其使用有关函数参数返回类型的信息对函数名称进行编码。

    目标文件

    一种包含机器语言目标代码的汇编或链接文件。

    对象库

    由单个目标文件组成的存档库。

    操作数

    汇编语言指令、汇编器指示或宏指令的参数,为指令或指示执行的操作提供信息。

    优化器

    一种提高执行速度并减小 C 程序大小的软件工具。

    选项

    允许您在调用软件工具时请求附加或特定函数的命令行参数。

    输出段

    可执行的链接模块中最终分配段。

    解析器

    一种读取源文件、执行预处理函数、检查语法,以及生成中间文件以用作优化器或代码生成器的输入的软件工具。

    分区

    为每条指令分配数据路径的过程。

    pop

    从栈中检索数据对象的操作。

    pragma

    一种指示编译器如何处理特殊语句的预处理器指令。

    预处理器

    一种解释宏定义、扩展宏、解释头文件和有条件编译,并对处理器指令起作用的软件工具。

    程序级优化

    一种将所有源文件编译成一个中间文件的积极的优化级别。由于编译器可以看到整个程序,因此在程序级优化中执行了一些很少在文件级优化中应用的优化。

    序言

    函数中设置堆栈的代码部分。

    推送

    将数据对象放在栈上以进行临时存储的操作。

    无声运行

    抑制正常横幅和进度信息的选项。

    原始数据

    输出段中可执行代码或初始化数据。

    重定位

    一种当符号的地址改变时由链接器调整对符号的所有引用的过程。

    运行时环境

    程序必须在其中运行的运行时参数。这些参数由内存和寄存器约定、堆栈组织、函数调用约定及系统初始化定义。

    运行时支持函数

    标准的 ISO 函数,执行不属于 C 语言的任务(比如内存分配、字符串转换和字符串搜索等)。

    运行时支持库

    库文件 rts.src,其包含运行时支持函数的源代码。

    一个可重定位的代码块或数据块,最终将与内存映射中的其他段接续。

    符号扩展

    一种用某个值的符号位填充该值未使用的MSB 的过程。

    模拟器

    一种模拟 MSP430 运行的软件开发系统。

    源文件

    一种包含C/C++ 代码或汇编语言代码的文件,该代码被编译或汇编成目标文件。

    独立预处理器

    一种将宏、#include 文件和条件编译作为独立程序扩展的软件工具。其还执行集成预处理,包括解析指令。

    静态变量

    一种其作用域局限于函数或程序的变量。当函数或程序退出时,静态变量的值不会被丢弃;当重新输入函数或程序时,将恢复其之前的值。

    存储类

    符号表中指示如何访问符号的条目。

    字符串表

    存储长度超过8个字符的符号名称表(八个字符或更长字符的符号名称不能存储在符号表中,而是存储在字符串表中)。符号入口点的名称部分指向字符串表中字符串的位置。

    结构

    一个或者多个变量组成在单个名称下的集合。

    子段

    一个可重定位的代码块或数据块,最终将占据内存映射中的连续空间。子段为较大段中的较小段。子段让您可以更严格地控制内存映射。

    符号

    表示地址或值的字母数字字符串。

    符号调试

    一种软件工具保留可由仿真器或模拟器等调试工具使用的符号信息的能力。

    目标系统

    执行开发的目标代码的系统。

    .text 段

    默认目标文件段之一。.text 段被初始化并包含可执行代码。可以使用 .text 指令将代码汇编到 .text 段中。

    三字符序列

    具有某种含义的3 字符序列(由 ISO 646-1983 不变代码集定义)。这些字符不能在 C 字符集中表示,而是扩展为一个字符。例如,三个字符 ??' 扩展为 ^。

    未配置的内存

    未定义为内存映射的一部分且无法加载代码或数据的内存。

    未初始化段

    在内存映射中保留空间但没有实际内容的目标文件段。这些段是使用.bss 和 .usect 指令创建的。

    无符号值

    无论实际符号是什么都会当作非负数的值。

    变量

    一种表示数量的符号,该数量可假设任何一组值。

    目标内存中的 16 位可寻址位置。