实验一熟悉ADS12 开发环境及教学实验箱.docx
《实验一熟悉ADS12 开发环境及教学实验箱.docx》由会员分享,可在线阅读,更多相关《实验一熟悉ADS12 开发环境及教学实验箱.docx(12页珍藏版)》请在冰豆网上搜索。
实验一熟悉ADS12开发环境及教学实验箱
实验一熟悉ADS1.2开发环境及教学实验箱
一、实验目的
1.熟悉ADS1.2开发环境,正确进行编译、下载、调试。
2.了解ARM9的结构特点
3.了解VIVI引导程序常用命令的使用方法
4.理解NANDFLASH的用途与分区方法
5.掌握用VIVI下载ARM程序方法
二、实验仪器设备及软件
1.ARM9教学实验箱,PentiumII以上的PC机
2.PC操作系统WINXP,ADS1.2集成开发环境
三、实验原理
1.ARM实验箱基本结构
S3C2410核心板资源介绍
vNANDFLASH32MBK9F5608U,8位总线
v占用地址空间0x00000000–0x01ffffff将OM[1:
0]设置成00b(NandBOOT)
v同步动态存储器HY57V561620,8MB32位总线,占用地址空间0x30000000–0x33ffffff(BANK6,7)
v电源转换5V转成3.3V,5V转成1.8V
v网卡芯片AX88796LF
vUSB(主/从接口)
v串口芯片MAX3232(电源电压3.3V)
vJ-TAG接口
vLED灯(两个,接在GPIOG)
实验箱其它电路
vSD卡接口电路
v键盘鼠标电路
v16键键盘电路
v扩展接口(8位,32位)
v外部温度传感器
vCPLD主板各芯片地址译码电路
v扩展从USB电路
vLED指示灯(8个,低电平亮)
v信号扩展电路(IDE接口)
2.VIVI引导程序
VIVI是韩国mizi公司开发的bootloader,适用于ARM9处理器。
VIVI有两种工作模式:
启动加载模式和下载模式。
启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这时vivi的默认模式。
在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令。
(1)help显示vivi引导程序的命令信息
(2)Part操作MTD分区信息。
显示、增加、删除、复位、保存MTD分区
partshow显示分区信息
partaddpartnamepart_start_addrpart_leng0添加分区
partdelpartname删除分区
partsave保存part分区信息
(3)Load把二进制文件载入Flash或RAM
loadflashpartnamex使用xmodom协议通过串口下载文件并且烧写到partname分区
loadrampartnameoraddrx使用xmodom协议通过串口下载文件到内存中
(4)param操作vivi参数命令。
显示、增加、删除、复位、保存参数。
paramshow显示配置信息
paramsetparamnamevalue设置参数值
paramsetlinux_cmd_line“linuxbootparam”设置linux启动参数
paramsave保存参数的设置
(5)bon操作NANDFLASH分区命令
(6)boot引导linux操作系统命令
(7)ucos引导ucOS操作系统或其它应用程序命令
(8)其它命令见附录
3.NANDFLASH的用途与分区
NANDFLASH用来存储引导程序,操作系统,应用程序,数据等。
通过ARM9开发都有一片NANDFLASH存储器。
本实验箱的NANDFLASH存储器容量是32MB。
首先我们来理解一下三种分区:
BON分区,part分区,MTD分区
BON分区:
VIVI程序基本分区,把NANDFLASH在物理上分区多个区域,供引导程序与操作系统使用。
一般来说,每个分区的功能都不同。
part分区:
VIVI引导程序用的逻辑分区,烧写程序的时候用来确定烧写地址的。
MTD分区:
Linux操作系统下的NANDFLASH分区,是逻辑分区。
Linux操作系统启动后,part分区也就没有意义了,操作系统会读取BON分区的信息。
嵌入式系统NANDFLASH的BON分区一般来说明要分为不少于3个,第一个用来存VIVI引导程序,第2个用于存储Linux操作系统内核程序,第3个用来存Linux操作系统的文件系统。
为了更好的进行uCOS实验和Linux实验,应把NANDFLASH分为5个区。
各分区安排如下:
VIVI0---192KB(用于存引导程序VIVI,VIVI用到的参数)
kernel192KB----2M+192K(用于存Linux内核,2.6版内核编译后很容易大于1M)
rootcramfs2M+192K--20M(用于存文件系统,约18M,只读)
rootyaffs20M-31M(用于存储yaffs文件系统,可读写)
ucos231M-32M-16K(用于存储uCOS程序或无操作系统程序)
分区命令如下:
BONPART0192K2240K20M31M
分区后应立即下载VIVI程序,不能断电。
重新引导VIVI后,用part进行逻辑分区。
对应的part分区命令:
首先删除已有的part分区kernel,root,可以用partshow命令查看分区。
删除分区命令:
partdelroot删除root分区
建立分区命令:
partaddrootcramfs0x2300000x11d0000BONFS
这一命令是建立一个名为rootcramfs的分区,分区起始地址是0x230000,分区
大小是0x11d0000,约18MB,分区参数BONFS
partaddrootyaffs0x14000000x0b00000BONFS
partadducos20x1f000000x0fa000BONFS
四、实验内容
1.学习使用ADS1.2开发环境
2.ARM9教学实验箱的基本操作
①VIVI命令基本操作
(1)使用VIVI命令查看CPU的类型,实验箱硬件相关参数。
(2)查看NANDFLASH分区信息,并记录各区在NANDFLASH的起始地址。
(3)查看MTD分区信息,并记录各分区的名称,容量,起始地址等。
(4)通过串口下载程序到SDRAM中,并正确运行程序。
LOADRAM0X300380000X100000X
说明:
从串口中,用Xmodern协议下载程序到SDRAM中,程序的大小小于1MB(0x100000),程序下载到SDRAM的地址是0x30038000。
这个地址应该与编译软件设置的运行地址相同。
运行程序方法:
go0x30038000
②NANDFLASH分区
用VIVI引导程序相关命令可以给NANDFLASH分区,并指定每个分区的用途。
③下载应用程序,并运用
通过串口下载程序到NANDFLASH中,并运行程序。
LOADFLASHucos2x
说明:
从串口中,用Xmodern协议下载程序到NANDFLASH中的ucos2分区,程序的大小不指定,系统自动计算。
运行程序方法:
ucos
五、实验步骤
1.ADS1.2开发环境实验步骤:
(1)ADS1.2下建立工程
①运行ADS1.2集成开发环境(CodeWarriorforARMDeveloperSuite),点击File|New,在New对话框中,选择Project栏,其中共有7项,ARMExecutableImage是ARM的通用模板。
选中它即可生成ARM的执行文件。
同时,如图2-1-1
图2-1-1
还要在,Projectname栏中输入项目的名称,以及在Location中输入其存放的位置。
按确定保存项目。
②在新建的工程中,选择Debug版本,如图2-1-2,使用Edit|DebugSettings菜单对Debug版本进行参数设置。
图2-1-2
③在如图2-1-3中,点击DebugSetting按钮,弹出2-1-4图,选中TargetSetting
图2-1-3
图2-1-4
项,在Post-linker栏中选中ARMfromELF项。
按OK确定。
这是为生成可执行的代码的初始开关。
④在如图2-1-5中,点击ARMAssembler,在ArchitectureorProcesser
图2-1-5
栏中选ARM920T。
这是要编译的CPU核。
⑤在如图2-1-6中,点击ARMCCompliler,在ArchitectureorProcesser栏中选ARM920T。
这是要编译的CPU核。
图2-1-6
⑥在如图2-1-7中,点击ARMlinker,在outpur栏中设定程序的代码段地址,以及数据使用的地址。
图中的ROBase栏中填写程序代码存放的起始地址,RWBase栏中填写程序数据存放的起始地址。
该地址是属于SDRAM的地址。
图2-1-7
图2-1-8
在options栏中,如图2-1-8,Imageentrypoint要填写程序代码的入口地址,其他保持不变,如果是在SDRAM中运行,则可在0x30000000—0x33ffffff中选值,这是64MSDRAM的地址,但是这里用的是起始地址,所以必须把你的程序空间给留出来,并且还要留出足够的程序使用的数据空间,而且还必须是4字节对齐的地址(ARM状态)。
通常入口点Imageentrypoint为0x30000000,ro_base也为0x30000000。
在Layout栏中,如图2-1-9,在Placeatbeginningofimage框内,需要填写项目的入口程序的目标文件名,如,整个工程项目的入口程序是2410init.s,那么应在Object/Symbol处填写其目标文件名2410init.o,在Section处填写程序入口的起始段标号。
它的作用是通知编译器,整个项目的开始运行,是从该段开始的。
图2-1-9
⑦在如图2-1-10中,即在DebugSetting对话框中点击左栏的ARMfromELF项,在Outputfilename栏中设置输出文件名*.bin,前缀名可以自己取,在Outputformat栏中选择Plainbinary,这是设置要下载到flash中的二进制文件。
图2-1-10中使用的是test.bin.
图2-1-10
⑧到此,在ADS1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。
首先,要将该项目工程文件改一个合适的名字,如S3C2410ARM.mcp等,然后,在ADS1.2软件安装的目录下的Stationary目录下新建一个合适的模板目录名,如,S3C2410ARMExecutableImage,再将刚刚设置完的S3c2410ARM.mcp项目文件存放到该目录下即可。
这样,就能在图2-1-10中看到该模板。
⑨新建项目工程后,就可以执行菜单Project|AddFiles把和工程所有相关的文件加入,ADS1.2不能自动进行文件分类,用户必须通过Project|CreateGroup来创建文件夹,然后把加入的文件选中,移入文件夹。
或者鼠标放在文件填加区,右键点击,即出!
如图2-1-11
图2-1-11
先选AddFiles,加入文件,再选CreateGroup,创建文件夹,然后把文件移入文件夹内。
读者可根据自己习惯,更改Edit|Preference窗口内关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。
如图2-1-12。
图2-1-12
(2)ADS1.2下仿真、调试
在ADS1.2下进行仿真调试,首先需要一根仿真调试电缆。
其驱动程序的安装和使用在光盘中的\实验软件\ARM9_RDI中,里面有相关的文档。
在连上调试电缆后,给实验箱上电,
打开调试软件AXDDebugger。
点击File|loadimage加载文件ADS.axf(\实验程序\HARDWARE\ADS\实验一\ADS\ADS_data目录下)。
打开超级终端,设置其参数为:
波特率为115200,数据位数8,奇偶校验无,停止位无1,数据流控无。
点击全速运行,出现图2-1-13的界面:
图2-1-13
在最后介绍调试按钮,
上图,左起第一个是全速运行,第二个是停止运行,第三个跳入函数内部,第四个单步执行,第五个跳出函数。
2.ARM9教学实验箱的基本操作实验步骤:
1连接实验箱与计算机的串口线,打开计算机超级终端,并设定为com1,115200,8,1,0N
2连接仿真调试电缆(并口JTAG)
3实验箱上电,并在vivi的指示下,按任意键,进入调试程序状态
4打开超级终端软件,并进行相应的设置。
5按内容要求测试VIVI程序各命令功能,并记录调试过程和数据。
6下载编译好的ARM程序例子,并记录实验现象。
7调试完毕,整理实验箱,并放回原位。
六、实验思考题
七、实验报告要求
(1)按电子版实验报告格式,写实验报告。
(2)写出程序分析、修改的过程
(3)总结实验过程程序编译、程序下载、调试过程中所遇到的问题和解决方法,写出实验过程的经验和体会。