《ARM嵌入式C编程标准教程》.ppt
《《ARM嵌入式C编程标准教程》.ppt》由会员分享,可在线阅读,更多相关《《ARM嵌入式C编程标准教程》.ppt(146页珍藏版)》请在三一办公上搜索。
1、第一章习题与练习1,嵌入式控制系统按操作系统分,大致可分哪几类,每类的设计方法有什么不同?2,嵌入式控制不加嵌入式操作系统支持,遇到多线程或局域网问题如何解决?3,ARM体系中的字,半字和字节各占多少位(bit)?4,什么是大端存储(Big Enddian)格式和小端存储(Little Enddian)格式,ARM920T内核的嵌入式系统中,常用哪种存储格式来存储字数据?5,什么是Thumb指令集?它和32位ARM指令集的区别?,第二章ADS 1.2开发环境创建与简介,2.1 ADS1.2开发环境创建2.1.1 ADS1.2概述 ADS是个集成开发环境,主要包括编译器、链接器、调试器、C和C+
2、库等,是ARM公司推出的新一代ARM集成开发工具。最新版本是ADS1.2,该版本支持包括Windows和Linux在内的多种操作环境。ADS1.2的组成如下所述。1.编译器ADS提供多种编译器,以支持ARM和Thumb指令的编译,主要有:armcc:是ARM C编译器。tcc:是Thumb C编译器。armcpp:是ARM C+编译器。tcpp:是Thumb C+编译器。armasm:是ARM和Thumb的汇编语言编译器。,2.链接器armlink是ARM链接器。该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目
3、标文件,以供进一步的链接。3 符号调试器armsd是ARM和Thumb的符号调试器,能进行源码级程序调试。用户可以在用C或汇编语言写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。,4 fromELF将ELF格式的文件转换为各种格式的输出文件,包括BIN格式映像文件、Motorola32位S格式映像文件、Intel32位格式映像文件和Verilog十六进制文件。FromELF命令也能够为输入映像文件产生文本信息,例如代码和数据长度。5 armararmar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链接器以代替几个ELF文
4、件。,6 CodeWarriorCodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarriorIDE为ARM和Thumb处理开发用C、C+或者ARM汇编语言编写的程序代码。7 调试器ADS中含有3个调试器,即AXD、Armsd和ADW/ADU。在ARM体系中,可以选择多种调试方式,如Multi-ICE(Multi-processor In-Circuit Emulator)、ARMulator或Angel。Multi-ICE是一个独立的产品,是ARM公司自己的JTAG在线仿真器,不是由ADS提供的。,ARMulator是一
5、个ARM指令集仿真器,集成在ARM的调试器AXD中,提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情况下开发程序代码,利用模拟器方式调试。Angel是ARM公司常驻在目标机Flash中的监控程序,只需通过RS-232C串口与PC主机相连,就可以对基于ARM架构处理器的目标机进行监控器方式的调试。C和C+库,ADS提供ANSI C库函数和C+库函数,支持被编译的C和C+代码。用户可以把C库中的与目标相关的函数作为自己应用程序中的一部分,重新进行代码的实现。这就为用户带来了极大的方便,针对自己的应用程序的要求,对与目标无关的库函数进行适当的裁剪。在C
6、库中有很多函数是独立于其他函数的,并且与目标硬件没有任何依赖关系。对于这类函数,用户可以很容易地在汇编代码中使用。有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。,2.1.2 ADS1.2的安装,ADS全称为ARM Developer Suite,是ARM公司推出的新的一代ARM集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0,该版本支持包Windows和Linux在内的多种操作系统。安装步骤如下:在ADS1.2的安装盘中运行setup.exe,安装ARM Developer Suite v1.2。出现图2-1对话框和图2
7、-2对话框,同意产权协义,选省缺安装路径(C:Program FilesARMvADS1.2)和典型安装模式(Typiflcation),按Next进入下一步,出现选文件夹、编程语言和当前设定对话框,均按Next,开始安装,如图2-3示。安装结束,安装许可文件(Install License),这一步可按安装向导进行,单击“下一步”按钮,会出现如图2-4和图2-5所示的对话框。,在图2-5对话框中选浏览(Browser)查许可文件,在Program FilesARMADSV1_2license中选license.dat文件并打开,单击“下一步”按钮,如图2-6,即可完成ADS1.2的安装。最后
8、,程序还要注册,注册文件在Program FilesARMADSV1_2文件夹中,单击注册文件,即完成程序注册,如图2-7所示。,2.2 ADS集成开发环境的使用,建立一个新工程运行ADS1.2集成开发环境(CodeWarrior for ARM Developer Suite),点击File|New,在New对话框中,共有7项,ARM Executable Image是ARM的通用模板。选中它即可生成ARM的执行文件,如图2-8所示。,还要在Project name栏中输入项目的名称,以及在Location中输入其存放的位置,按确定保存项目。,2.2.2 开发环境设置在新建的工程中,选择De
9、bug版本,如图2-9,使用Edit|Debug Settings菜单对Debug版本进行参数设置。,在如图2-10中,点击Debug Setting 按钮,弹出2-11图,选中Target Setting,项,在Post-linker栏中选中ARM fromELF项。按OK确定。这是为生成可执行的代码的初始开关。3.在如图2-12中,点击ARM Assembler,在Architecture or Processer,栏中选ARM920T。这是项目选择的CPU类型。4.在如图2-13中,点击ARM C Compliler,在Architecture or Processer栏中选ARM920
10、T。这是要编译的CPU核。,5.在如图2-14中,点击ARM linker,在outpur栏中设定程序的代码段地址,以及数据使用的地址。图中的RO Base栏中填写程序代码存放的起始地址,RW Base栏中填写程序数据存放的起始地址。该地址是属于SDRAM的地址。,在options栏中,如图2-15,Image entry point要填写程序代码的入口地址,其他保持不变,如果是在SDRAM中运行,则可在0 x300000000 x33ffffff中选值,这是64M SDRAM的地址,但是这里用的是起始地址,所以必须把你的程序空间给留出来,并且还要留出足够的程序使用的数据空间,而且还必须是4字
11、节对齐的地址(ARM状态)。通常入口点Image entry point 为0 x30000000,ro_base也为0 x30000000。在Layout栏中,如图2-16,在Place at beginning of image框内,需要填写项目的入口程序的目标文件名,如,整个工程项目的入口程序是2410init.s,那么应在Object/Symbol处填写其目标文件名2410init.o,在Section处填写程序入口的起始段标号。它的作用是通知编译器,整个项目的开始运行,是从该段开始的。,6.在如图2-17中,即在Debug Setting对话框中点击左栏的ARM fromELF项,在
12、Output file name栏中设置输出文件名*.bin,前缀名可以自己取,在Output format 栏中选择Plain binary,这是设置要下载到flash中的二进制文件。图2-17中使用的是test.bin。,7.到此,在ADS1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如S3C2410 ARM.mcp等,然后,在ADS1.2软件安装的目录下新建一个合适的模板目录名,如,S3C2410 ARM Executable Image,再将刚刚设置完的S3c2410 ARM.mcp项目文件存放到该目录下即可。8.新建
13、项目工程后,就可以执行菜单Project|Add Files把和工程所有相关的文件加入,ADS1.2不能自动进行文件分类,用户必须通过Project|Create Group来创建文件夹,然后把加入的文件选中,移入文件夹。或者鼠标放在文件填加区,右键点击,如图2-18所示。,先选Add Files,加入文件,再选Create Group,创建文件夹,然后把文件移入文件夹内。读者可根据自己习惯,更改Edit|Preference窗口内关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。如图2-19。,2.2.3 ADS1.2下仿真、调试,在ADS1.2下进行仿真调试,首先需要一根仿真调
14、试电缆和JTAG仿真器,用调试电缆把 JTAG仿真器和上位机并口相连,JTAG仿真器的驱动程序为两个动态链接库,也要事先安装。打开调试软件AXD Debugger。点击File|load image 加载可执行文件xx.axf,打开超级终端,设置其参数为:波特率为115200,数据位数8,奇偶校验无,停止位无1,数据流控无。点击全速运行,在我们的例子程序中,出现图2-20的界面:,最后介绍调试按钮,调试按钮在程序进入AXD Debugge状态时会出现在主菜单项,主要几个调试按钮如图2-21所示。,图2-21,左起第一个是全速运行,第二个是停止运行,第三个跳入函数内部单步执行,第四个把一个函数做
15、为一个语句单步执行,第五个跳出函数。关于在ADS1.2下进行仿真调试,下面还要祥细介绍。,2.2.4 其他开发环境介绍,IAR(瑞典爱亚软件技术咨询公司)Embedded Workbench for ARM 是IAR Systems 公司为ARM 微处理器开发的一个集成开发环境,下面简称IAR EWARM。比较其他的ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。故在这里做简单介绍。IAR Systems 公司目前推出的最新版本是IAR Embedded Workbench for ARM version 4.42,并提供一个32k 代码限制学习版或30 天时间限
16、制的免费评估版,可以到IAR 公司的网站 下载。IAR EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM 的功能和使用方法。,IAR EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM 的功能和使用方法。IAR Embedded Workbench for ARM version 4.42 是一个针对ARM 处理器的集成开发环境,包含项目管
17、理器、编辑器、编译连接工具和支持RTOS(嵌入式实时控制系统)的调试工具,在该环境下可以使用C/C+和汇编语言方便地开发嵌入式应用程序。IAR EWARM 的主要模块如下:项目管理器功能强大的编辑器高度优化的IAR ARM C/C+Compiler IAR ARM Assembler1 个通用的IAR XLINK LinkerIAR XAR 和XLIB 建库程序和IAR DLIB C/C+运行库 IAR C-SPY 调试器(先进的高级语言调试器)命令行实用程序,以下介绍一下EWARM 4.42 版本及其相关配套硬件的一些特点:1 IAR EWAM 软件的特点 EWARM 4.42 版基本特点
18、完善的ARM 内核支持最新支持到ARM11 及Cortex M3 内核支持的其他ARM 内核ARM7(ARM7TDMI,ARM7TDMI-S,ARM720T)ARM9(ARM9TDMI,ARM920T,ARM922T,ARM940T,ARM9E,ARM9E-S,ARM926EJ-S,ARM946E-S,ARM966E-S,ARM968E-S)ARM10(ARM10E,ARM1020E,ARM1022E,ARM1026EJ-S)XScale(XScale,XScale-IR7),更加客户化地提供芯片级的支持完备的各厂商ARM 处理器的C/C+和汇编语言外设寄存器定义文件支持的芯片厂商有Analo
19、g Devices、ARM、Atmel、Cirrus Logic、Freescale、Intel、NetSilicon、OKI、Philips、Samsung、Sharp、ST 和TI 等支持Analog Devices、Atmel、Freescale、OKI、Philips、ST 和TI 等厂商的ARM 处理器的Flash Loader 程序 软件集成了400 余个代码例程,对应于各种不同的芯片,位于.armsrcexamples 目录下进一步改进了编译器速度优化,重写了的浮点运算库对更多嵌入式操作系统的支持新增支持OSEK 类操作系统的OSEK Run-Time Interface(ORT
20、I),新增支持OSE Epsilon RTOS 的Kernel Awareness 调试新增支持embOS、SMX、NORTi 等的支持调试器的增强功能对堆栈运行的监测功能配合IAR J-Link 仿真器的新增功能J-Link TCP/IP 服务器调试器和IAR J-Link 仿真器协同配合,实现对ARM 处理器的多核调试对IAR J-Trace 仿真器提供全面的支持在C-SPY 模拟器中可执行Trace 的模拟支持同一芯片上多颗Flash 的Flash Loader 程序,以及通用的Flash Loader 开发指南,EWARM 软件在芯片级支持方面的特色完备的各厂商ARM 处理器的C/C+
21、和汇编语言外设寄存器定义文件大量适合于嵌入式代码的编程语言扩展特性,包括存储器关键字,函数,中断函数,存储器映射I/O 等针对评估板的例程,包含IAR、Analog Devices、Aiji System、ARM、Atmel、Cirrus Logic、Freescale、Keil、OKI、Olimex、Pasat、Philips、Phytec、ST 和TI 等厂家的开发支持ARM 或Thumb 模式下大至4G 字节的应用程序每个函数都能选择在ARM 或Thumb 模式下编译可生成VFP 向量浮点协处理器代码支持Analog Devices、Atmel、Freescale、OKI、Philips
22、、ST 和TI 等厂商的ARM 处器的Flash Loader 程序 支持ARM Angel Debug monitor,EWARM 编译器的软件特色先进的通用编译器优化和针对特定处理器的速度优化及存储器优化功能轻量运行库,用户可以根据需要自行配置,提供全部源代码灵活的存储器控制,允许详细地为代码和数据分配地址去除不需要的函数和变量C/C+变量和函数连接时全局类型检查可选的校验和生成功能,用于运行时映象校验自动将代码和数据放置到非连续的存储器区域强大的可重定位宏汇编器,支持丰富的命令集和操作符,EWARM 调试器的软件特色.完全集成的源代码和反汇编程序调试器.非常细化的执行控制(函数调用级步进
23、).复杂的代码和数据断点.丰富的数据监视功能.Locals,Watch,Auto,Live Watch 和Quick Watch 等变量查看窗口.寄存器和存储器查看窗口.支持STL 容器,.C/C+调用栈窗口,同时还可以显示将要进入的函数.双击调用链上的任何函数将更新编辑器、局部变量、寄存器、变量查看和反汇编窗口,以显示在该函数调用时的状态.跟踪功能,可以检查执行的历史记录。在跟踪窗口中移动时将更新编辑器和反汇编窗口以显示合适的位置。.控制台I/O 仿真.中断和I/O 模拟仿真.类似C 语言的宏系统,可扩充调试器的功能.由主机执行的应用程序系统调用仿真.代码覆盖率和执行时间分析工具.通用的Fl
24、ash Loader 程序及开发指南.同时支持多颗Flash 的Flash Loader 程序.支持OSEK Run-Time Interface(ORTI).提供为调试器扩充第三方功能的软件开发包,如RTOS 调试扩充和仿真器驱动扩充.命令行调试工具,IAR C-SPY 支持的调试方法.IAR J-Link JTAG 接口(支持所有ARM7 和ARM9 核,通过USB 或TCP/IP 连接).RDI 接口类的第三方仿真器(Abatron BDI1000&BDI2000,EPI Majic,Ashling Opella,AijiOpenICE,Signum JTAGjet,ARM Multi-
25、ICE 等).Macraigor Wiggler,Raven,mpDemon 和USBdemon 等调试接口.EPI Jeeni 仿真器支持.IAR 的 ROM-Monitor.ARM 公司的Angel ROM-Monitor(用于Atmel 和Cirrus Logic 的评估板)EWARM 图形化的集成开发环境的界面特色.分层次的工程组织.同一工作空间中允许存放多个工程.可停靠的窗口和多视图.源代码浏览.创建和维护库的工具.可以和源代码控制系统相集成,.文本编辑器.支持多字节字符(汉字).上下文相关的帮助系统.根据句法着色.无限制的undo/redo.搜寻、替换和增量搜寻.Go to.书签.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM嵌入式C编程标准教程 ARM 嵌入式 编程 标准 教程
链接地址:https://www.31ppt.com/p-5896027.html