
《EL-TAB-ARM-II-2410说明书》由会员分享,可在线阅读,更多相关《EL-TAB-ARM-II-2410说明书(185页珍藏版)》请在文档大全上搜索。
1、 EL-TAB-ARM-II-2410说明书0实验指导书 185第1章 EL-TAB-ARM-II实验系统的资源介绍硬件资源概述EL-TAB-ARM-II型教学实验系统属于一种综合的教学实验系统,它是集学习、应用编程、开发研究于一体ARM实验教学系统。用户可根据自己的需求选用不同类型的CPU适配板,兼容ARM7与ARM9、ARM10,而不需要改变任何配置,同时,实验系统上的Tech_V总线能够拓展较为丰富的实验接口板。用户在了解Tech_V标准后,更能研发出不同用途的实验接口板。除此之外,在实验板上有丰富的外围扩展资源(数字量IO输入输出,语音编解码、人机接口等单元),可以完成ARM的基础实验
2、和数据通信实验、以太网实验。1.1 实验系统的硬件资源总揽图1-1-1 EL-ARM-830实验教学系统的功能框图1.2 核心板ARM9的资源介绍1. 核心板的硬件资源(ARM920T核)CPU:ARM920T,芯片三星的S3C2410,工作频率最高202MHz;动态存储器:64MB,芯片HY57V561620; 海量存储器:32MB,芯片K9F5608; USB单元: 1个主接口,两个设备接口,芯片PDIUSBD12; 网络单元: 10/100M以太网,芯片AX88796; UART单元: 2个,最高通信波特率115200bps; 语音单元: IIS格式,芯片UDA1341TS,采样频率最高
3、48KHz; LCD单元: 5.7寸,256色,320X240像素; 触摸屏单元: 四线电阻屏,320X240,5.7寸; SD卡单元: 通信频率最高25MHz,芯片W86L388D,兼容MMC卡; 键盘单元: 4X4键盘,带8位LED数码管;芯片HD7279A; 模拟输入输出单元:8个带自锁的按键,及8个LED发光管; A/D转换单元:芯片自带的8路10位A/D,满量程2.5V; 信号源单元: 方波输出; 标准键盘及PS2鼠标接口; 标准的IDE硬盘接口; 达盛公司的Tech_V总线接口; 达盛公司的E_Lab总线接口; 调试接口: 20针JTAG; CPLD单元; 电源模块单元。在核心CP
4、U板上包括下列单元和芯片,32位ARM920T的处理器,即三星的S3C2410芯片,两片动态存储器,每片32M字节,一片32M字节的NAND_flash存储器,一个USB主接口,一个USB从接口,一个10/100M的以太网控制芯片,完成网络访问功能,一个UART接口,完成串口通信,最高波特率率为115200bps, 一个RTC实时时钟,一个5V转3.3V和1.8V的电源管理模块,一个20针的JTAG调试接口。具体元器件见表1-1。芯片名称数量功能板上标号S3C24101ARM920T,中央处理器S3C2410XHY57V5616202动态存储器(SDRAM),32MB/片HY57V561620
5、K9F56081海量存储器,32MBK9F5608UAX88796110/100M以太网控制器AX88796AS1117-3.315V转3.3VAS1117-3.3AS1117-1.815V转1.8VAS1117-1.8MAX32321RS232转换IMP811-S1复位IMP811表1-1具体的单元、跳线见表1-2。标号名称功能JP1JTAG复位单元控制nRESET与nTRST是否接通AREF SEL模拟参考电压选择短接后连接到VDD33,否则接地3S/4S3Step与4Step选择设置Nand Flash的运行模式,选择NCON(CPU引脚)与3Step、4Step连接RESET复位键系统
6、复位按键PS电源插座电源插座,接5V电源SW电源开关拨向EXT接通,拨向INT断开电源USB-HOST主USB单元主USBUART0(CROSS/F)串口0单元和S3C2410的串口0通信USB-DEVICE从USB单元USB设备RJ45网络单元访问以太网ARM-JTAGJTAG插座20针JTAG插座,用于与宿主机通信INTERFACE C功能单元INTERFACE B数据、地址单元INTERFACE A功能单元表1-2表1-3为核心板上各LED指示灯的意义。标号名称功能PWRLED灯电源指示灯LED1LED灯GPI/O 口G口的第8位指示LED2LED灯GPI/O 口G口的第9位指示表1-3
7、表1-4为核心板上的晶振单元标号名称功能12MHzCPU主时钟晶振外接12MHz32KHzRTC时钟晶振外接32.768KHz25MHz网络时钟晶振外接25MHz表1-42核心板资源的具体介绍1)电源模块在S3C2410 CPU板上由于其内核采用1.8V,I/O接口采用3.3V供电,因此需要将通用的5V转换成1.8V和3.3V。图1-1-2为使用LM1117电源转换芯片把5V转成3.3V和1.8V的转换电路。图1-1-22)NAND_FLASH海量存储器单元该存储单元在板卡上标号为K9F5608U,选用32MB字节的K9F5608U,8位数据总线,该芯片由S3C2410的相关引脚直接控制, C
8、PU分配给它的地址空间为0x0000 00000x01ff ffff。启动代码部分则放在从0x0000 0000开始的地址空间内。系统将CPU的引脚OM1:0设置成00b,当核心板上电复位时,系统首先将Nand_Flash开始的04K的程序映射到SteppingStone区,然后从那里开始执行。Nand_Flash可以存放数据和程序,但需要特定的指令进行读写。3)同步动态存储器单元该存储单元在板卡上标号为HY57V561620。选用两片8MB字节的 HY57V561620,32位数据总线。片选NSCS6接两片HY57V561620单元作为片选信号,CPU分配给这两片HY57V561620单元的
9、地址空间分别为0x3000 0000 - 0x31ff ffff, 0x3200 0000-0x33ffffff,也就是S3C2410CPU的Bank6区和Bank7区。4)RS232串口单元该存储单元在板卡上标号为UART0(CROSS/F),选用了MAX3232电压转换芯片,进行PC机与CPU板的串口通讯。它采用收、发、地,三线连接,无握手信号。通过S3C2410内部的串口0控制器进行控制。5)主/从USB单元该单元在板卡上标号为USB-HOST和USB-DEVICE,通过S3C2410内部的USB主控制器和USB设备控制器进行控制。6)网络单元该存储单元在板卡上标号为AX88796,选用
10、了ASIX公司的AX88796网络芯片,传输速率为10/100M自适应,16位数据总线传输,片选NGCS2接网络单元。CPU分配给AX88796单元的地址空间为0x1000 00000x1800 0000,也就是S3C2410CPU的bank2区。S3C2410CPU的外部中断ExINT2响应该中断。RJ45插座上面自带数据传输的指示灯。为清楚显示核心板上各存储区及单元,见表1-5。标号名称存储区存储的有效区容量(字节)HY57V561620同步动态存储器Bank70x3200 0000 - 0x33ff ffff32MHY57V561620同步动态存储器Bank60x3000 0000 -
11、0x31ff ffff32MAX88796网络控制器Band20x1000 0000后的若干若干寄存器NAND_FLASH海量存储器Bank00x0000 0000 - 0x01ff ffff32M表1-57)JTAG单元JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FP
12、GA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前JTAG接口的连接有两种标准,即14针接口和20针接口,EL-ARM-830核心板上使用的是20针接口。接口定义见表1-6。引 脚名 称描 述1VTref目标板参考电压,接电源2VCC接电源3nTRST测试系统复位信号4、6、8、10、12、14、16、18、20GND接地5TDI测试数据串行输入7TMS测试模式选择9TCK测试时钟11RTCK测试时钟返回信号13TDO
13、测试数据串行输出15nRESET目标系统复位信号17、19NC未连接表1-6在核心板上,JTAG的第1脚用一黄色的方框标注,当串口、USB口、网络口向左摆放时,第1脚下面的管脚为第2脚,它左面的管脚依次为3,5,19;第2脚左面的管脚依次为4,6,20。8)核心CPU板上的外接接口单元在CPU板上有INTERFACE A、INTERFACE B、INTERFACE C,3个外扩接口单元,现对这三个接口的引脚加以说明。INTERFACE B:INTERFACE B扩展信号是地址、数据总线和读写、片选信号:见表1-7序号代号含义IO备注1+5V+5V电源2+5V+5V电源3LA19地址线O4LA1
14、8地址线O5LA17地址线O6LA16地址线O7EXA15地址线O8EXA14地址线O9EXA13地址线O10EXA12地址线O11GND地12GND地13EXA11地址线O14EXA10地址线O序号代号含义IO备注15EXA9地址线O16EXA8地址线O17EXA7地址线O18EXA6地址线O19EXA5地址线O20EXA4地址线O21+5V+5V电源22+5V+5V电源23EXA3地址线O24EXA2地址线O25EXA1地址线O26EXA0地址线O27LA21地址线O28LA20地址线O29NC空脚30NC空脚uedit31GND地32GND地33NC空脚空34NC空脚空35NC空脚空36
15、NC空脚空37NC空脚空38NC空脚空39NC空脚空40NC空脚空41VDD33+3.3V电源42VDD33+3.3V电源43NC空脚空44NC空脚空45NC空脚空46NC空脚空47NC空脚空48NC空脚空49NC空脚空50NC空脚空序号代号含义IO备注51GND地52GND地53EXD15数据线IO54EXD14数据线IO55EXD13数据线IO56EXD12数据线IO57EXD11数据线IO58EXD10数据线IO59EXD9数据线IO60EXD8数据线IO61GND地62GND地63EXD7数据线IO64EXD6数据线IO65EXD5数据线IO66EXD4数据线IO67EXD3数据线IO
16、68EXD2数据线IO69EXD1数据线IO70EXD0数据线IO71GND地72GND地73LNOE使能信号O74LNWE写信号O75LNOE使能信号O76NWIT等待信号I77NC空脚空78NGCS0片选信号O79GND地80GND地表1-7INTERFACE A:INTERFACE A扩展信号外设信号接口:见表1-8。序号代号含义IO备注1+12V+12V电源2-12V-12V电源3GND地序号代号含义IO备注4GND地5+5V+5V电源6+5V+5V电源7GND地8GND地9+5V+5V电源10+5V+5V电源11NC空脚空12NC空脚空13NC空脚空14NC空脚空15NC空脚空16N
17、C空脚空17NC空脚空18NC空脚空19+3.3V+3.3V电源20+3.3V+3.3V电源21SPICLK0SPI时钟输出OCPU引脚22MISO0SPI数据输入ICPU引脚23nSS0SPI片选OCPU引脚24MOSI0SPI数据输出OCPU引脚25GND地26GND地27NC空脚空28NC空脚空29NC空脚空30NC空脚空31GND地32GND地33NC空脚空34NC空脚空35IISLRCLKIIS左右声道时钟O36IISDOIIS数据输出O37GND地38GND地序号代号含义IO备注39IISCLKIIS输出时钟O40NC空脚空41NC空脚空42IISDIIIS数据输入I43GND地4
18、4GND地45TOUT0定时器输出0O46TCLK0定时器时钟输出0连接至CPU的TCLK0引脚47NC空脚空48EINT1中断1I外部输入的中断信号,连接到CPU的中断49TOUT1定时器输出150TCLK1定时器时钟输出1连接至CPU的TCLK1引脚51GND地52GND地53EINT0中断0I外部输入的中断信号,连接到CPU的中断54NC空脚空55NC空脚空56NGCS1片选信号1O57NC空脚空58NC空脚空59RESET复位信号O60NC空脚空61GND地62GND地63NC空脚空64NC空脚空65NC空脚空66NC空脚空67EINT7中断7I外部输入的中断信号,连接到CPU的中断6
19、8EINT3中断3I外部输入的中断信号,连接到CPU的中断69NGCS3片选信号3O序号代号含义IO备注70NGCS1片选信号1O71NC空脚空72NC空脚空73NC空脚空74NC空脚空75NC空脚空76GND地77GND地78NC空脚空79GND地80GND地表1-8INTERFACE C用来扩展INTERFACE A、INTERFACE B没有扩展的CPU信号,如AD输入、液晶、串口等和扩展子板间的通讯信号。见表1-9。序号代号含义IO备注1+5V+5V电源2+5V+5V电源3AIN0模拟输入0I4AIN1模拟输入1I5AIN2模拟输入2I6AIN3模拟输入3I7AIN4模拟输入4I8AI
20、N5模拟输入5I9AREFB模拟输入负参考电压I10AREFT模拟输入正参考电压I11AVCOM模拟输入参考电压公共端I12TOUT2定时器输出2O13TOUT3定时器输出3O14NC空脚15ExINT4外部中断4I16ExINT5外部中断5I17ExINT6外部中断6I18ExINT7外部中断7I19nGCS4片选O20nGCS5片选O序号代号含义IO备注21NGCS4片选O22nGCS5片选O23LnWBE0写字节使能0O24LnWBE1写字节使能1O25LnWBE2写字节使能2O26LnWBE3写字节使能3O27UCLK输入输出口IO28GPH1输入输出口IO29CLKOUT0时钟输出信
21、号源0O30CLKOUT1时钟输出信号源1O31IICSCLIIC总线时钟O32IICSDAIIC总线数据IO33RXD1串口1接收数据I34TXD1串口1发送数据O35RXD2串口2接收数据I36TXD2串口2发送数据O37SDDAT0SD卡数据0OEL-830底板未使用38SDDAT1SD卡数据1OEL-830底板未使用39SDDAT2SD卡数据2OEL-830底板未使用40SDDAT3SD卡数据3OEL-830底板未使用41SDCLKSD卡时钟OEL-830底板未使用42SDCMDSD卡命令OEL-830底板未使用43AIN6模拟输入6I44AIN7模拟输入7I45NC空脚46CDCLK
22、CPU信号,解码器系统时钟O47VD19液晶数据19OCPU引脚48VD20液晶数据20OCPU引脚49VD21液晶数据21OCPU引脚50VD22液晶数据22OCPU引脚51VD23液晶数据23OCPU引脚52VD10液晶数据10OCPU引脚53VD11液晶数据11OCPU引脚54VD12液晶数据12OCPU引脚55VD13液晶数据13OCPU引脚序号代号含义IO备注56VD14液晶数据14OCPU引脚57VD15液晶数据15OCPU引脚58VD3液晶数据3OCPU引脚59VD4液晶数据4OCPU引脚60VD5液晶数据5OCPU引脚61VD6液晶数据6OCPU引脚62VD7液晶数据7OCPU
23、引脚63TSMX接触摸屏XN脚OCPU引脚64TSMY接触摸屏YN脚OCPU引脚65TSPY接触摸屏YP脚OCPU引脚66TSPX接触摸屏XP脚OCPU引脚67VM-VDEN液晶电压控制信号I68VF-VS液晶桢时钟O69VL-HS液晶线时钟O70VCLK液晶位时钟O71VD0液晶数据0O72VD1液晶数据1O73VD2液晶数据2O74VD3液晶数据3O75VD4液晶数据4O76VD5液晶数据5O77VD6液晶数据6O78VD7液晶数据7O79GND地80GND地表1-91.3 实验箱底板的资源介绍1. 概述实验箱底板上的资源丰富,具体的实验单元有:LCD模块,触摸屏模块,语音单元模块,电源模
24、块,模拟输入输出模块,键盘模块,CPLD烧写模块,键盘数码管模块,Tech_V总线接口,总线扩展口等等。实验箱上的底板详细具体资源见表1-10。单元名称关键控制芯片功能备注LCD模块S3C2410内置LCD控制器液晶显示640X480,8.4寸,65536色触摸屏模块ADS7843完成触摸响应ARM9实验不使用改芯片,使用CPU集成的控制器语音模块UDA1341TS语音模拟信号采集采样率最高48KHz;键盘数码管模块HD7279A中断请求,数码管显示4X4键,8位数码管模拟输入输出模块74LS273,244完成数据锁存,数据发送8位数据总线扩展接口扩展接口。电源模块5V,+12V,-12VTe
25、ch_V总线接口留有扩展接口,有扩展板。表1-10接下来详细介绍各模块单元。2. 底板资源的具体介绍1)模拟输入输出接口单元8bit的数字量输入(由八个带自锁的开关产生),通过74LS244缓冲;8bit的数字量输出(通过八个LED灯显示),通过74LS273锁存。数字量的输入输出都映射到CPU的IO空间。数字值的显示的通过八个LED灯和LCD屏,按下一个键,表示输入一个十进制的“0”值,8个键都不按下,则数字量的十进制数值为255,8个键都按下,则数字量的十进制数值为0,通过LED灯,和LCD的显示可以清楚的看到实验结果。2)键盘数码管模块 键盘接口是由芯片HD7279A控制的,HD7279
26、A是一片具有串行接口的,可同时驱动8位共阴式数码管或(64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。HD7279A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。在该实验系统中,仅提供了16个键。3)音频模块 语音的模拟信号的编解码采用了UDA1341TS芯片。该芯片有两个串行同步变换通道、D/A转换前的差补滤波器和A/D变换后的滤波器。其他部分提供片上时序
27、和控制功能。芯片的各种应用配置可以通过芯片的三根线,由串行通信编程来实现。主要包括:复位、节电模式、通信协议、串行时钟速率、信号采样速率、增益控制和测试模式、音质特性。最大采样速率48kb/s。 语音处理单元由UDA1341TS模块、输出功率模块组成。语音的模拟信号经过偏置和滤波处理后输入到语音的编解码芯UDA1341TS中,UDA1341TS以IIS的语音格式送入S3C2410中,S3C2410可以处理也可以不处理该信号,把它保存起来,也可用DMA控制而不经过CPU处理,直接实时的采集,然后实时的播放出去。 音频信号通过D/A转换后输出,经过一次功率放大,然后可以推动功率为0.4W的板载扬声
28、器,也可以接耳机输出。如图1-3。语音处理单元原理框图图1-3语音处理单元接口说明:LINE_IN:音频输入端子,可输入CD、声卡、MP3等语音信号。MIC:音频输入端子,麦克风等语音信号。SPEAKER:音频输出端子,可接耳机、音箱。语音处理单元旋钮说明:“SPEAKER_R”:逆时针旋转音量变大顺时针旋转音量变小表1-11“SPEAKER_L”:逆时针旋转音量变大顺时针旋转音量变小表1-124)LCD模块本实验系统仅选用了LCD液晶显示屏,LCD的控制器使用S3C2410的内部集成的控制器,LCD屏选用的是5.7寸,320X240像素,256色的彩屏。电源操作范围宽(2.7V to 5.5
29、V);低功耗设计可满足产品的省电要求。其中,可调变位器VR2用于调节LCD屏色彩的对比度,产品出厂时,已设定成在室温下较好的对比度,当因温度低或高等因素显示不正常时,可适当调节VR2到合适的色彩。一般请不要调整。“VR2”:逆时针旋转LCD屏变亮顺时针旋转LCD屏变暗表1-13“LCD_ON/OFF”按键,控制着LCD屏的电源,是电源的开关。5)触摸屏模块 S3C2410内部具有触摸屏控制器,在底板跳线是ARM9的时候,触摸屏直接与S3C2410连接,由CPU直接控制。6)CPLD单元由于实验箱上的资源众多,几乎每一个设备资源都要使用片选信号或中断信号或一些串口的信号,以及一些寄存器的地址等等
30、,这样一来,S3C2410的I/O资源是不能满足的,因此该实验箱通过加入了一片CPLD芯片,用来完成各资源所需的地址译码,片选信号,以及一些高低电平的模拟。CPLD单元使用S3C2410的片选是NGCS4,地址是0x200000000x28000000;由于底板上大多的资源都通过CPLD的地址译码,进行片选电平的产生,以及模拟高低电平的产生,所以,应给CPLD的地址里写入相应的数据以产生相应的信号。表1-21列出了底板中所需信号的地址。#define clrcs1 (*(volatile unsigned *)0x20000006) = 0;#define setcs1 tmp = (*(vo
31、latile unsigned *)0x20000006);利用宏定义来代替置高、置低;给相应的地址里写1,表示该CPLD的相应引脚输出低电平,给相应的地址里写2,表示该CPLD的相应引脚输出高电平。有的地址需要写入8位数据。模块名称相应说明HD7279:0x20000005 0 > HD7279的DATA PIN方向为输入tmp = 0x20000005 > HD7279的DATA PIN方向为输出0x20000006 0 > HD7279的CS有效,选择HD7279tmp = 0x20000006 > HD7279的CS无效,释放HD72790x20000007 0
32、 > HD7279的CLK变低tmp = 0x20000007 > HD7279的CLK变高0x20000008 0 > HD7279的DAT变低tmp = 0x20000008 > HD7279的DAT变高总线接口ELAB_CS0:0x20000800-0x200009ffELAB_CS1:0x20000600-0x200007ffELAB_CS2:0x20000400-0x200005ffELAB_CS3:0x20000200-0x200003ff模拟输入输出:74ls244地址: 0x2000000474ls273地址: 0x20000004UDA1341:0x2
33、000000c 0 > L3DATA置0tmp = 0x2000000c > L3DATA置10x2000000d 0 > L3CLOCK置0tmp = 0x2000000d > L3CLOCK置1表1-21具体的应用,请详见源码程序。12)其它接口说明电源单元:为系统提供+5V、+12V、-12V、+3.3V电源,其中标号名称功能LED15LED灯+3.3V电源指示LED16LED灯+5V电源指示LED17LED灯+12V电源指示LED18LED灯-12V电源指示表1-221.5总线扩展在实验箱的左下部,有一对扩展接口,JP3和JP4,称为E_Lab总线接口。用来扩展
34、接口挂箱。综上所述,本章介绍了该系统的硬件资源,看完本章内容,应该对实验系统有一个基本的了解,在后面的几章中将会结合光盘资料给出的实验程序详细介绍每个单元在实验中的具体应用。第2章 基于ARM系统资源的实验 当进行嵌入式系统开发时,选择合适的开发工具可以加快开发进度、节省开发成本。因此一套含有编辑软件、编译软件、汇编软件、连接软件、调试软件、工程管理及函数库的集成开发环境(IDE)是必不可少的。当今在ARM领域,被多数嵌入式开发人员使用的集成开发环境有SDT2.5 和 ADS,其中ADS为ARM公司推出的新一代ARM集成开发工具,最新版本为ADS1.2。这两种开发工具都是ARM公司为了方便用户
35、开发使用ARM内核芯片而推出的,目前被广泛应用。ADS调试时在不需要仿真器的情况下,需要一根JTAG调试电缆就可以了,但它在调试的时候占用CPU的资源,调试的稳定性稍差,成本低,比较适合学生实验使用。ADS调试时使用外接仿真器的情况下,其在调试时不占用CPU的资源,稳定性好,但是成本高,适合用于科研教学和嵌入式的产品开发。在本章中主要是针对ARM的实验开发环境、ARM的汇编、高级语言的使用,以及针对三星的S3C2410的硬件资源进行一系列的HARDWARE。这其中包括ADS 1.2 开发环境创建与简要介绍、基于ARM汇编语言程序设计、基于ARM的C语言程序设计 基于ARM的硬件boot程序设计
36、、ARM的I/O接口实验、ARM的中断实验 ARM的DMA实验、ARM的UART实验、ARM的A/D接口实验、七段数码管和键盘的控制实验、LCD的显示实验、触摸屏实验、音频录放实验、USB设备收发数据实验、以太网传输实验、SD卡检测实验,PS2键盘鼠标实验。这些实验是脱离操作系统的HARDWARE,通过此类实验可以了解和学习ARM硬件的架构和软件的启动过程、运行过程,真正理解ARM芯片的应用。实验一 ADS1.2开发环境创建与简要介绍一、实验目的1. 熟悉ADS1.2开发环境,正确使用仿真调试电缆进行编译、下载、调试。二、实验内容1. 学习ADS1.2开发环境三、实验设备1. EL-ARM-8
37、30教学实验箱,PentiumII以上的PC机,仿真调试电缆。2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序四、实验步骤1. ADS1.2下建立工程1.运行ADS1.2集成开发环境(CodeWarrior for ARM Developer Suite),点击File|New,在New对话框中,选择Project栏,其中共有7项,ARM Executable Image是ARM的通用模板。选中它即可生成ARM的执行文件。同时,如图2-1-1图2-1-1还要在,Project name栏中输入项目的名称,以及在Location中输入其存放
38、的位置。按确定保存项目。2.在新建的工程中,选择Debug版本,如图2-1-2,使用Edit|Debug Settings菜单对Debug版本进行参数设置。图2-1-23.在如图2-1-3中,点击Debug Setting 按钮,弹出2-1-4图,选中Target Setting图2-1-3图2-1-4项,在Post-linker栏中选中ARM fromELF项。按OK确定。这是为生成可执行的代码的初始开关。4. 在如图2-1-5中,点击ARM Assembler ,在Architecture or Processer 图2-1-5 栏中选ARM920T。这是要编译的CPU核。5.在如图2-1
39、-6中,点击ARM C Compliler ,在Architecture or Processer栏中选ARM920T。这是要编译的CPU核。图2-1-66. 在如图2-1-7中,点击ARM linker ,在outpur栏中设定程序的代码段地址,以及数据使用的地址。图中的RO Base栏中填写程序代码存放的起始地址,RW Base栏中填写程序数据存放的起始地址。该地址是属于SDRAM的地址。图2-1-7图2-1-8在options栏中,如图2-1-8,Image entry point要填写程序代码的入口地址,其他保持不变,如果是在SDRAM中运行,则可在0x300000000x33ffff
40、ff中选值,这是64M SDRAM的地址,但是这里用的是起始地址,所以必须把你的程序空间给留出来,并且还要留出足够的程序使用的数据空间,而且还必须是4字节对齐的地址(ARM状态)。通常入口点Image entry point 为0x30000000,ro_base也为0x30000000。在Layout栏中,如图2-1-9,在Place at beginning of image框内,需要填写项目的入口程序的目标文件名,如,整个工程项目的入口程序是2410init.s,那么应在Object/Symbol处填写其目标文件名2410init.o,在Section处填写程序入口的起始段标号。它的作用
41、是通知编译器,整个项目的开始运行,是从该段开始的。图2-1-97. 在如图2-1-10中,即在Debug Setting对话框中点击左栏的ARM fromELF项,在Output file name栏中设置输出文件名*.bin,前缀名可以自己取,在Output format 栏中选择Plain binary,这是设置要下载到flash中的二进制文件。图2-1-10中使用的是test.bin.图2-1-108. 到此,在ADS1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如S3C2410 ARM.mcp等,然后,在ADS1.2软
42、件安装的目录下的Stationary 目录下新建一个合适的模板目录名,如,S3C2410 ARM Executable Image,再将刚刚设置完的S3c2410 ARM.mcp项目文件存放到该目录下即可。这样,就能在图2-1-10中看到该模板。9.新建项目工程后,就可以执行菜单Project|Add Files把和工程所有相关的文件加入,ADS1.2不能自动进行文件分类,用户必须通过Project|Create Group来创建文件夹,然后把加入的文件选中,移入文件夹。或者鼠标放在文件填加区,右键点击,即出!如图2-1-11图2-1-11先选Add Files,加入文件,再选Create G
43、roup,创建文件夹,然后把文件移入文件夹内。读者可根据自己习惯,更改Edit|Preference窗口内关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。如图2-1-12。图2-1-122. ADS1.2下仿真、调试 在ADS1.2下进行仿真调试,首先需要一根仿真调试电缆。其驱动程序的安装和使用在光盘中的实验软件ARM9_RDI中,里面有相关的文档。在连上调试电缆后,给实验箱上电,打开调试软件AXD Debugger。点击File|load image 加载文件ADS.axf(实验程序HARDWAREADS实验一ADSADS_data目录下)。打开超级终端,设置其参数为:波特率为
44、115200,数据位数8,奇偶校验无,停止位无1,数据流控无。点击全速运行,出现图2-1-13的界面:图2-1-13在最后介绍调试按钮,上图,左起第一个是全速运行,第二个是停止运行,第三个跳入函数内部,第四个单步执行,第五个跳出函数。到此,开发环境就全部介绍完了,这是 ARM的开发基础,希望你有所收获。实验二 基于ARM的汇编语言程序设计简介一、实验目的1. 了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程二、实验内容1. 用汇编语言编写一个简单的应用程序三、实验设备1. EL-ARM-830教学实验箱,PentiumII以上的PC机,仿真调试电缆,串口电缆。2. PC操作系统WIN
45、98或WIN2000或WINXP, ADS1.2集成开发环境,仿真调试驱动程序四、汇编语言简介1. ARM汇编的一些简要的书写规范ARM汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。ARM汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。在ARM汇编中,ARM指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行的顶格书写。详细的汇编语句及规范请参照ARM汇编的相关书籍、文档,也可参照我们提供的文档。2. ARM汇编语言程序的基本结构在ARM汇编语言程序中,是以
46、程序段为单位来组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。可执行映像文件通常由以下几部分构成: 一个或多个代码段,代码段为只读属性。 零个或多个包含初始化数据的数据段,数据段的属性为可读写。 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系
47、不一定相同。3. 简单的小例子下面是一个代码段的小例子AREA Init,CODE,READONLYENTRYLDR R0, =0x3FF5000LDR R1, 0x0fSTR R1, R0LDR R0, =0x3F50008LDR R1, 0x1STR R1, R0END在汇编程序中,用AREA指令定义一个段,并说明定义段的相关属性,本例中定义了一个名为Init的代码段,属性为只读。ENTRY伪指令标识程序的入口,程序的末尾为END指令,该伪指令告诉编译器源文件的结束,每一个汇编文件都要以END结束。下面是一个数据段的小例子AREA DataArea, DATA, NOINIT, ALIGN
48、=2DISPBUFSPACE200RCVBUFSPACE200DATA为数据段的标识。五、实验步骤1. 本实验仅使用实验教学系统的CPU板,串口。在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。2在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。3检查连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开实验程序HARDWAREADS实验二asm.mcp项目文件,进行编译。5编译通过后,进入ADS1.2调试界面,加载实验程序HARDWAREADS实验二as
49、m_DataDebug中的映象文件程序映像asm.axf。6打开超级终端,配置波特率为115200,校验位无,数据位为8,停止位为1。之后,在ADS调试环境下全速运行映象文件,应出现图2-2-1界面:图2-2-1本程序连续发送了128个字节的ASCII字符。下面分析一下程序的源码。在UART前的部分为系统的初始化,这在后边BOOTLOADER的章节里,要详细介绍。UART后的程序为主程序,在程序中找到下面这部分的代码,;/呼叫主应用程序b UARTUART ldr r0, =GPHCON ;/设置GPIO(RxD0,TxD0引脚) ldr r1, =0x2afaaa str r1, r0 ld
50、r r0, =GPHUP ldr r1, =0x7ff str r1, r0 ; /GPH10:0禁止上拉 ldr r0, =UFCON0 ;/禁用FIFO ldr r1, =0x0 str r1, r0 ldr r0, =UMCON0 ;/禁用AFC ldr r1, =0x0 str r1, r0 ldr r0, =ULCON0 ;/设置线寄存器 ldr r1, =0x3 ; /正常模式,无奇偶校验,一个停止位,8个数据位 str r1, r0 ldr r0, =UCON0 ;/设置Uart0控制器 ldr r1, =0x245;/RX边沿触发,TX电平触发,禁用延时中断,使用RX 错误中断
51、,正常操作模式,中断请求或表决模式 str r1, r0 ldr r0, =UBRDIV0 ;/设置波特率为115200 ldr r1, =0x1a ;/int(50700000 / 16 / 115200) - 1 = 26 str r1, r0 mov r1, #100Delay sub r1, r1, #0x1 bne Delay ;/开中断 ldr r0, =INTMSK ldr r1, r0 and r1, r1, #0xefffffff str r1, r0 MOV R5 , #127 ; /设置要打印的字符的个数 MOV R1 , #0x0 ; /设置要打印的字符LOOP LDR R3 , =UTRSTAT0 LDR R2 , R3 TST R2 ,#0x04 ; /判断发送缓冲区是否为空 BEQ LOOP ;/为空则执行下边的语句,不为空则跳转到LOOP LDR R0 , =UTXH0 STR R1 ,R0 ;/向数据缓冲区放置要发送的数据 ADD R1, R1, #1 SUB R5 ,R5, #0x01 ;/计数器减一 CMP R5 ,#0x0 BNE LOOP LOOP2 B LOOP2 分析清楚之后,我们改变R1的数据,换成其他的数据,然后保存、编译、调试。观察结果,比如0xaa,0x01等等。实验三 基于ARM的C语言程序设计简介一、实验目的1.了解ARM