This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如何在 SDK 示例中集成.asm 文件?
当被导入到 CCS 时、如何在 MCAL 示例中集成.s 和.asm 文件?
如何解决 CCS 汇编文件中的非法指令错误?
此常见问题解答介绍了如何在单个项目中编译不同的汇编文件扩展名。 即使您提供了正确的汇编语法、也会生成"指定的非法助记符"和"非法指令"等编译器错误。 这是因为项目中缺少编译器标志。 这个 FAQ 中也讨论了添加这些标志的步骤。
MCU_PLUS_SDK 对汇编文件使用.S 文件扩展名、而 MCAL 对汇编文件使用.asm 文件扩展名。
以下是这些扩展名之间的区别:
非常重要 |
|
十分重要 |
|
.asm |
|
开发流程的编译、汇编和链接部分将如下所示:
通过 CCS 中的 MCU_PLUS_SDK 库编译.asm 文件:
这应该会编译基于 SDK 的工程的代码而不会出现错误。
通过 CCS 中的 MCAL 库编译.s 和.S 文件:
这应该会编译基于 MCAL 的项目而不会出现错误。
通过命令行编译汇编文件:
使用命令行通过 tiarmclang 编译和链接文件时、指定了源文件/汇编文件(.c、.cpp、.s、.S、.asm)。 然后指定将转换这些文件的目标文件。 同一命令行中提供了编译器选项/标志和链接器选项、用于链接这些指定的文件。
语法示例如下所示:
在此命令中声明.asm 文件时、"-x ti-asm"位于文件前面、"-x none"标志位于所有.asm 文件之后。 编译端的示例语法如下所示:
此处、"-x ti-asm"选项表示 ti-ASM-SOURCE1.asm 文件由 TI-SYNTAX ARM 汇编器处理、后续的"-x none"选项将输入文件类型重置为默认状态、这样 tiarmclang 编译器就知道将 c-Source2.c 输入文件作为 C 文件处理。
更多有关汇编文件的其他编译器选项的信息、请参阅第 2.4.3节 :在 TI_Arm_Clang_Compiler_Tools_User_Guide 中的"tiarmclang"中调用 TI-Syntax ARM 汇编器。