- 1、本文档共131页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM嵌入式系统应用程序设计
基于ARM的嵌入式系统应用程序设计 第一节 伪操作、宏指令与伪指令 两种常见的ARM编译环境 GNU编译环境下的伪操作 ARM汇编语言的伪指令 一、两种常见的ARM编译环境 1. ADS/SDT IDE开发环境 ARM公司开发,使用了CodeWarrior公司的编译器; 2. 集成了GNU开发工具的IDE开发环境 它由GNU 汇编器as 交叉编译器gcc 链接器ld等组成。 二、GNU编译环境下的伪操作 常量编译控制伪操作 字符编译控制伪操作 汇编程序代码控制伪操作 宏及条件编译控制伪操作 其他伪操作 1.常量编译控制伪操作 2.字符编译控制伪操作 3.汇编程序代码控制伪操作 4.宏及条件编译控制伪操作 例:宏操作。 .macro HANDLER Label SUB SP,SP,#4 STMFD SP!,{R0} LDR R0,=\ Label LDR R0,[R0] STR R0,[SP,#4] LDMFD SP!,{R0,PC} .endm 例:宏操作。 .macro HANDLER_irq Label STMDB SP!,{R0-R11,IP,LR} LDR R0,=\ Label LDR R0,[R0] MOV LR,PC BX R0 LDMIA SP!,{R0 -R11,IP,LR} SUBS PC,R14,#4 .endm 例:宏退出。 .macro HANDLER Label SUB SP,SP,#4 STMFD SP!,{R0} LDR R0,=\ Label .exitm LDR R0,[R0] STR R0,[SP,#4] LDMFD SP!,{R0} .endm 例:条件编译伪操作。 .ifdef PLLONSTART LDR R0,=PLLCON LDR R1,=((M_DIV12)+(P_DIV4)+S_DIV) STR R1,[R0] .endif 5.其他伪操作 第一节 伪操作、宏指令与伪指令 两种常见的ARM编译环境 GNU编译环境下的伪操作 ARM汇编语言的伪指令 三、ARM汇编语言的伪指令 ARM中伪指令不是真正的ARM或Thumb指令,它们在编译器对源程序进行汇编处理时被替换成相应的ARM或Thumb指令序列。 1. 小范围的地址读取伪指令ADR ADR {cond} register,expr cond:可选的执行条件 register:目标寄存器 expr:基于PC或寄存器的地址表达式 使用说明: 通常被编译器替换成一条ADD或SUB指令来实现该ADR的功能。 2. 中范围的地址读取伪指令ADRL ADRL {cond} register,expr 使用说明: 通常被编译器替换成2条合适的数据处理指令来实现该ADRL的功能。 3. 大范围的地址读取伪指令LDR LDR {cond} register,=[expr│label-expr] expr:32位常量 label-expr:基于PC的地址表达式或外部表达式 使用说明: (1) 读取的数据超过了MOV及MVN指令可操作的范围时,用LDR读数据到寄存器。 (2) 将一个基于PC的地址值或外部的地址值读到寄存器。 LDR用于装载大常数,或从数据池读取常数。 例: LDR R1,=0xFF 汇编后将得到: LDR R1,#0xFF 例: LDR R1,=0 汇编后将得到: LDR R1,[PC ,#Imm12] …… DCD 0第四章 基于ARM的嵌入式系统应用程序设计 第二节 ARM 汇编语言程序设计 ARM汇编中的文件格式 ARM汇编语言语句格式 ARM汇编语言程序格式 ARM汇编语言编程的重点 ARM汇编语言程序实例 一、ARM汇编中的文件格式 常用的源文件可简单分为以下几种: (1) *.S 汇编程序文件 (2) *.C C程序文件 (3) *.H 头文件,把程序中常用到的常量命名、宏定义、数据结构定义等等单独放在一个文件中,一般称为头文件。 二、ARM汇编语言语句格式 ARM汇编语言语句格式如下所示: {symbol}instruction | directive | pseudo-instruction} {;comment} symbol 符号 instruction 指令
文档评论(0)