《ARM实验指导书.docx》由会员分享,可在线阅读,更多相关《ARM实验指导书.docx(36页珍藏版)》请在优知文库上搜索。
1、第一章ADS集成开发环境1ADS集成开发环境简介1.1 RRM编译的选择ADS目前,针对AR!处理器核的C语言编绎器有很多,如SDT、ADS,IAR,TASKING和GCC等。据了解,目前在国内最流行的是SDTxADS和GCC.SDT和ADS均为ARM公司自己开发,MJS为SDT的升级版,以后ARM公司不再支持SDT,所以不会选择SDT.GCC虽然支持广泛.很多开发套件使用它作为编译器,与ADS比较其编译效率较低.这对充分发挥芯片性能很不得,所以最终使用A1.)S编译程序和调试.本实验设备采用ADS编译器,其全称为ARNDeve1.operSuite.ADS由命令行开发工具、ARM时实库、GU
2、I开发环境(CodeWarrior和AXD)、实用程序和支持软件组成,有了这线部件,用户就Ur以为ARY系列的R1.SC处理器编写和调试自己的开发应用程序了.ADS支持汇编谱言和标准Ci普吉和标准C语音.1.2 ADS库路径AOS库路径是在AIJS软件安装路径的Iib目录下的两个子目录.假设.ADS软件安装在e:armudsv1.2目录.则在e:armadsv1.21.ib目录下的两个子目录ann1.ib和cpp1.ib是ARM的本所在路径.arm1.ib这个子目录包含了ARMC库,浮点代数运翼库,数学库存等各类底函数。与这些用和就的头文件在e:armadsv1._2inc1.ude目录中。C
3、pPIib这个子目录包含了RogueWaveCH库和O+支持函数库.RogueWaveCM库和C“支持的数库合在一起被称为ARMC+一阵.与这些际相应的头文件安装在e:annadsv1.2inc1.ude目录下.读者需特别注意的几点:(1) ARMC库函数是以二进制格式提供的:(2) RM库函数禁止修改.如果读者想对库函数创立新的实现的话,可以把这个新的函数编译成目标文件,然后在6接的时候把它包含进来.这样在魅接的时候,使用的是新的函数实现而不是原来的底函数。(3)通常情况卜I为了创立依赖于目标的应用程序,在ANS1.C库中只有很少的几个陶数需要实现重建。(4)ROgUeRaveStandar
4、dC+函数库的源代码不是免费发布的,可以从ROgUeWaVeSOftWareInc.或ARM公司通过支付许可证费用来获得源文件.2ADS集成开发环境的使用2.1迸入ADS集成开发环境点击座面ADS图标,如下列图所示.进入ADS集成开发坏境.(1)在COdeHarrior中新建一个工程有两种方法:方法一;在工具栏中单击“New”按钮,如下列图:New方法二r在“Fi1.e”菜单中选择-NCW”,如下列图:F1.eEdtewSearchErojcctQcbjgHewCVksMt柚Open.CtfkO一t-(2)执行上步骤后.则会舛出“新建工程对话框”,如下列图:在这个对话框中为用户提供了7种可选择
5、的工程类型.ARMExecutab1.Image;用于由ARY指令的代码生成一个E1.F格式的可执行映像文件;AKMObject1.ibrary:用于由ARM指令的代码生成一个aEiir格式的目标文件库:EBPIyPr1.ject:用于创立一个不包含任何库或源文件的工程:Make1.izard:用于将ViSUiJ1.C的nmnke或GN1.make文件转入到CodeWarriOrIDE工程文件:ThuMbARMExecutab1.eImage:用于由ARM指令和Thumb指令的混和代码生成个可执行的E1.F格式的帙像文件;ThuabExecutab1.einage:用于由ThUmb指令创立一个
6、可执行的E1.F格式的映像文件:Thu三bObject1.ibrary:用于由ThUn1.b指令的代码生成一个armar格式的目标文件际.在这里选杆ARMExecutab1.eae.在-Projectname:中输入工程文件名,本例为I1.edCirCIe,点击-1.ocation:-文本框的“Set”按钮,浏览选择想要将该工程保存的路径,将宽大些设置好后,点击“确定”,即可建立一个新的名为IedCirC1.e的工程.此时会出现IedCirC1.e.mcp的窗口,如下列图如示,其中有三个标签页,分别为.2.3 新建原文件(D在“Fi1.e”菜单中选择“New”.在翻开的对话框中.选择标签页Fi
7、1.e,在中输入要创立的文件名,若是汇编用言则文件名格式为:*.S,若是C语方则文件名格式为:*.c,然后再点击“确定”关闭窗1.在这里还有一个细节,带望注意.在建立好一个工程时,默认的target是DCbUgReI,还有另外两个可用的target,分别为Rea1.se和Debug,这三个target的含义分别为:DebugRek使用该目标,在生成目标的时候,会为年一个源文件生成调试信息;Debug:使用该目标为每一个源文件生成最完全的调试信息;Re1.ease:使用该目标不会生成任何调试信息.在本例中,使用默认的DebUgReI目标.2.4 向工程潦加文件(D在IEeirCIe.mcp窗口的
8、fi1.e标器页内右击R1.标右键,选中AddFi1.es-*可以把要用到的源程序添加到工程中。(2)选中了要添加的文件后,会出现如下所示的一个对话框,询问用户把文件添加到何类目标中,在这里,我们选择ebugRe1.目标再按OK即可把刚刚创立的两个文件添加到工程中来.(3)对于本实验,在建立好每一个工程后都需将stardcode文件夹里的所有文件添加至工程中.且新建的每个文件里都需包含config.h头文件才行。原因不多说明,有兴趣可自行阅读文件代码,2.5 源译和鞋接工程在进行编译和链接前,首先讲述一下如何迸行生成目标的配部,点击Edi1.菜单.选择“DcbugRo1.Se1.IingS,则
9、出现如下列图如示的对话幅这个对话框中的设置很多,在这里只介绍一些呆为常用的设置选项,读者若对其他未涉及到的选项感兴趣,可以查看相应的帮助文件.(Dtarget设比选项A:TargetNa文本框显示了当前的目标设P1.B: 1.inker选项供用户选择要使用的健接器.在这里欲认选择的是ARM1.inker.使用该琏接器,符使用arm1.ink魅接编译器和汇编器生成的工程中的文件相应的目标文件.C: Pre-1.inker:目前CodeWarriOrIDE不支持该透项。D: Post-1.inker:选择在链接完成后,还要对输出文件进行的操作,因为在本例中,希室生成一个可以烧写到FgSh中去的:进
10、制代码,所在在这里选择ARMfrorf1.F.表示在锥接生成映像文件后,再调用FromE1.E命令将含有网试信恩的E1.F格式的映像文件转换成其化格式的文件.(2)1.inker设置收标选中ARM1.inker,出现如下列图所示对话框.这里洋细介绍该对话框的主要的标签页选项,因为这些选项对最终生成的文件有着直接的影响.A:在标签页OuCpu1.中,1.inkWP。中提供了三种链接方式。Partia1.方式表示链接器只进行局部链接,经过局部徒接牛成的目标文件,可以作为以后进一步琏接时的输入文件.SimPIC方式是欣认的链接方式,也是最为痂繁使用的能接方式,它链接生成简尔的E1.F格式的目标文件,
11、使用的是鞋接器选J中指定的地址映射方式.Scattered方式使得就接器要根据scatter格式文件中指定的地址映射,生成复杂的E1.F格式的映像文件,这个选项殷情况卜I使用不太多.因为我们所举的例子比较简单,选择SuP1.。方式就可以了.在选择SiBPIe方式后.就会出现SiIIPIeimage.B: ROHase:这个文本框设置包含有RO段的加我域为同一个地址.默认是0*8000.这里用户要盘据自己硬件的实际SI)RAY的地址空间来整改这个地址,保证在这里填写的地址,是程序运行时,SDRAY地址空间所能前盅的培址,针对本实骗可以设置地址做为:0x00000000C: RWBase:这个文本
12、框设置/包含RW和ZI除出段的运行城地址.如果选中sp1.it选项,链接器生成的映像文件将包含两个加统域和两个运行域,此时,在RUBase中所蝌入的地址为包含K3和ZI输出段的域设置了加我域和运行域地址,本实验可设置为:0x40000030。D标签页OP1.ionS中,将I1.naKe(Jn1.ryPoint文本框设置为:0x00000000。如卜列图所示:E:在标签贞1.ayoUt中,符ObjeCt/Syebo1.设为:startup,oF:将SeCIiOn设为:vectors取标选中ARMfromE1.F.则会出现如下列图所示的对话框:在OUtPUtformat中选择InteI32bitH
13、ex:;:在OUtPUt文本域输入期里生成的怆出文件存放的路径,或通过点击ChQOSe按钮从文件对话框中选择输出文件.如果在这个文本域不输入路径名,则生成的文件存放在工程所在的目录下。3)点击CodcIairiIDE的菜单Projec1.卜的三akc菜单,或按键就可以对工程进行编译和链接了。第二章基础实验-数码管扫描程序1实殴目的1.1 理解ARM数码者显示的殷原理,掌楙使用数科显示的股方法.1.2 学会十六进制字型的显示方法1.3 学会同时实际上并不是同时,只是视觉)让多个数码管显示,显示任您字符1.4 了解74HC595是如何工作的2实跄内容2.1 理解数码管显示的字符代码和数字ZIuJ的
14、关系.2.2 理解数码管是如何片选及显示2.3 依次让多个数码管出示仔意字符2.4 学会使用71IIC5953实验预习要求3.1 查找数码管网描相关资料.r解衙环扫描的根本原理,3.2 VA1.ARM中对端口的操作步骡,U习数码管模块的是实现方法。3.3 找74HC595的芯片资料.了解该芯片的工作原理和在数码管扫描模块中的作用.4实改原理5端口存放器介绍P1.NSE1.是用于选择帕口功能选择,IOPIN用于读引脚当前状态,IOSET控制存放器引脚输出高电平,IOC1.R控制存放器引脚输出低电平,IOI)IR控制诲个IO口的方向.例如:100IRI=D1.E1.RCK;D1.ED_RCK为宏,
15、是一个32位无符号整鞭5.1 595原理数码管扫描涉及到4个弓I脚,分别是PO.17-P0.20.P0.17.PO.18.PO.20分别作为74HC595的SCK.SI.RCK.(结合74HC595手册埋解)通过S1.11接收每位数据:SCK的高电平发空移位信号,每位数据都移动到下一个移位存放涔中;遇到同步发送脓冲RCK时,将多位数据次发送到存放器中,形成一个相当于8位或多位的并行数据:从而通过595给数码管给予片选和数据5.2 数码管限理数码管内部为8个发光二极管.并排列为8字形,同时加一个位表示小数点,通过这8个发光二极管的合理组合,可以肉成不同的数字字型和简总的字母字型,同时数码管还有一个位选信号.即8个数码管的公共端,用于电平选中。原理图中的A、H的O,I组合就可以祖成不同的字符。初始化端口将需要显示的对象编码存放到缓冲区数据端接缓冲区。片选选中第。位即可显示第途延时I1.Z同岁123456-延时图1数码管总体流程图8.1 如何使你写的程序高效8.2 如何使你写的程序可广泛移到其他程序中8.3 是否有其他的方法让数ii管显示