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.

[参考译文] CCS/TM4C123GH6PM:汇编语言编程

Guru**** 2999690 points

Other Parts Discussed in Thread: EK-TM4C123GXL

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/927565/ccs-tm4c123gh6pm-assembly-language-programming

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件:EK-TM4C123GXL、

工具/软件:Code Composer Studio

我不熟悉 ARM Cortex M4处理器内核和 Code Composer Studio (CCS)。 我正在阅读一本书(ARM 微处理器系统:Cortex-M 架构、编程和接口、M. Tahir 著的1e)、了解汇编语言、并拥有 Tiva C 系列 LaunchPad 评估套件(EK-TM4C123GXL)。  

我已经使用 SPMU-352文档(用于 Code Composer Studio 的 Tiva C 系列开发和评估套件)成功安装和设置了 CCS、此文档可从 TI 在线资源获得。 当我尝试用汇编语言编写代码时、会出现问题。

我正在尝试遵循书中的示例4.1:(第一个汇编程序。)。 下面给出了求和前五个偶数的完整汇编程序、可以对其进行编译和执行。 此‘s程序不需要‘tartup.s’文件。 本书示例的代码如下所示。

拇指 ;标记 Thumb 操作模式
STACKSIZE EQU 0x00000100;定义256字节

的堆栈大小区域堆栈、NOINIT、READWRITE、ALIGIN=3
MyStackMem 空间 STACKSIZE

区域复位、只读
导出__Vectors
__Vectors
DCD MyStackMem + STACKSIZE;空堆栈指针 
DCD Reset_Handler ;复位矢量 区域 MYCODE,代码,只读 入口 导出 Reset_Handler Reset_Handler MOV R0,#0 ;总和 MOV R1的初始值,#2 ;第一个偶数 MOV R2,#5 ;循环迭代的计数 器 lbegin CBZ R2,lloin ;如果计数器为零,则终止循环
添加 R0、R1 ;生成 总和 ADD R1,#2 ;生成下一个偶数 子 R2,#1 ;减量 B lbegin 放贷 结束

我在 CCS 中创建了一个新的源文件(.asm)、并复制粘贴上述代码。 在构建源文件时、我会获得以下信息。 在 Build Console 中:


****为项目 Example_4_1****构建配置调试

"C:\\ti\\ccs1010\\ccs\\utils\\bin\\gmake"-k -j 4 example_4_1_TIF.obj -O

编译文件:"../example_4_1_TIF.asm"
调用:ARM 编译器
"c:/ti/ccs1010/ccs/tools/compiler/ti-cgt-arm_20.2.1.LTS/bin/armcl -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/Users/Shujat ini/workspace_v10/example_4_1"--include_path="C:/ti/ccs1010/ccs/tools/compiler/ti-cgt-arm_20.2.1.LTS/include --define=ccs"--defendence=part_tms_example_c4_example_texample_cabi=g-example_premoti_example_c4_example_-cif_abi_example-c=g_example_-cus_example_-cus_example_premote_page-cif_example_p_ag-cif_tr-cep-cif_example_ag-g_ag-ecrand_di_example_ag-ecurb.tr
12汇编错误、无汇编警告

>>编译失败
subdir_rules.mk:9:目标'example_4_1_TIF.obj'的配方失败
"../example_4_1_TIF.asm"、错误! 第1行:指定了[E0002]非法助记符
Thumb;标记 Thumb 操作模式

"../example_4_1_TIF.asm"、错误! 第2行:指定了[E0002]非法助记符
STACKSIZE EQU 0x00000100;定义256字节的堆栈大小

"../example_4_1_TIF.asm"、错误! 第4行:指定了[E0002]非法助记符
区域堆栈、NOINIT、READWRITE、ALIGN=3

"../example_4_1_TIF.asm"、错误! 第5行:指定了[E0002]非法助记符
MyStackMem 空间 STACKSIZE

"../example_4_1_TIF.asm"、错误! 第7行:指定了[E0002]非法助记符
区域重置、只读

"../example_4_1_TIF.asm"、错误! 第8行:指定了[E0002]非法助记符
导出__Vectors

"../example_4_1_TIF.asm"、错误! 第10行:指定了[E0002]非法助记符
DCD MyStackMem + STACKSIZE;空堆栈的堆栈指针

"../example_4_1_TIF.asm"、错误! 第11行:指定了[E0002]非法助记符
DCD Reset_Handler;复位矢量

"../example_4_1_TIF.asm"、错误! 第12行:指定了[E0002]非法助记符
区域 MYCODE、代码、只读

"../example_4_1_TIF.asm"、错误! 第13行:指定了[E0002]非法助记符
条目

"../example_4_1_TIF.asm"、错误! 第14行:指定了[E0002]非法助记符
导出 Reset_Handler

"../example_4_1_TIF.asm"、错误! 第27行:指定了[E0002]非法助记符
结束


源代码中的错误-汇编器已中止
gmake:***[example_4_1_TIF.obj]错误1.

****构建完成****

如您所见、我多次收到"[E0002]非法助记符指定"错误。 还有一些汇编语言助记符(DCD、区域、入口、出口、空间、 拇指等)未突出显示(不同的字体、颜色、样式)为 MOV、ADD、SUB、 b 确实如此。  

请帮助我解决上述问题。 谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    关于:

    [引用 user="Shujat Ali">此外、还包括一些汇编语言助记符(DCD、区域、入口、出口、空间、 拇指等)未突出显示(不同的字体、颜色、样式)为 MOV、ADD、SUB、 b 确实如此。  [/报价]

    是的、这是一个已知问题。 以前曾有过这方面的请求。 这是一个需要解决的问题、但我还不能提供具体的时间表。

    [引用 user="Shujat Ali"]您可以看到,我多次遇到“[E0002]非法助记符指定”错误。

    我将提请编译器专家注意此主题。

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不熟悉这本书...

    [引用 USER="Shujat Ali"] ARM 微处理器系统:Cortex-M 架构、编程和接口,1e by M. Tahir[/quot]

    但我可以说、它不是使用 CCS 附带的 TI ARM 工具链开发的。  它是使用其他一些工具链开发的。  我假设书中会说明使用了哪个工具链。  最简单的方法是获取该工具链并使用它进行构建。   

    我假设您可以考虑更改代码以与 TI ARM 工具链配合使用。  但这不是我推荐给初学者的。   

    如果您认为最好继续使用 TI ARM 工具链、请考虑从 TivaWare 开始。  除其他外、它是为与 TI ARM 工具链配合使用而开发的。

    请告诉我这些建议是否能解决问题。

    谢谢、此致、

    乔治