资源描述
【最新卓越管理方案 您可自由编辑】(VR虚拟现实)ELTABARMII 说明书家年的企it咨询顾问经瞄,鲤过实战脸证可以落地执行的卓趋管理方案,值将您下靓拥有第 1 章 EL-TAB-ARM-II 实验系统的资源介绍硬件资源概述EL-TAB-ARM-II 型教学实验系统属于一种综合的教学实验系统,它是集学习、应用编程、开发研究于一体 ARM 实验教学系统。用户可根据自己的需求选用不同类型的 CPU 适配板,兼容ARM7 与 ARM9 、 ARM10 ,而不需要改变任何配置,同时,实验系统上的 Tech_V 总线能够拓展较为丰富的实验接口板。用户在了解Tech_V 标准后,更能研发出不同用途的实验接口板。 除此之外, 在实验板上有丰富的外围扩展资源 (数字量 IO 输入输出,语音编解码、人机接口等单元) ,可以完成ARM 的基础实验和数据通信实验、以太网实验。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 ,采样频率最高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单元;电源模块单元。在核心CPU板上包括下列单元和芯片,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/ 片HY57V561620K9F56081海量存储器,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 的运行模式,选才i NCON (CPU弓1脚)与3Step、4Step 连接RESET复位键系统复位按键P. S电源插座电源插座,接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表1-4为核心板上的晶振单元名称功能12MHzCPU主时钟晶振外接12MHz32KHzRTC时钟晶振外接 32.768KHz25MHz网络时钟晶振外接25MHz表1-42.核心板资源的具体介绍1)电源模块在S3c2410 CPU 板上由于其内核采用 1.8VJ/O接口采用3.3V供电, 因此需要将通用的 5V转换成1.8V和3.3V o图1-1-2为使用LM1117电 源转换芯片把5V转成3.3V和1.8V的转换电路。图 1-1-22) NAND_FLASH海量存储器单元该存储单元在板卡上标号为K9F5608U ,选用32MB 字节的K9F5608U ,8位数据总线,该芯片由S3C2410的相关引脚直接控制,CPU分配给它的地址空间为0x0000 0000 0x01ff ffff 。启动代码部分则放在从0x0000 0000 开始的地址空间内。系统将CPU的引脚OM1:0设置成00b , 当核心板上电复位时,系统首先将Nand_Flash 开始的04K的程序映射到SteppingStone 区,然后从那里开始执行。Nand_Flash可以存放数据和程 序,但需要特定的指令进行读写。3)同步动态存储器单元该存储单元在板卡上标号为 HY57V561620 。选用两片 8MB 字节的HY57V561620 , 32 位数据总线。片选 NSCS6 接两片 HY57V561620 单元作为片选信号, CPU 分配给这两片 HY57V561620 单元的地址空间分别为 0x30000000- 0x31ff ffff, 0x32000000-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 , 选用了 ASIX 公司的 AX88796网络芯片, 传输速率为 10/100M 自适应, 16 位数据总线传输, 片选 NGCS2接 网 络 单 元 。 CPU 分 配 给 AX88796 单 元 的 地 址 空 间 为 0x10000000 0x1800 0000,也就是 S3c2410CPU 的 bank2 区。S3c2410CPU 的外部中断ExINT2响应该中断。RJ45插座上面自带数据传输的指示灯。为清楚显示核心板上各存储区及单元,见表1-5。名称存储区存储的有效区容量(字节)HY57V561620同步动态存储器Bank70x32000000-0x33ff ffff32MHY57V561620同步动态存储器Bank60x30000000-0x31仟 ffff32MAX88796网络控制器Band20x1000 0000 后的若干寄存器NAND_FLASH海量存储器Bank00x00000000-0x01ff ffff32M表1-57) JTAG单元JTAG(Joint Test Action Group ,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试, JTAG技术是TAP (Test一种嵌入式调试技术,它在芯片内部封装了专门的测试电路Access Port ,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的 JTAG接口是4线:TMS、TCK、TDI、TDO ,分别为测试 模式选择、测试时钟、测试数据输入和测试数据输出。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。 目前JTAG接口的连接有两种标准,即 14针接口和20针接口,EL-ARM-830 核心板上使用的是 20针接口。接口 定义见表1-6 。弓1脚名称描 述1VTref目标板参考电压,接电源2VCC接电源3nTRST测试系统复位信号4、 6、 8、 10、 12、14、16、18、20GND接地5TDI测试数据串行输入7TMS测试模式选择9TCK测试时钟11RTCK测试时钟返回信号13TDO测试数据串行输出15nRESET目标系统复位信号17、19NC未连接表1-6USB 口、在核心板上,JTAG的第1脚用一黄色的方框标注,当串口、网络口向左摆放时,第 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地址线O4LA18地址线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空脚空36NC空脚空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数据线IO68EXD2数据线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空脚空16NC空脚空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地44GND地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的中断68EINT3中断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模拟车入4I8AIN5模拟车入5I9AREFB模拟输入负参考电压I10AREFT模拟输入正参考电压I11AVCOM模拟输入参考电压公共端I12TOUT2定时器输出2O13TOUT3定时器输出3O14NC空脚15ExINT4外部中断4I16ExINT5外部中断5I17ExINT6外部中断6I18ExINT7外部中断7I19nGCS4片选O20nGCS5片选O序号代号含义IO备注21NGCS4片选O22nGCS5片选O23LnWBEO写字节使能0O24LnWBE1写字节使能1O25LnWBE2写字节使能2O26LnWBE3写字节使能3O27UCLK输入输出口IO28GPH1输入输出口IO29CLKOUT0时钟输出信号源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空脚46CDCLKCPU信号,解码器O系统时钟47VD19液晶数据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引脚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模块,触摸屏模块,语音单元模块,电源模块,模拟输入输出模块,键盘模块,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,-12VTech_V总线接口留有扩展接口 ,有扩展板。表 1-10接下来详细介绍各模块单元。2 .底板资源的具体介绍1)模拟输入输出接口单元8bit的数字量输入(由八个带自锁的开关产生),通过74LS244缓冲;8bit的数字量输出(通过八个 LED灯显示),通过74LS273锁存。数字量的输入输出都映射到CPU的IO空间。数字值的显示的通过八个LED灯和LCD屏,按下一个键,表示输入一个十进制的“0”值, 8 个键都不按下,则数字量的十进制数值为 255 , 8 个键都按下,则数字量的十进制数值为 0 ,通过 LED 灯,和 LCD 的显示可以清楚的看到实验结果。2)键盘数码管模块键盘接口是由芯片 HD7279A 控制的, HD7279A 是一片具有串行接口的,可同时驱动 8 位共阴式数码管或( 64 只独立 LED )的智能显示驱动芯片, 该芯片同时还可连接多达 64 键的键盘矩阵,单片即可完成LED 显示,键盘接口的全部功能。HD7279A 内部含有译码器,可直接接受 BCD 码或 16 进制码,并同时具有2 种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。 HD7279A 具有片选信号,可方便地实现多于8 位的显示或多于64 键的键盘接口。在该实验系统中,仅提供了 16 个键。3 )音频模块语音的模拟信号的编解码采用了 UDA1341TS 芯片。该芯片有两个串行同步变换通道、 D/A 转换前的差补滤波器和 A/D 变换后的滤波器。其他部分提供片上时序和控制功能。芯片的各种应用配置可以通过芯片的三根线,由串行通信编程来实现。主要包括:复位、节电模式、通信协议、串行时钟速率、信号采样速率、增益控制和测试模式、音质特性。最大采样速率48kb/s 。语首处理单元由 UDA1341Ts模块、输出功率模块组成。语首的模拟信号经过偏置和滤波处理后输入到语音的编解码芯UDA1341TS中,UDA1341TS 以IIS的语音格式送入 S3C2410中,S3C2410可以处理也可以不处理该信号,把它保存起来,也可用DMA控制而不经过CPU处理,直接实时的采集,然后实时的播放出去。音频信号通过 D/A转换后输出,经过一次功率放大,然后可以推动功率为0.4W的板载扬声器,也可以接耳机输出。如图 1-3。语音处理单元原理框图频输处理单元接口说明偏置滤波处理图1-3一UDA1341Ts功率放大音频输出LINE_IN :苴频输入端子,可加入 CD、声卡、MP3等语首信声MIC:音频输入端子,麦克风等语音信号。.,厂ASPEAKER :音频输出端子,可接耳机、音箱。S3C2410语音处理单元旋钮说明:SPEAKER_R” :逆时针旋转音量变大顺时针旋转音量变小表 1-11“SPEAKER L”:逆时针旋转音量变大顺时针旋转音量变小表 1-124) LCD模块本实验系统仅选用了 LCD液晶显示屏,LCD的控制器使用S3C2410的内部集成的控制器,LCD屏选用的是5.7寸,320X240像素,256色的彩屏。电源操作范围宽(2.7V to 5.5V);低功耗设计可满足产品的省电要求。其中,可调变位器VR2用于调节LCD屏色彩的对比度,产品出厂时,已设定成在室温下较好的对比度,当因温度低或高等因素显示不正常时,可适当调节VR2到合适的色彩。一般请不要调整。“ VR2 ” :逆时针旋转LCD屏变亮顺时针旋转LCD屏变暗表 1-13“ LCD_ON/OFF ”按键,控制着LCD 屏的电源,是电源的开关。5)触摸屏模块S3C2410 内部具有触摸屏控制器, 在底板跳线是ARM9 的时候,触摸屏直接与 S3C2410 连接,由 CPU 直接控制。6 ) CPLD 单元由于实验箱上的资源众多, 几乎每一个设备资源都要使用片选信号或中断信号或一些串口的信号, 以及一些寄存器的地址等等,这样一来,S3C2410 的 I/O 资源是不能满足的,因此该实验箱通过加入了一片CPLD 芯片,用来完成各资源所需的地址译码,片选信号,以及一些高低电平的模拟。CPLD 单 元 使 用 S3C2410 的 片 选 是 NGCS4 , 地 址 是0x20000000 0x28000000; 由于底板上大多的资源都通过CPLD 的地址译码,进行片选电平的产生,以及模拟高低电平的产生,所以,应给 CPLD 的地址里写入相应的数据以产生相应的信号。 表 1-21 列出了底板中所需信号的地址。#define clrcs1(*(volatile unsigned *)0x20000006) =0;#define setcs1tmp(*(volatile 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-HD7279的CLK 变低tmp =0x20000007 HD7279的CLK 变高0x20000008=0-HD7279的DAT 变低tmp =0x20000008-HD7279的DAT 变高总线接口ELAB_CS0:0x200008000x200009fELAB_CS1:0x20000600-0x200007fELAB_CS2:0x20000400-0x200005fELAB_CS3:0x200002000x200003f模拟74ls244 地址:0x20000004输入输出:741s273 地址:0x20000004UDA13410x2000000c= 0 L3DATA 置 0tmp = 0x2000000c L3DATA 置 10x2000000d= 0tmp = 0x2000000d L3CLOCK 置 0 L3CLOCK 置 1表 1-21具体的应用,请详见源码程序。12)其它接口说明电源单元:为系统提供 +5V、+12V、-12V、+3.3V电源,其中名称功能LED15LED灯+3.3V电源指示LED16LED灯+5V电源指示LED17LED灯+12V电源指示LED18LED灯-12V电源指示表 1-22在实验箱的左下部,有一对扩展接口, JP3 和 JP4 ,称为E_Lab 总线接口。用来扩展接口挂箱。综上所述, 本章介绍了该系统的硬件资源, 看完本章内容, 应该对实验系统有一个基本的了解, 在后面的几章中将会结合光盘资料给出的实验程序详细介绍每个单元在实验中的具体应用。第 2 章 基于 ARM 系统资源的实验当进行嵌入式系统开发时,选择合适的开发工具可以加快开发进度、节省开发成本。因此一套含有编辑软件、编译软件、汇编软件、连接软件、调试软件、工程管理及函数库的集成开发环境( IDE )是必不可少的。当今在 ARM 领域,被多数嵌入式开发人员使用的集成开发环境有SDT2.5 和 ADS ,其中 ADS 为 ARM 公司推出的新一代ARM 集成开发工具,最新版本为 ADS1.2 。这两种开发工具都是ARM 公司为了方便用户开发使用 ARM 内核芯片而推出的,目前被广泛应用。 ADS 调试时在不需要仿真器的情况下, 需要一根 JTAG 调试电缆就可以了, 但它在调试的时候占用 CPU 的资源, 调试的稳定性稍差, 成本低, 比较适合学生实验使用。 ADS调试时使用外接仿真器的情况下,其在调试时不占用 CPU 的资源,稳定性好,但是成本高,适合用于科研教学和嵌入式的产品开发。在本章中主要是针对 ARM 的实验开发环境、 ARM 的汇编、高级语言的使用, 以及针对三星的 S3C2410 的硬件资源进行一系列的 HARDWARE 。这其中包括ADS 1.2 开发环境创建与简要介绍、基于ARM 汇编语言程序设计、基于 ARM 的 C 语言程序设计基于 ARM 的硬件 boot 程序设计、ARM 的 I/O 接口实验、 ARM 的中断实验ARM 的 DMA 实验、 ARM 的LCDUART 实验、 ARM 的 A/D 接口实验、七段数码管和键盘的控制实验、的显示实验、触摸屏实验、音频录放实验、 USB 设备收发数据实验、以太网传输实验、 SD 卡检测实验, PS2 键盘鼠标实验。这些实验是脱离操作系统的 HARDWARE , 通过此类实验可以了解和学习 ARM 硬件的架构和软件的启动过程、运行过程,真正理解ARM 芯片的应用。实验一 ADS1.2 开发环境创建与简要介绍一、实验目的1. 熟悉 ADS1.2 开发环境,正确使用仿真调试电缆进行编译、下载、调试。实验 内容1. 学习 ADS1.2 开发环境实验设备1. EL-ARM-830 教学实验箱, PentiumII 以上的 PC 机,仿真调试电 缆。2. PC 操作系统 WIN98 或 WIN2000 或 WINXP , ADS1.2 集成开发环境,仿真调试电缆驱动程序四、实验步骤1. ADS1.2 下建立工程1. 运行 ADS1.2 集成开发环境( CodeWarrior for ARM DeveloperSuite ) , 点击 File|New, 在 New 对话框中, 选择 Project 栏,其中共有 7 项, ARM Executable Image 是 ARM 的通用模板。选中它即可生成ARM 的执行文件。同时,如图 2-1-1图 2-1-1还要在, Project name 栏中输入项目的名称,以及在Location中输入其存放的位置。按确定保存项目。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 确定。这是为生成可执行的代码的初始开关。在 Architecture4. 在如图 2-1-5 中, 点击 ARM Assembleror Processer图 2-1-5栏中选 ARM920T 。这是要编译的 CPU 核。5. 在如图 2-1-6 中,点击 ARM C Compliler ,在 Architectureor 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 中运行,则可在 0x30000000 0x33ffffff 中选值, 这是 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 处填写程序入口的起始段标号。它的作用是通知编译器,整个项目的开始运行,是从该段开始的。图 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软件安装的目录下的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 Group ,创建文件夹,然后把文件移入文件夹内。读者可根据自己习惯,更改Edit|Preference 窗口内关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。如图 2-1-12 。图 2-1-122. ADS1.2 下仿真、调试在 ADS1.2 下进行仿真调试, 首先需要一根仿真调试电缆。 其驱动程序的安装和使用在光盘中的 实验软件 ARM9_RDI 中,里面有相关的文档。在连上调试电缆后,给实验箱上电,打开调试软件AXD Debugger 。点击 File|load image 加载文件实验程序 实验一 ADSADS_data目录下)。打开超级终端,设置其参数为:波特率为115200, 数据位数 8 ,奇偶校验无,停止位无1 ,数据流控无。点击全速运行,出现图 2-1-13 的界面:图 2-1-13在最后介绍调试按钮,上图, 左起第一个是全速运行, 第二个是停止运行, 第三个跳入函数内部,第四个单步执行,第五个跳出函数。到此,开发环境就全部介绍完了,这是ARM 的开发基础,希望你有所收获。实验二 基于 ARM 的汇编语言程序设计简介、实验目的1. 了解 ARM 汇编语言的基本框架,学会使用 ARM 的汇编语言编程、实验内容1. 用汇编语言编写一个简单的应用程序、实验设备1. EL-ARM-830 教学实验箱, PentiumII 以上的 PC 机,仿真调试电缆,串口电缆。2. PC 操作系统 WIN98 或 WIN2000 或 WINXP , ADS1.2 集成开发环境,仿真调试驱动程序四、汇编语言简介1. ARM 汇编的一些简要的书写规范ARM 汇编中,所有标号必须在一行的顶格书写,其后面不要添加“: ” ,而所有指令均不能顶格书写。 ARM 汇编对标识符的大小写敏感, 书写标号及指令时字母大小写要一致。 在 ARM 汇编中, ARM指令、 伪指令、 寄存器名等可以全部大写或者全部小写, 但不要大小写混合使用。注释使用“; ”号,注释的内容由“; ”号起到此行结束,注释可以在一行的顶格书写。详细 的汇编语句及规范请参照 ARM 汇编的相关书籍、 文档, 也可参照我们提供的文档 。2. ARM 汇编语言程序的基本结构在 ARM 汇编语言程序中, 是以程序段为单位来组织代码。 段是相对独立的指令或数据序列, 具有特定的名称。 段可以分为代码段的 和数据段, 代码段的内容为执行代码, 数据段存放代码运行时所需 一个汇编程序至少应该有一个代码段, 当程序较长时, 可 以分割为多个代码段和数据段, 多个段在程序编译链接时最终形成一个可执行文件。可执行映像文件通常由以下几部分构成: 一个或多个代码段,代码段为只读属性。 零个或多个包含初始化数据的数据段,数据段的属性为可读写。 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。链接器根据系统默认或用户设定的规则, 将各个段安排在存储器中的相应位置。源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。3. 简单的小例子下面是一个代码段的小例子AREA Init , CODE , READONLYENTRYLDRR0,=0x3FF5000LDRR1,0x0fSTRR1,R0LDRR0,=0x3F50008LDRR1, 0x1STR R1, R0 END 在汇编程序中,用 AREA 指令定义一个段,并说明定义段的相关 属性, 本例中定义了一个名为 Init 的代码段, 属性为只读。 ENTRY 伪指令标识程序的入口,程序的末尾为 END 指令,该伪指令告诉 编译器源文件的结束, 每一个汇编文件都要以 END 结束。 下面是一个数据段的小例子AREA DataArea, DATA, NOINIT, ALIGN=2 DISPBUFSPACE 200RCVBUF SPACE 200 DATA 为数据段的标识。 五、实验步骤 1. 本实验仅使用实验教学系统的 CPU 板,串口。在进行本实验时,LCD 电源开关、音频的左右声道开关、 AD 通道选择开关、触摸屏中断选 择开关等 均应处在关闭状态。2 在 PC 机并口和实验箱的 CPU 板上的 JTAG 接口之间, 连接仿真调试电缆,以及串口间连接公/ 母接头串口线。3 检查连接是否可靠,可靠后,接入电源线,系统上电。4 打开 ADS1.2 开发环境, 从里面打开 实验程序实验二 asm.mcp 项目文件,进行编译。5 编 译 通 过 后 , 进 入 ADS1.2 调 试 界 面 , 加 载 实 验 程 序实验二 asm_DataDebug 中的映象文件程序映像asm.axf 。6打开超级终端,配置波特率为115200 ,校验位无,数据位为 8 ,停止位为 1 。 之后, 在 ADS 调试环境下全速运行映象文件, 应出现图 2-2-1界面:图 2-2-1本程序连续发送了 128 个字节的 ASCII 字符。下面分析一下程序的源码。在 UART 前的部分为系统的初始化,这在后边BOOTLOADER 的章节里,要详细介绍。 UART 后的程序为主程序,在程序中找到下面这部分的代码,;/ 呼叫主应用程序b UARTUARTldr r0, =GPHCON ;/ 设置 GPIO(RxD0,TxD0 引脚 )ldr r1, =0x2afaaastr r1, r0ldr r0, =GPHUPldr r1, =0x7ffstr r1, r0 ;/GPH10:0 禁止上拉ldr r0, =UFCON0 ;/ 禁用 FIFOldr r1, =0x0str r1, r0ldr r0, =UMCON0;/ 禁用 AFCldr r1, =0x0 str r1, r0ldr r0, =ULCON0;/ 设置线寄存器ldr r1, =0x3; / 正常模式 ,无奇偶校验,
展开阅读全文