嵌入式系统开发实验一.docx
- 文档编号:2952228
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:28
- 大小:922.90KB
嵌入式系统开发实验一.docx
《嵌入式系统开发实验一.docx》由会员分享,可在线阅读,更多相关《嵌入式系统开发实验一.docx(28页珍藏版)》请在冰豆网上搜索。
嵌入式系统开发实验一
ADS集成环境下应用程序开发过程
1.实验目的
1.1理解启动代码
功能
硬件初始化,引导C代码
特征
通常用汇编语言编写,程序复位运行入口点,代码量非常小
程序流程
Ⅰ、设置中断、异常入口
Ⅱ、关中断
Ⅲ、硬件寄存器初始化(GPIO配置、总线配置、PLL时钟)
Ⅳ、初始化栈指针
Ⅴ、数据区初始化
Ⅵ、C入口函数调用BLMain
1.2掌握ADS集成环境下应用程序开发过程
Ⅰ、JTAG仿真器的应用
Ⅱ、应用程序功能
Ⅲ、硬件驱动
Ⅳ、应用
Ⅴ、应用程序特征
Ⅵ、通常用C语言或者嵌入式汇编语言编写
Ⅶ、程序较复杂,代码量较大
2.实验内容
2.1安装ADS
Ⅰ、安装ADS
Ⅱ、安装ARMLicense
Ⅲ、编译
2.2用ADS创建工程
Ⅰ、配置ADS
Ⅱ、添加文件、编写程序
Ⅲ、C或汇编程序
2.3编译
Ⅰ、配置编译、汇编和连接参数
Ⅱ、编写连接脚本文件
Ⅲ、编写连接脚本文件
2.4调试
Ⅰ、连接调试器
Ⅱ、下载程序
Ⅲ、运行、调试
3.实验过程
3.1ADS1.2开发环境的创建
3.1.1ADS1.2概述
由于嵌入式控制器收其本身资源的限制,其应用程序不能再其自身上开发。
因此开发其应用程序,还需要一台PC机,我们可以把这台PC称为“宿主机”。
在“宿主机”上开发需要安装有集成开发环境。
ADS就是ARM的集成开发环境。
ADS全称为ARMDevelopmentSuit,是ARM公司推出的新一代ARM集成开发工具。
它主要包括编译器、链接器、调试器、C和C++库等,是ARM公司推出的新一代ARM集成开发工具。
其最新版本是ADS1.2,该版本支持包括Windows和Linux在内的多种操作环境。
ADS1.2的组成如下。
1.编译器
ADS提供多种编译器,以支持ARM和Thumb(在ARM体系中数据和指令采用16位字长)指令的便宜,主要有
armcc:
是ARMC编译器
tcc:
是ThumbC编译器
armcpp:
是ARMC++编译器
tcpp:
是ThumbC++编译器
armasm:
是ARM和Thumb的汇编语言编译器
2.链接器
armlink是ARM链接器。
该命令既可以将编译得到的一个或多个多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件链接成一个目标文件,以供进一步链接。
3.符号调试器
armsd是ARM和Thumb的符号调试器,能进行源码级的程序调试。
用户可以在用C或汇编语言编写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。
4.FromELF
将ELF格式的文件转换为各种格式的输出文件,包括bin(二进制)格式映像文件,Motorola32为S格式映像文件、Intel32位格式映像文件和Verilog十六进制文件。
FromELF命令也能够为输入映像文件产生文本信息,例如代码和数据长度。
5.armar
Armar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。
用户可以把一个库传递给一个链接器以代替几个ELF文件。
6.CodeWarrior
CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarriorIDE为ARM和Thumb处理器开发用C、C++或者ARM汇编语言编写的程序代码。
一般来说我们会使用CodeWarrior集成开发环境来开发我们的C语言程序。
7.调试器
ADS中含有3个调试器,即AXD、Armsd和ADW/ADU。
在ARM体系中,可以选择多种调试方式,如Multi-ICE(Multi-processorIn-CircuitEmulator)、ARMulator或Angel。
(1)Multi-ICE是一个独立的产品,是ARM公司自己的JTAG在线仿真器,而不是由ADS提供的。
(2)ARMulator是一个ARM指令仿真器,集成在ARM的调试器AXD中,提供对ARM处理器的指令集成的仿真,为ARM和Thumb提供精确的模拟。
用户可以再硬件尚未做好的情况下开发程序代码,利用模拟器方式进行调试。
(3)Angel是ARM公司常驻在目标机Flash中的监控程序,只需通过RS232C串口与PC主机相连,就可以对基于ARM架构处理器的目标机进行监控器方式的调试。
8.C和C++库
ADS提供了ANSIC库函数和C++库函数,支持被编译的C和C++代码。
用户可以把C库中的与目标相关的函数作为自己应用程序的一部分。
重新进行代码的实现。
3.1.2ADS1.2的安装
在\YLE2440W用户光盘(V1.6)\实用工具的目录下有一个嵌入式系统开发ADS1·2破解版.zip的文件,解压后运行SETUP.EXE。
根据安装向导一步一步完成ADS集成开发环境的安装。
需要注意的是,如图3-1所示,选择IntallLicense。
图3-1
如图3-2所示,选择LinseedFileToBeInstalled。
单机"Browse",选择CRACK目录下的license.dat文件即可安装许可证。
图3-2
安装并注册成功后,CodeWarrior集成开发环境就可以使用了。
如图3-3所示。
图3-3
3.2ADS集成开发环境的使用
3.2.1建立一个新工程
点击Windows操作系统的【开始】->【程序】->【ARMDeveloperSuitev1.2】->【CodeWarriorforARMDeveloperSuite】启动MetrowerksCodeWarrior,运行后的界面如图3-4所示。
图3-4
选择【File】->【New】,出现如图3-5所示对话框。
图3-5
ADS为用户提供了7个模板,分别是:
Ⅰ、ARMExecutableImage:
用于由ARM指令的代码生成一个ELF格式的可执行映像文件;
Ⅱ、ARMObjectLibrary:
用于由ARM指令的代码生成一个armar格式的目标文件库;
Ⅲ、EmptyProject:
用于创建一个不包含任何库或者源文件的工程;
Ⅳ、MakefileImporterWizard:
用于将VC的nmake或者GNUmake文件转入到CodeWarriorIDE工程文件;
ThumbARMExecutableImage:
用于由ARM指令和Thumb指令的混合代码生成一个可执行的ELF格式的映像文件;
ThumbARMExecutableImage:
用于由Thumb指令创建一个可执行的ELF格式的映像文件;
ThumbObjectLibrary:
用于由Thumb指令的代码生成一个armar格式的目标文件库。
一般情况下均选择“ARMExecutableImage”,然后在“Projectname:
”栏输入工程的名称,在“Location:
”栏指定路径,在本例中工程名为Expe1_LED,存储路径为E:
\ADSProject。
设置好后点击确定。
这时候会出以工程名命名的.mcp对话框,如图3-6所示。
图3-6
有三个标签页,风别为Files,LinkOrder,Targets。
默认的是第一个Files。
在该标签页下,在空白处点击鼠标右键,选中“AddFiles…”可以把用到的源程序添加到工程中。
也可以选择新建一个文件编辑源码。
下面我们分别介绍这两种方法。
首先我们说下添加源程序到工程中。
如图3-6,在Files标签选项卡下单击鼠标右键,选中“AddFiles…”
要使用ADS新建一个文件编辑源码可以有两种方法,第一种是直接点击工具栏上
按钮,在弹出的对话框中输入源码,也可以在菜单栏上点击【文件】->【新建】,然后选择File选项卡,如图3-8所示。
在“FileName”中输入文件的名字,点击确定。
也可以勾上Addtoproject前面的复选按钮,然后在Targets中勾上DebugRel,这样源码就添加到工程中了。
如果不勾上Addtoproject前面的复选按钮,那么编辑好源码后,需要按照前面添加源码的方法把添加源码到工程中去了。
在弹出的对话框中输入程序源码(见附录一),注意:
ARM汇编语言程序源代码中允许有空行,可以在汇编程序中加上一个空白行,来增加程序的可阅读性。
此外需要注意的是:
指令,指示符,伪指令前必须加空格或者Tab制表符,这就是说指令,指示符,伪指令不可以从行的最左边开始书写,即不能顶格书写。
在ARM汇编语言程序中,所有标号必须在一行的最左边的位置开始书写,标号的后面不要加“:
”。
指令,指示符,寄存器名可以用小写字母也可以用大写字母来表示,但不能大小写字母相杂。
当一行写不下时,可以用反斜线‘\’作为这一行最后的符号,然后另起一行接下去写,这样汇编器会将这两行代码看作一行代码。
需要注意的是,如果在被引号括住的字符串中使用反斜线‘\’,则反斜线‘\’不能起到续行的作用。
每行的长度限制一般在128~255个字符串之间。
分号‘;’除非在字符串常量中出现,否则它的出现就表示着注释的开始,此注释直至行尾结束。
可以将注释单独列为一行。
所有注释被汇编器忽略。
编辑好源码并保存添加到工程后还不能编译和链接,还需要进行一些配置。
在如图3-6所示的对话框上面有一些按钮和选项卡,我们把鼠标移到上面的时候会出现一些提示,如图所示
•DebugRelSettings…工程设置,如地址设置、输出文件设置、编译选项等,其中DebugRel为当前的生成目标(targetsystem)。
•SynchronizeModificationDates同步修改日期,检查工程中每个文件的修改日期,若发现有更新(如使用其它编辑器编辑源文件),则在Touch栏标记“√”。
•Make编译连接(快捷键为F7)。
•Debug启动AXD进行调试(快捷键为F5)。
•Run启动AXD进行调试,并直接运行程序。
•ProjectInspector工程检查,查看和配置工程中源文件的信息
选择菜单栏【Edit】->【DebugRelSetting…】出现如图所示的对话框
1.Target设置选项
TargetName文本框显示了当前的目标设置
Linker选项供用户选择要使用的链接器。
在这里默认选择的是ARMLinker,使用该链接器,将使用armlink链接编译器和汇编器生成的工程中的文件相应的目标文件。
在这个设置中海油两个可选项,None表示不适用任何链接器,如果使用None,则工程中的所有文件都不会被编译或汇编器处理。
ARMLibrarian表示将编译或汇编得到的目标文件转换为ARM库文件。
对于本例,使用默认的链接器ARMLinker。
Pre-linker:
目前CodeWarriorIDE不支持该选项
Post-Linker:
选择在链接完成后,还要对输出文件进行的操作。
我们一般希望生成一个可以烧写到Flash中去的二进制代码,所以在这里选择ARMfromELF,表示在链接生成映像文件后,再调用FromELF命令将含有调试信息的ELF格式的映像文件转换成其他格式的文件。
设置好后如图所示
2.LanguageSettings设置选项
我们实验采用的汇编语言编写,因此要使用到汇编器。
选择LanguageSettings下选择ARMAssembler。
如图所示在Target选项卡下ArchitectureorProcessor的下拉菜单中选择ARM920T(CPU的类型)。
在FloatingPoint选择Nofloatingpoint
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 开发 实验