arm hello world实验.docx
《arm hello world实验.docx》由会员分享,可在线阅读,更多相关《arm hello world实验.docx(18页珍藏版)》请在冰豆网上搜索。
armhelloworld实验
实验一HelloWorld
1、实验目标:
1.了解实验箱的使用;
2.了解ADS的使用(建立新的工程并正确设置和编译);
3.调试HelloWorld程序,体会整个过程;
4.了解三个警告,如何消除?
(选做);
二、任务:
1、给出建立新工程的步骤;
1、首先了解ADS软件使用
ADS非常易于初学者上手,该软件的操作尤为简单,对于一般ARM程序的开发,可以分为以下几个过程:
编写ARM代码->译、链接产生可执行二进制代码->利用实验箱上ARM系统自带的Bootloader,通过串口大师把可执行代码通过计算机串口下载到硬件板->实验系统在接受完下载的代码后即自动执行->查看实验结果。
下面详细的讲述如何利用该软件开发适合本实验系统的ARM程序。
1.首先在开始菜单中,点击“程序->ARMDeveloperSuiteV1.2->CodeWarriorforARMDeveloperSuite”,即可弹出如图2.1.13所示界面。
图2.1.13ADS软件界面
2.点击“File->New”,会弹出如图2.1.14所示的建立新工程界面。
3.在Project中选择“ARMExecutableImage”选择好路径,并在工程名中输入HelloWorld,后点击【确定】,即出现如图2.1.15所示的空的工程界面。
4.此时的工程是一个空的,必须加入相应的代码才行。
首先将实验1文件夹下面的inc文件夹和src文件夹拷贝到刚刚建立的HelloWorld文件夹下面;然后在ADS软件中的HelloWorld工程窗口的空白处点击鼠标右键,选择“AddFiles…”,选择刚刚拷贝的src文件夹下面的所有文件,如图2.1.16所示。
5.点击【打开】后,会出现如图2.1.17所示的编译类型对话框。
图2.1.14工程建立界面
图2.1.15新建的工程界面
图2.1.16添加文件到当前工程
图2.1.17选择工程目标编译类型
7.全部选中后,点击【OK】即可将刚刚所选择的文件加入到当前工程当中,如图2.1.18所示。
到此为止,一个基本的工程就建立起来了。
下面只需对该工程作简单的设置后,就可以编译了。
图2.1.18建立好的工程界面
8.工程虽然建立好了,但是要让软件编译成适合我们实验系统的可执行二进制码,还必须对工程进行设置,这些设置包括:
选择ARM核类型、选择连接链接方式以及设置代码在SDRAM中的存放位置和代码起始执行地址等。
首先点击HelloWorld工程窗口“设置”按钮,如图2.1.19所示,会弹出如图2.1.20所示的设置对话框。
图2.1.19设置工程第一步
图2.1.20设置工程对话框
9.点击Target\TargetSettings,设置Post-linker为ARMFromELF,如图2.1.21所示。
图2.1.21设置Post-linker
10.点击LanguageSettings\ARMAssembler,在Target下面的ArchitectureorProcessor中选择ARM7TDMI,同样对于ARMCCompiler也选择ARM7TDMI,如图2.1.22所示。
图2.1.22设置目标板ARM核类型
11.点击Linker\ARMLinker,将Output下面的SimapleImage中的ROBase设置为0x0C000000,RWBase设置为0x0C080000,如图2.1.23所示。
图2.1.23设置代码在目标板上的位置
注意:
如果要使用系统板上自带的Bootloader进行代码调试,必须将ROBase设置为0x0C000000,因为系统的Bootloader会自动的将代码拷贝到SDRAM中的0x0C000000处。
RWBase只需位于0x0C000000~0x0C800000的SDRAM中即可,但是为了确保软件运行正常,最好还是为其后面留有足够的余地。
12.将Option下面的Imageentrypoint,即程序执行的入口地址,修改为0x0C000000(此处也必须为0x0C000000,原因同上),如图2.1.24所示。
图2.1.24设置代码执行的起始地址
13.将Layout下面的Placeatbeginningofimage中的Object/Symbol中填写sysinit.o,在Section中填写init,如图2.1.25所示。
14.全部设置好后,点击【OK】即可。
15.按F7键,或者点击Project->Make,或者点击工程窗口工具栏上的第三个按钮,即可对刚刚建立的工程进行编译。
工程编译结果如图2.1.26所示。
到此为止,整个软件的基本开发已经结束,下面就可以将编译后的二进制代码下载到实验箱上去运行了。
以后所有的ARM工程的基本设置都必须按照前面所讲的那样去做,除非用户自己使用仿真器开发,则可以不受此限制。
当然对于高级用户,在确保系统正常运行的情况下,完全可以根据自己的需求来设置。
图2.1.25设置目标起始处放置的代码
图2.1.26工程编译结果
具体实验
本实验是个入门实验,主要是为了让用户了解如何利用本实验系统配合ADS软件以及串口大师软件来完成代码的开发、下载和验证。
本实验箱在出厂时已经在ARM板上烧录了一个简单的Bootloader,负责通过串口与计算机通信来拷贝用户可执行代码到SDRAM,并在代码拷贝结束后,自动跳转到代码所在处开始执行,方便用户在没有仿真器的情况下调试。
利用Bootloader开发的基本流程可以归纳为以下几个步骤:
1.先在ADS环境中编译代码(具体的设置见第二章软件使用)
2.编写的代码进行编译,如有错误及时更正,直到编译通过
3.利用ADS生成ARM7的可执行二进制代码
4.将ARM/DSP/FPGA实验箱的串口与计算机的串口相连接
5.打开光盘中提供的串口大师软件,并对其做简单设置(具体设置过程见实验步骤)
6.带连接和设置无误后,对实验箱上电
7.查看串口大师接收区的Bootloader信息
8.通过串口大师把可执行二进制文件下载到实验箱系统中
9.查看实验结果
由于本实验仅仅是为了让用户了解如何使用本系统自带Bootloader,所以此处将不对代码的具体编写规则以及实验的设计原理作过多分析,以后的实验中将会对实验的基本原理与过程作详细说明。
四实验步骤
1.将实验箱提供的ARM实验一(Example\ARM\Exp1文件夹)拷贝到PC硬盘上。
2.打开ADS软件,并打开Example\ARM\Exp1下面的工程HelloWorld.mcp,如图3.1.1所示。
图3.1.1在ADS软件中打开HelloWorld工程
3.点击如图3.1.2所示的Project->RemoveObjectCode…,会出现如图3.1.3所示的对话框。
图3.1.2移除目标代码菜单
图3.1.3移除目标代码对话框
4.点击【AllTargets】,此时会发现HelloWorld工程中所有的源文件前面都会打勾,如图3.1.4所示,这表示下载编译的时候将会对所有的文件进行编译。
图3.1.4移除编译代码后的源文件(打勾表示ADS软件会编译)
6.点击图3.1.4中所示的编译按钮,会出现如图3.1.5所示的编译结果界面。
从图中可以看出,系统编译结果提示有0个错误,3个警告,出现警告主要是某些函数在定义的时候具有返回值,而在调用该函数的时候却没有用到该返回值所致,通常对于编译出现的警告可以不用太在意。
7.打开串口大师,并对其作如图3.1.6所示的设置,包括选择串口端口号(根据计算机硬件来适当选择)、设置其波特率(必须为115200,这主要是因为ARM板的Bootloader中串口波特率工作在115200波特率上)、校验位方式(无校验)、数据位数(8位数据位)以及停止位(1位停止位)等属性,对于高级属性可以按照默认的属性配置,不用设定。
8.全部设置结束后,点击串口大师软件蓝色按钮右侧的【打开串口】,此时串口号会变成灰色无效,并且其左侧的蓝色按钮会变成红色,如图3.1.7所示。
这表明串口现在已经处于就绪状态,可以正常使用了。
图3.1.5HelloWorld工程编译结果
图3.1.6串口大师软件界面
图3.1.7红色表示软件串口处于打开状态
9.用串口电缆连接实验箱串口与刚刚设置好并且处于就绪状态的PC机串口,待连接正确后,打开实验箱电源,此时可以看到串口大师软件会接收到实验箱发送上来的Bootloader信息,如图3.1.8所示。
图3.1.8串口大师显示的实验箱发送的Bootloader信息
10.点击图3.1.8中所示的【选择文件】按钮,打开\ARM\Exp1\HelloWorld_Data\DebugRel\HelloWorld.bin,如图3.1.9所示。
图3.1.9打开二进制文件的串口大师窗口
2、给出工程的设置步骤和HelloWorld的运行结果;
首先点击串口大师底部的【重新计数】,将TX和RX的计数全部清零,然后点击【发送文件】,此时串口大师上半部分窗口会显示发送文件的状态,并且图3.1.9显示文件路径的地方也变为显示文件发送的进度。
待文件发送接收后,串口大师会接收到实验箱反馈回来的接收信息,包括接收了多少个字节的数据,如图3.1.10所示。
随后还会显示系统运行结果(本实验的运行结果是定时通过串口向计算机发送“HelloWorld*^_^*”字符)。
图3.1.10串口大师接收的发送结果
注意:
如果实际发送的字节数与ARM接收到的字节数步一致,则表明代码下载有误,可能系统无法正常运行。
3、问题及建议:
1、初步掌握了该软件工程的建立编译下载;
2、感觉对程序的理解还不是很透彻;有待进一步学习。