当前位置:文档之家› 第9章 ARM汇编语言程序设计基础

第9章 ARM汇编语言程序设计基础


多任务(可以在单CPU上管理几个工作或任务); 实时控制 (可以控制任务在既定时间内完成); 任务间通信 (可以实现系统中的任务间通信); Internet 连接(通过以太网或串口(Modem)); 嵌入式Web 服务器(包括CGI 脚本); E-mail 公告(通过SMTP)。
9.1.4 μVision IDE调试器
μVision IDE调试器用于调试和测试应用程序,它提供了模拟调试
模式和目标硬件调试模式两种操作模式,可以在Options for Target→Debug对话框内进行选择。 1.模拟调试模式

μVision IDE模拟器的功能强大,能模拟整个MCU的行为,如高效指 令集仿真,中断仿真,片内外围设备仿真,ADC,DAC,EBI, Timers,UART,CAN,I2C,I/O和外部信号仿真等。模拟调试模式 可以在无目标系统硬件情况下,将μVision IDE调试器配置为软件模 拟形式,用来调试和测试所开发的软件。

ARM宏汇编器(armasm)可以完成标准的宏处理。条件汇编可从同一 源文件得到不同的目标文件。符号引用列表文件包含可选的符号交叉引 用信息,以提供源文件的详细信息。 ARM链接器(armlink)产生的详细列表文件非常易于用户理解。它包 含内存配置、输入模块、内存映像、符号表和交叉引用信息。全局代码 列表文件包含由链接器产生的符号反汇编信息。静态堆栈分析帮助链接 器在链接时处理堆栈请求。 ARM库管理器(armar)对库文件进行模块管理,为链接器组合、引用 多个模块提供方便。μVision IDE也可生成库文件。变量和函数引用。可 从库中抽取所需的模块,模块中的代码段如果未在应用中被使用,则它 们不会被包含在最终的输出中。库为分布在初始源代码中的大量函数和 程序段提供了一种载体。
输入希望新建工程的名字(如Test1)即可创建一个新的工程。
图9.1.3 “Create New Project”对话框

输入工程名后Test1,单击保存,即可弹出“Select Device for Target(器件选择)”对话框如图9.1.4所示,在图9.1.4所示对话 框中选择所需处理器,如S3C2410A。
9.1 MDK-ARM开发工具

MDK-ARM出众的价格优势和功能优势,已经成为ARM软件开发工具的 标准,被全球超过10万的嵌入式开发工程师验证和使用,目前,MDKARM在国内ARM开发工具市场已经达到90%的占有率。
MDK主要包含μVision IDE、RVCT、RTL实时库(RealView Real-Time Library)和ULINK USB - JTAG仿真器4个核心组成部分。下面分别对这 4个部分进行简要介绍。
9.1.1 µVision4 IDE

用于设置开发工具配置的对话框; 真正集成高速CPU及片上外设模拟器的源码级调试器;
高级GDI接口,可用于目标硬件的软件调试和ULINK2仿真器的连接;
用于下载应用程序到Flash ROM中的Flash编程器; 完善的开发工具手册、设备数据手册和用户向导。
由S3C2410硬 件选项配置可 知,该器件内 部Flash(ROM) 起始地址为0X0, Flash大小为 0X200000 Byte。 RAM起始地址 为0X30000000, 其大小为 0X4000000 Byte。 图9.1.5 S3C2410的硬件选项配置

3. 创建源文件及文件组 创建一个工程后,可以在该工程下添加用户文件和该器件编译、 运行所必须的源文件。通常,设计人员应采用文件组来组织工程 下的各个文件,将工程中同一模块或者同一类型的源文件放在同 一文件组中。例如,用户可以通过单击工具栏图标或者在Project Window→Files菜单项中选择文件组,在右击弹出的快捷菜单中选 择Add Files to Group...打开一个标准对话框,将已经准备好的文 件添加到工程文件组中。例如在S3C2410工程中添加文件及文件 组如图9.1.6所示。





工程中添加文件组有: Startup、Source、 Common、InFile、 ReadMe。 在Startup文件夹下添 加S3C2410的启动代码 S3C2410A.s 在Source文件夹下添 加工程main.c文件及用 户文件(.c或.h) 在Common文件夹下 添加S3C2410系统库函 数2410lib.c以及系统初 始化文件sys_init.c 在Inifile文件夹下添加 SDRAM.ini文件,该文 件将引导用户将代码下 载至SDRAM中运行,而 不是将程序直接下载至 Flash中。如果用户需要 将程序代码下载至Flash 中运行,则需要添加 Flash.ini文件才行。

