ZHCU820Y September 2004 – June 2021
这些选项对 MSP430 工具集来说是特定的。有关更多信息,请参阅参考的章节。Topic Link Label3.3.11中列出了 MSP430 专用汇编器选项。
MSP430 编译器现在仅支持使用 ELF 目标文件格式和 DWARF 调试格式的嵌入式应用程序二进制接口 (EABI) ABI。如果希望支持传统的COFF ABI,请使用 MSP430 v4.4 代码生成工具,并参阅 SLAU132J 和 SLAU131J 以查看相关文档。
--common={on|off} | 当为on(默认设置)时,未初始化的文件范围变量作为通用符号发出。当为off 时,不会创建通用符号。允许创建通用符号的好处是生成的代码可以删除未使用的变量,否则会增加 .bss 段的大小。(大于 32 字节的未初始化变量通过放置在可以在链接时省略的单独子段中被单独地优化。)如果变量已分配到 .bss 以外的段,则变量不能作为通用符号。 | |
--code_model={large|small} | 指定代码内存模型:小型(16 位函数指针和低 64K 内存)或大型(20 位函数指针和 1MB 地址空间)。有关详细信息,请参阅Topic Link Label7.1.1。 | |
--data_model={restricted|large| small} |
指定数据内存模型:小型(16 位数据指针和低 64K 内存)、受限(32 位数据指针、限制为64K的对象 和 1MB 内存)和大型(32 位数据指针和 1MB内存)。有关详细信息,请参阅Topic Link Label7.1.2。 | |
--disable_interrupts_around_hw_mpy=off | 将此选项设置为 off 会在内联的硬件乘法期间启用中断。(内联硬件乘法由 --use_hw_mpy 和 --opt_for_speed 选项控制。) 仅当应用程序中的所有 ISR 不使用乘法并且不调用其他函数时才应使用此选项。默认情况下,如果硬件乘法被内联,则在硬件乘法期间禁用中断,因为此类运算不可重入。 如果此选项设置为 off 并且 ISR 使用乘法,则链接器会发出警告,指出 ISR 中的乘法将使用 RTS 软件乘法例程而不是 RTS 硬件乘法例程。 如果此选项设置为 off 并且 ISR 调用其他函数,则链接器生成非致命错误诊断,指示如果应用程序包含调用其他函数的 ISR,则不能使用选项 --disable_interrupts_around_hw_mpy=off。这样做的原因是,如果 ISR 调用使用硬件乘法器进行乘法的例程,那么启用中断的内联硬件乘法器就不再安全了。 |
|
--enum_type={packed|unpacked} | 默认情况下,编译器使用 --enum_type=unpacked,这意味着编译器使用不小于 16 位的整数类型(int、long 或 long long)来存储枚举类型变量。如果枚举常量值适合 8 位整数类型,则 --enum_type=packed 选项会使编译器使用 8 位整数类型。有关枚举类型大小的详细信息,请参阅Topic Link Label6.5.1。 不要将使用 --enum_type=packed 选项编译的目标文件与没有使用该选项编译的目标文件一起链接。如果正在使用 --enum_type=packed 选项,则必须始终使用该选项来编译所有 C/C++ 文件;否则,您将遇到直到运行时才能检测到的错误。 |
|
--large_memory_model | 已弃用此选项。使用 --data_model=large。 | |
--near_data={globals|none} | 指定全局读取/写入数据必须位于内存的前 64K 中。有关详细信息,请参阅Topic Link Label7.1.3。 | |
--pending_instantiations=# | 指定在任何给定时间可能正在进行的模板实例化的数量。使用 0 指定无限数量。 | |
--plain_char={unsigned|signed} | 指定如何处理 C/C++ 普通字符变量。默认为无符号。 | |
--ramfunc={on|off} | 如果设置为 on,则指定所有函数都应放置在位于RAM 中的 .TI.ramfunc 段中。如果设置为 off,则只有具有 ramfunc 函数属性的函数才会以此种方式被处理。请参阅Topic Link Label6.16.2。 较新的 TI 链接器命令文件通过在 .TI.ramfunc 段中旋转函数来自动支持 --ramfunc 选项。如果链接器命令文件不包含 .TI.ramfunc 段的段规格,则可以修改链接器命令文件以将此段放在 RAM 中。有关段放置位置的详细信息,请参阅《MSP430 汇编语言工具用户指南》。 |
|
--silicon_version | 选择指令集版本。使用 --silicon_version=mspx 为 MSP430X 器件生成代码(20 位代码寻址)。使用 --silicon_version=msp 为 16 位 MSP430 器件生成代码。 为 16 位 MSP430 器件汇编/编译的模块与为 20 位 MSPx 器件汇编/编译的模块不兼容。如果试图组合不兼容的目标文件,链接器将生成错误。 |
|
--use_hw_mpy[= 16,32,F5,none] | 此选项是编译器选项。该选项应放置在命令行上 -z 选项之前。 MSP430 器件没有乘法指令,而有些器件根本没有硬件乘法。乘法由库函数执行。该库函数要么使用硬件乘法功能,要么在软件中模拟该功能。默认情况下,编译器生成相应版本的引用但该版本不使用某些 MSP430 器件版本上可用的硬件乘法器外设。如果 MSP430 器件具有多个硬件,则可以选择使用与硬件匹配的库例程以获得最佳性能。在为硬件乘法器可用的器件进行编译时,请使用 --use_hw_mpy 编译器选项。 在编译时,如果 --opt_for_speed 设置为 4 或 5 并且 --opt_level 设置为除“off”以外的任何值,则使用此选项会导致在代码生成期间内联硬件乘法调用。如果要控制在内联硬件乘法期间是否启用中断,请参阅 --disable_interrupts_around_hw_mpy=off 选项。 如果未启用内联但启用了其他优化(--opt_for_speed 设置为 1、2 或 3),则使用此选项会使链接器将所有对默认乘法例程的引用替换为支持硬件乘法器的乘法例程版本。 可选参数指示正在使用哪个版本的硬件乘法,并且必须为以下之一:
有关硬件乘法器的更多信息,请参阅 MSP430x1xx、MSP430x3xx、MSP430x4xx 和 MSP430x5xx 系列用户指南。 |