第9章arm程序设计

第9章arm程序设计

ID:5505958

大小:2.79 MB

页数:69页

时间:2017-11-12

第9章arm程序设计_第1页
第9章arm程序设计_第2页
第9章arm程序设计_第3页
第9章arm程序设计_第4页
第9章arm程序设计_第5页
资源描述:

《第9章arm程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章ARM程序设计ARM常用开发环境主要分为基于Windows平台的和基于Linux平台的两大类基于Windows平台ADS,目前已经基本被替代RealViewDeveloperSuite(RVDS),目前主流工具EmbeddedWorkbenchforARM(EWARM),IARSystem公司,入门简单,授权费用高RealViewMicrocontrollerDevelopmentKit(MDK),源自德国Keil公司,多用于低端ARM处理器开发基于Linux平台ARM-Linux-GCC,GNU开发的编译器

2、集,依赖于不同的目标机的平台,使用繁琐但不需要授权费用RVDS开发环境简介替代ADS的新一代开发环境集程序的编辑、编译及调试于一体支持软件仿真和硬件调试持汇编、C和C++等多种源代码的编译目前广泛的应用于ARM处理器开发包括CodeWarriorIDE集成开发环境和RVDebugger调试器两部分CodeWarriorIDE的主窗口RVD调试器主窗口汇编语言程序设计特点汇编语言依赖于机器硬件,不同CPU提供的汇编指令可能有很大的不同,因此汇编源程序几乎不具有移植性;但汇编语言程序速度快、效率高,更能发挥机器硬件的长

3、处;2.汇编程序需要用户将汇编过程中需要的一些信息明确地写入源程序,如:内存逻辑段的划分情况、数据在内存中的存放情况,等等。这些信息的说明由汇编程序指定相应的伪指令来完成,并不由CPU定义;3.伪指令是在汇编过程中执行的,因而不会在机器语言程序中产生目标代码;只有CPU定义的(助记符)指令才会生成目标代码,并在程序运行过程中执行;汇编语言源程序机器语言程序(目标代码)汇编(汇编程序)高级语言源程序编译或解释(编译程序)6/524.源程序经汇编得到的目标代码实际上也是不能运行的,还要经过系统的链接定位后才能生成真正的

4、可执行文件(.EXE文件)。即一般用汇编语言开发应用软件时应依次完成以下几个步骤:(1)编辑得到源程序(2)汇编得到目标代码(解决语法错误)(3)链接得到可执行文件(解决定位错误)(4)调试得到功能正确的应用软件(解决逻辑错误)(以上第2~4步任何一步有错都应返回到第1步重来)7/52符号定义伪指令符号类型指示符功能符号定义伪指令GBLA声明和初始化一个全局算术变量,初始值为0GBLL声明和初始化一个全局逻辑变量,初始值为{FALSE}GBLS声明和初始化一个全局字符串变量,初始值为空LCLA声明和初始化一个局部算

5、术变量,初始值为0。局部算术变量只能在宏中进行声明。LCLL声明和初始化一个局部逻辑变量,初始值为{FALSE}。局部逻辑变量只能在宏中进行声明。LCLS声明和初始化一个局部字符串变量,初始值为空。局部字符串变量只能在宏中进行声明。SETA给一个局部或全局算术变量置值SETL给一个局部或全局逻辑变量置值SETS给一个局部或全局字符串变量置值RLIST给寄存器集命名CN给一个协处理器寄存器命名CP给一个特定协处理器命名,协处理器号为0~15DN给一个双精度VFP寄存器命名SN给一个单精度VFP寄存器命名FN给一个特定

6、的浮点寄存器命名yyyy-M-8/52GBLATest1;声明全局数字变量Test1,赋值为0xaaTest1SETA0xaaGBLLTest2;声明全局逻辑变量Test2,赋值为“真”Test2SETL{TRUE}GBLSTest3;声明全局字符串变量为Test3,赋值为"Testing“Test3SETS"Testing“LCLATest4;声明局部数字变量Test4,赋值为0xaaTest3SETA0xaaLCLLTest5;声明局部逻辑变量Test5,赋值为“真”Test4SETL{TRUE}LCLSTes

7、t6;声明局部字符串变量Test6,赋值为"Testing“Test6SETS"Testing“RegListRLIST{R0-R5,R8,R10};声明寄存器列表RegList,LDM/STM指令可通过该名称访问寄存器列表yyyy-M-9/52数据定义伪指令数据定义伪指令LTORG指定一个文字池用以保存数据^或MAP指定一个内存表的首址#或FIELD指定内存表中的各数据域的长度(一般在MAP之后)%或SPACE指定一块存储器的长度并将其中单元初始化为0=或DCB分配一片连续的字节单元并初始化分配一片连续的字节单元

8、并用于存放代码&或DCD分配一片连续的字单元并初始化(字边界对齐)DCDU分配一片连续的字单元并初始化(任意边界)DCDO分配一片连续的字单元,并初始化为到静态基址寄存器R9的偏移量(字边界对齐)DCFD分配一片连续的字单元给双精度浮点数并初始化(字边界对齐)分配一片连续的字单元给单精度浮点数并初始化(字边界对齐)DCFDU分配一片连续的字单元给双精度浮点数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。