JTAG时钟速度达到50MHz。支持运行Cortex-Mx设备的工作频率达到 200MHz。高速Flash下载器,速度达到600KB/s。
USB供电(无须电源)。 ULINKPro提供大量的分析功能,可以通过逻辑 分析仪进行数据分析跟踪,代码覆盖率的统计分析,性能分析器帮助分 析和优化代码。 MDK除了可以使用ULINK和ULINKPro之外,还可以使用很多第三方的硬 件仿真器进行目标硬件调试,例如:CoLinkEx、Signum Systems JTAGJet、JLink、ST-Link、Altera Blaster Cortex Debugger、Stellaris ICDI等。
9.1.2 RealView编译工具集

RealView编译工具集(RVCT)是ARM公司提供的编译工具链,包含 编译器(armcc)、汇编器(armasm)、链接器(armLink)和相关工 具(如库管理器armar、十六制文件产生器FromELF)。RVCT在业界被 认为是面向ARM技术的编译器中能够提供最佳性能的编译工具。RVCT 的开发致力于高性能和高代码密度,以降低产品成本。RealView编译器 与ADS 1.2比较,代码密度比ADS 1.2编译的代码尺寸小10%,代码性 能比ADS 1.2编译的代码性能高20%。RVCT编译器能生成优化的32位 ARM指令集,16位的Thumb指令集以及最新的Thumb-2指令集代码, 完全支持ISO标准C和C++。
图9.1.4 在“Select Device for Target”对话框中选择所需处理器


2. 目标硬件选项配置 MDK下可根据目标硬件的实际情况对工程进行配置。通过单击 目标工具栏图标或者单击菜单项Project→Options for Target,在 弹出的Target页面可指定目标硬件和所选择处理器片内组件的相 关参数。例如,S3C2410的硬件选项配置如图9.1.5所示。


9.1.3 RealView实时库
RealView实时库(RTL,Real-Time Library)是为解决基于ARM MCU的嵌入式系 统中实时及通信问题而设计的紧密耦合库集合,可以非常方便地应用于所有 ARM7、ARM9和Cortex-M3系列的处理器。RealView实时库可以解决嵌入式开 发中的常见的一些问题,例如:
2.目标硬件调试模式

在目标硬件调试模式下,使用硬件仿真调试器(如ULINK2、 ULINKPro等)与目标硬件连接,调试和测试所开发的软件。 ULINK2是ARM公司推出的与MDK-ARM配套使用的仿真器,是ULink 仿真器的升级版本。ULINK2支持标准Windows USB驱动(即插即 用),支持基于 ARM Cortex-M3的串行调试,支持程序运行期间的 存储器读写、终端仿真和串行调试输出,支持10-pin 连接线 (也支持 20-pin 连接线)。ULINK2主要功能包括有:USB通讯接口高速下载用 户代码,存储区域/寄存器查看,快速单步程序运行,多种程序断点, 片内Flash编程等。ULINK2外形如图9.1.1所示。
MDK的RealView编译工具集用于将C/ C+ + 源文件转换为可重定位的目 标模块,并生成μVision IDE调试器可用的调试信息。


ARM C/ C+ + 编译器(armcc)支持同一源文件中的ARM和Thumb混 合模式。采用代码尺寸优化技术,可产生最小尺寸的编译代码。采用性 能优化技术,在不增加时钟频率的情况下最大化处理器的性能。具有 “硬件支持”函数属性,为访问ARM硬件提供方便。支持内嵌汇编,可 用于快速DSP或其他信号处理算法。其函数内联特性,可加快被频繁调 用函数的执行速度。可自动通过CPU寄存器传递参数,甚至一些小的C结 构也可通过CPU寄存器传递和返回,加快了执行速度。程序段多数可重 入,既可从主程序中调用,也可在中断中调用。依从单精度、双精度数 的标准IEEE 754标准,可以用于高精度的浮点计算。


9.1.5 创建工程
1. 选择处理器 MDK安装完成之后可以直接从开始→程序→keil μVision4或者点击
桌面快捷方式图标打开软件如图9.1.2所示。
图9.1.2 打开的μVision4 IDE界面

单击Project-New Project...菜单项,μVision IDE将打开一个 “Create New Project”(创建一个新工程)对话框如图9.1.3所示,

9.1.1 µVision4 IDE
μ Vision IDE是一个集项目管理器、源代码编辑器、调试器等于一体的
集成开发环境,是一个基于Windows操作系统的嵌入式软件开发平台, µVision4 IDE主要特性如下:

功能强大的源代码编辑器;
可根据开发工具配置的设备数据库; 用于创建和维护工程的工程管理器; 集汇编、编译和链接过程于一体的编译工具;
第9章 ARM汇编语言程序设计基础
说明:由于本课程内容较多,各学校开课的课时不同,讲授的内 容也有不同,本课件本着尽可能的多的提供素材,以满足各位老 师不同的需要。 希望各位老师根据自己的讲授需要,对课件进行剪裁编排,以适 合自己的课程要求。
相关主题