嵌入式微处理器结构与应用实验指导书-11.10.24

上传人:细水****9 文档编号:69567056 上传时间:2022-04-05 格式:DOC 页数:53 大小:8.35MB
返回 下载 相关 举报
嵌入式微处理器结构与应用实验指导书-11.10.24_第1页
第1页 / 共53页
嵌入式微处理器结构与应用实验指导书-11.10.24_第2页
第2页 / 共53页
嵌入式微处理器结构与应用实验指导书-11.10.24_第3页
第3页 / 共53页
点击查看更多>>
资源描述
目 录目 录- 1 -第一章 嵌入式实验系统的资源介绍- 2 -第二章 基于ARM系统资源的实验- 19 -实验一 ARM ADS1.2开发环境创建与简要介绍- 20 -实验二 基于ARM的汇编语言程序设计- 28 -实验三 基于ARM的C语言程序设计- 34 -实验四 基于ARM的硬件BOOT程序的基本设计- 39 -实验五 ARM的I/O接口实验- 44 -实验六 ARM的中断实验- 50 - 第一章 嵌入式实验系统的资源介绍ARM实验箱硬件资源概述本实验所采用的实验系统采用了目前在国内普遍认同的ARM920T核,32位微处理器,在实验板上有丰富的外围扩展资源(数字、模拟信号发生器,数字量IO输入输出,语音编解码、控制对象、人机接口等单元),可以完成ARM的基础实验、算法实验、控制对象实验和数据通信实验、以太网实验。图1-1-1 ARM9嵌入式实验系统的功能框图1.1 实验系统的硬件资源总揽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; 步进电机单元:两相四拍式,步距角1.8,0.1安; 直流电机单元:有刷; 温度控制单元:集成温控模块; 信号源单元: 波形三种,频率20-120KHz,三路输出; 标准键盘及PS2鼠标接口; 标准的IDE硬盘接口; 达盛公司的Tech_V总线接口; 调试接口: 20针JTAG; CPLD单元; 电源模块单元。1.2 核心板的资源介绍1.核心板的硬件资源(ARM920T核)在核心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的运行模式,选择NCON(CPU引脚)与3Step、4Step连接RESET复位键系统复位按键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表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的相关引脚直接控制, CPU分配给它的地址空间为0x0000 00000x01ff ffff。启动代码部分则放在从0x0000 0000开始的地址空间内。系统将CPU的引脚OM1:0设置成00b,当核心板上电复位时,系统首先将Nand_Flash开始的04K的程序映射到SteppingStone区,然后从那里开始执行。Nand_Flash可以存放数据和程序,但需要特定的指令进行读写。3)同步动态存储器单元该存储单元在板卡上标号为HY57V561620。选用两片8MB字节的 HY57V561620,32位数据总线。片选NSCS6接两片HY57V561620单元作为片选信号,CPU分配给这两片HY57V561620单元的地址空间分别为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,选用了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 - 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、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前JTAG接口的连接有两种标准,即14针接口和20针接口,EL-ARM-820核心板上使用的是20针接口。接口定义见表1-6。引 脚名 称描 述1VTref目标板参考电压,接电源2VCC接电源3nTRST测试系统复位信号4、6、8、10、12、14、16、18、20GND接地5TDI测试数据串行输入7TMS测试模式选择9TCK测试时钟11RTCK测试时钟返回信号13TDO测试数据串行输出15nRESET目标系统复位信号17、19NC未连接表1-6在核心板上,JTAG的第1脚用一黄色的方框标注,当串口、USB口、网络口向左摆放时,第1脚下面的管脚为第2脚,它左面的管脚依次为3,5,19;第2脚左面的管脚依次为4,6,20。1.3 实验箱底板的资源介绍1. 概述实验箱底板上的资源丰富,具体的实验单元有:LCD模块,触摸屏模块,语音单元模块,串口2模块,USB设备模块,电源模块,模拟输入输出模块,键盘模块,CPLD烧写模块,键盘数码管模块,SD(MMC)卡模块,A/D转换模块,步进电机模块,直流电机模块,温控单元模块,信号源发生器模块。以及PS2鼠标键盘接口,IDE硬盘接口,Tech_V总线接口等等。实验箱上的底板详细具体资源见表1-7。单元名称关键控制芯片功能备注LCD模块S3C2410内置LCD控制器液晶显示320X240,5.7寸,256色触摸屏模块ADS7843完成触摸响应ARM9实验不使用改芯片,使用CPU集成的控制器语音模块UDA1341TS完成语音模拟信号的采集采样率最高48KHz;串口1模块MAX202CPE完成与PC机的串行数据的转换最高串行通信率为115200 bps.USB设备模块PDIUSBD12完成PC机与实验箱的USB通信控制USB1.1键盘数码管模块HD7279A中断请求,数码管显示4X4键,8位数码管模拟输入输出模块74LS273,244完成数据锁存,数据发送8位数据SD(MMC)卡模块W86L388DSD(MMC)卡命令的发送,数据的读取最高时钟25MHzA/D转换模块S3C2410内置A/D转换器采集模拟信号10位8路直流电机模块完成PID算法有刷步进电机模块步进电机的认识步距角1.8两相四拍温度控制模块完成PID算法自然降温信号源模块自动产生信号源三种波形,方波,正弦波,三角波,频率0120KHz电源模块5V,+12V,-12VPS2鼠标键盘接口硬件扩展口(有扩展板)IDE硬盘接口留有扩展接口Tech_V总线接口留有扩展接口,有扩展板。表1-7接下来详细介绍各模块单元。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)USB设备模块USB设备模块,采用了飞利浦的USB设备控制芯片PDIUSBD12,该芯片遵从USB1.1规范,最高通信率12Mbps,该单元位于实验箱的左下角,使用外部中断4来响应中断请求。4)串口1模块串口1模块,采用了美信的MAX202CPE芯片,通过它可以把PC的电信号转换成实验箱可以使用的信号,它的最高串行通信波特率为115200bps.5)音频模块 语音的模拟信号的编解码采用了UDA1341TS芯片。该芯片有两个串行同步变换通道、D/A转换前的差补滤波器和A/D变换后的滤波器。其他部分提供片上时序和控制功能。芯片的各种应用配置可以通过芯片的三根线,由串行通信编程来实现。主要包括:复位、节电模式、通信协议、串行时钟速率、信号采样速率、增益控制和测试模式、音质特性。最大采样速率48kb/s。 语音处理单元由UDA1341TS模块、输出功率模块组成。语音的模拟信号经过偏置和滤波处理后输入到语音的编解码芯UDA1341TS中,UDA1341TS以IIS的语音格式送入S3C2410中,S3C2410可以处理也可以不处理该信号,把它保存起来,也可用DMA控制而不经过CPU处理,直接实时的采集,然后实时的播放出去。 音频信号通过D/A转换后输出,经过一次功率放大,然后可以推动功率为0.4W的板载扬声器,也可以接耳机输出。如图1-1-3。语音处理单元原理框图 图1-1-3语音处理单元接口说明:LINE_IN:音频输入端子,可输入CD、声卡、MP3等语音信号。MIC:音频输入端子,麦克风等语音信号。SPEAKER:音频输出端子,可接耳机、音箱。语音处理单元旋钮说明:“SPEAKER_R”:逆时针旋转音量变大顺时针旋转音量变小表1-8“SPEAKER_L”:逆时针旋转音量变大顺时针旋转音量变小表1-96)LCD模块本实验系统仅选用了LCD液晶显示屏,LCD的控制器使用S3C2410的内部集成的控制器,LCD屏选用的是5.7寸,320X240像素,256色的彩屏。电源操作范围宽(2.7V to 5.5V);低功耗设计可满足产品的省电要求。 其中,可调变位器VR2用于调节LCD屏色彩的对比度,产品出厂时,已设定成在室温下较好的对比度,当因温度低或高等因素显示不正常时,可适当调节VR2到合适的色彩。一般请不要调整。“VR2”:逆时针旋转LCD屏变亮顺时针旋转LCD屏变暗表1-10“LCD_ON/OFF”按键,控制着LCD屏的电源,是电源的开关。7)触摸屏模块 S3C2410内部具有触摸屏控制器,在底板跳线是ARM9的时候,触摸屏直接与S3C2410连接,由CPU直接控制。8)SD(MMC)卡单元 SD(MMC)卡单元,采用了华邦公司的W86L388D的SD(MMC)卡的控制器,它的最高时钟率为25MHz,能够使用1线或4线传输数据及指令,它通过初始化配置能够使用MMC卡。CPU通过给其相应的寄存器中写入控制命令,来驱动它读写SD(MMC)卡,从SD(MMC)卡中读取的数据通过与CPU相连的16位数据总线,发送给CPU处理。SD(MMC)卡与CPU的是通过中断方式来进行应答的,W86L388D的中断控制器则显示SD(MMC)卡的各种中断请求,CPU只须读取其状态,就能判断对SD(MMC)卡进行如何处理。其原理如图1-1-4。D12,通信状态指示灯,D13卡识别指示灯。图1-1-49)A/D转换单元A/D转换单元,采用S3C2410内置的A/D转换器,它包含一个8路模拟输入混合器,12位模数转换。最大转换速率:100KSPS,输入电压范围:0-2.5V输入带宽: 0-100 Hz(无采样和保持电路),低的电源消耗。在本实验系统中,模拟输入信号经过降压、偏置处理后输入A/D转换器,然后转换的数字量给S3C2410处理。如图1-1-5。 图1-1-5模数单元原理框图模数转换单元拨码开关说明见表1-13:SW3:拨码开关码位备注1ON, 采集的模拟信号从A/D转换器的第1路输入;OFF, A/D的第1路输入悬空,缺省设置;2ON, 采集的模拟信号从A/D转换器的第2路输入;OFF, A/D的第2路输入悬空,缺省设置;3ON, 采集的模拟信号从A/D转换器的第3路输入;OFF, A/D的第3路输入悬空,缺省设置;4ON, 采集的模拟信号从A/D转换器的第4路输入;OFF, A/D的第4路输入悬空,缺省设置;5ON, 采集的模拟信号从A/D转换器的第5路输入;OFF, A/D的第5路输入悬空,缺省设置;6ON, 采集的模拟信号从A/D转换器的第6路输入;OFF, A/D的第6路输入悬空,缺省设置;7ON, 采集的模拟信号从A/D转换器的第7路输入;OFF, A/D的第7路输入悬空,缺省设置;8ON, 采集的模拟信号从A/D转换器的第8路输入;OFF, A/D的第8路输入悬空,缺省设置;表1-11 SW5:拨码开关码位备注1ON, 信号源单元的SOUT1输出给A/D转换器;OFF, A/D输入悬空,缺省设置;2ON, 信号源单元的SOUT2输出给A/D转换器;OFF, A/D输入悬空,缺省设置;3ON, 温控单元输出给AD;OFF, AD输入悬空,缺省设置;6ON, 信号源单元的SOUT1_1混频信号输出给A/D转换器;OFF, A/D输入悬空,缺省设置;表1-12拨码开关其它设置状态为非法状态。10)信号源单元频率、幅值可调双路三角波、方波和正弦波产生电路采用两片8038信号发生器,输出频率范围20100KHz,幅值范围-10V+10V。输出波形、频率范围可通过波段开关来选择。频率、幅值可独立调节。两路输出信号可以经过加法器进行信号模拟处理和混叠,作为信号滤波处理的混频信号源。混叠后的信号从信号源1输出。图1-1-6 ICL8038原理框图图1-1-7 信号源单元原理框图信号源单元波段开关说明:波形选择波段开关拨到底板丝印的相应位置选择对应的波形(正弦、三角、方波),频率选择波段开关拨到底板丝印的相应位置选择对应的频率范围(02K、2K10K、10K120K)。信号源单元电位器说明:“频率调节”顺时针变大逆时针变小表1-13“幅值调节”逆时针变大顺时针变小表1-14SOUT1:信号源1输出 SOUT2:信号源2输出 ADIN:外部接入信号源11)温度控制单元由温度信号采集单元、加热信号驱动单元、模拟温箱加热控制电路组成。温度信号采集单元电路的热敏电阻的阻值随温度的变化而变化,经运放处理,输出一个电压变化(逐渐减小)的温度信号给系统板的A/D采集输入端;加热信号驱动单元将系统板送来的加热信号分两路处理:一路放大后驱动加热指示二极管发光;另一路经隔离后驱动可控硅导通。模拟温箱加热控制电路由加热信号隔离电路、AC220V控制电路(可控硅)输出电路组成。温度控制单元拨码开关说明:S5:拨码开关码位备注1ON, +5V电源给温控单元;OFF,断开+5V电源,缺省设置2ON, +12V电源给温控单元;OFF,断开+12V电源,缺省设置表1-15TEMP:温度控制单元反馈电压输出AGND:地LED12:+12V电源指示灯。12)步进电机单元步进电机多为永磁感应式,有两相、四相、六相等多种,实验所用的电机为两相四拍式,通过对每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。脉冲信号是有DSP的IO端口(地址8001H)的低四位提供。位0对应“D”,位1对应“C”,位2对应“B”,位3对应“A”; 如下图所示,电机每相电流为0.2A,相电压为5V,两相四拍的通电顺序如下表所示:CDAB图1-1-8 相顺序ABCD01010101102010131001表1-16注: 顺时针方向旋转通电顺序为0-1-2-3; 逆时针方向旋转通电顺序为3-2-1-0;步进电机单元拨码开关说明:S23:拨码开关码位备注1ON, +5V电源给步进电机单元;OFF,断开+5V电源,缺省设置2ON, +12V电源给直流电机单元;OFF,断开+12V电源,缺省设置表1-17LED2: +12V电源指示灯;LED11:+5V电源指示灯;13)直流电机单元该单元由电压调整、驱动电路、速度检测反馈电路组成。由系统板送来的电压信号与可调节的基准电压经加法运算后,输出驱动直流电机运行;速度检测、反馈电路由于电机同轴转的转盘上的强力磁钢、霍尔磁感应放大器、单周期速度信号采集器组成,当与电机同轴运行的转盘上的磁钢与霍尔片正对时,霍尔片输出负电压,经整形、放大,供系统采集。SW1:拨码开关码位备注1ON, ARM利用TOU2控制直流电机的脉冲信号;OFF,关闭控制信号,缺省设置2ON, DSP利用的脉冲信号控制直流电机;OFF, 关闭控制信号,缺省设置表1-18CONTROL:直流电机控制脉冲输入端LED1:中断反馈指示灯;注:两个控制信号只能则其一使用,不能同时使用。另外,把SW2开关的2拨到“ON”状态。14)CPLD单元由于实验箱上的资源众多,几乎每一个设备资源都要使用片选信号或中断信号或一些串口的信号,以及一些寄存器的地址等等,这样一来,S3C2410的I/O资源是不能满足的,因此该实验箱通过加入了一片CPLD芯片,用来完成各资源所需的地址译码,片选信号,以及一些高低电平的模拟。CPLD单元使用S3C2410的片选是NGCS4,地址是0x200000000x28000000;由于底板上大多的资源都通过CPLD的地址译码,进行片选电平的产生,以及模拟高低电平的产生,所以,应给CPLD的地址里写入相应的数据以产生相应的信号。表1-21列出了底板中所需信号的地址。#define clrcs1 (*(volatile unsigned *)0x20000000) = 0x01;#define setcs1 (*(volatile unsigned *)0x20000004) = 0x02;利用宏定义来代替置高、置低;给相应的地址里写1,表示该CPLD的相应引脚输出低电平,给相应的地址里写2,表示该CPLD的相应引脚输出高电平。有的地址需要写入8位数据。模块名称相应说明HD7279:0x20000004 0x05 HD7279的DATA PIN方向为输入0x20000004 0x06 HD7279的DATA PIN方向为输出0x20000004 0x01 HD7279的CS有效,选择HD72790x20000004 0x02 HD7279的CS无效,释放HD7279SD Card:#define rCMD_PIPE_REG (*(volatile unsigned short*)0x20000006)#define rSTA_REG (*(volatile unsigned short*)0x20000008)#define rCON_REG (*(volatile unsigned short*)0x20000008)#define rRCE_DAT_BUF (*(volatile unsigned short*)0x2000000a)#define rTRA_DAT_BUF (*(volatile unsigned short*)0x2000000a)#define rINT_STA_REG (*(volatile unsigned short*)0x2000000c)#define rINT_ENA_REG (*(volatile unsigned short*)0x2000000c)#define rGPIO_DAT_REG (*(volatile unsigned short*)0x2000000e)#define rGPIO_CON_REG (*(volatile unsigned short*)0x2000000e)#define rGPIO_INT_STA_REG (*(volatile unsigned short*)0x20000010)#define rGPIO_INT_ENA_REG (*(volatile unsigned short*)0x20000010)#define rIND_ADD_REG (*(volatile unsigned short*)0x20000012)#define rIND_DAT_REG (*(volatile unsigned short*)0x20000014)模拟输入输出:74ls244地址: 0x2000001674ls273地址: 0x20000000UDA1341:0x20000018 0x03 L3MODE置00x20000018 0x04 L3MODE置10x20000018 0x01 L3CLOCK置00x20000018 0x02 L3CLOCK置1表1-19具体的应用,请详见源码程序。15)其它接口说明电源单元:为系统提供+5V、+12V、-12V、+3.3V电源,其中标号名称功能LED15LED灯+3.3V电源指示LED16LED灯+5V电源指示LED17LED灯+12V电源指示LED18LED灯-12V电源指示表1-20 SW2:拨码开关,扩展中断选择 码位功能1-ONEXT中断2引出2-ONEXT中断2用于直流电机的中断请求3-ONEXT中断3引出4-ONEXT中断3用于PS2键盘鼠标的中断请求表1-21 在底板上,留出了两列插孔,它们是供外部扩展所用。具体功能见表1-24。 标号功能IICSCLS3C2410的IIC控制时钟引出IICSDAS3C2410的IIC数据线引出CS1CPLD的第100管脚的引出CS2CPLD的第77管脚的引出EXINT2S3C2410的外部中断请求2管脚引出EXINT3S3C2410的外部中断请求3管脚引出IO-1CPLD的第52管脚的引出IO-2CPLD的第97管脚的引出IOC-3S3C2410的TOUT1管脚引出,J4的13IOC-4S3C2410的TOUT3管脚引出,J4的45AIN3采集的模拟信号从第3路输出AIN2采集的模拟信号从第2路输出表1-22在信号扩展单元处,又扩展了PS2键盘鼠标接口,还有IDE硬盘接口。在此对底板上的设备所使用的中断作一总结。见表1-25。设备使用的中断网卡外部中断EXINT2直流电机外部中断EXINT0PS2外部中断EXINT3USB设备外部中断EXINT44X4键盘外部中断EXINT5SD(MMC)卡外部中断EXINT6IDE硬盘外部中断EXINT7表1-23 中断一览表SW4:拨码开关,ARM系列的CPU板卡选择。 功能 1 2ARM7offoffARM9OnoffARM10OffonARM11Onon表1-24第二章 基于ARM系统资源的实验 当进行嵌入式系统开发时,选择合适的开发工具可以加快开发进度、节省开发成本。因此一套含有编辑软件、编译软件、汇编软件、连接软件、调试软件、工程管理及函数库的集成开发环境(IDE)是必不可少的。当今在ARM领域,被多数嵌入式开发人员使用的集成开发环境有KEIL 和 ARM ADS,其中ARM ADS为ARM公司推出的新一代ARM集成开发工具,我们使用的版本为ADS1.2。这两种开发工具都是为了方便用户开发使用ARM内核芯片而推出的,目前被广泛应用。这两种开发工具各有自己的优点和缺点,ADS调试不需要仿真器,只要有一跟JTAG调试电缆就可以了,但是它在调试的时候占用CPU的资源,调试的稳定性稍差,成本低,比较适合学生学习使用。ADS1.2在仿真时要外接仿真器,其在调试时不占用CPU的资源,稳定性好,但是成本高,适合用于科研教学和嵌入式的产品开发。以下的这些实验是脱离操作系统的硬件实验,通过此类实验可以了解和学习ARM硬件的架构和软件的启动过程、运行过程,真正理解ARM芯片的应用。实验一 ARM ADS1.2开发环境创建与简要介绍一、实验目的1. 熟悉ADS1.2开发环境,正确应用并口仿真器进行编译、下载、调试。二、实验内容1. 学习ADS1.2开发环境三、实验设备1. EL-ARM-820教学实验箱,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中输入其存放的位置。按确定保存项目。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-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中运行,则可在0x300000000x33ffffff中选值,这是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下进行仿真调试,打开调试软件AXD Debugger。点击File|load image 加载文件ADS.axf(实验程序硬件实验ADS实验一ADSADS_data目录下)。打开超级终端,设置其参数为:波特率为115200,数据位数8,奇偶校验无,停止位无1,数据流控无。点击全速运行,出现图2-1-15的界面:图2-1-15在最后介绍调试按钮,上图,左起第一个是全速运行,第二个是停止运行,第三个跳入函数内部,第四个单步执行,第五个跳出函数。到此,开发环境就全部介绍完了,这是 ARM的开发基础,希望你有所收获。实验二 基于ARM的汇编语言程序设计一、实验目的1. 了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程二、实验内容1. 用汇编语言编写一个简单的应用程序,实现让实验板上的两个小灯交替闪烁。三、实验设备1. EL-ARM-820教学实验箱,PentiumII以上的PC机,JTAG仿真器,串口电缆。2. PC操作系统WIN98或WIN2000或WINXP, ADS1.2集成开发环境。四、汇编语言简介1. ARM汇编的一些简要的书写规范ARM汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。ARM汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。在ARM汇编中,ARM指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行的顶格书写。详细的汇编语句及规范请参照ARM汇编的相关书籍、文档。2. ARM汇编语言程序的基本结构在ARM汇编语言程序中,是以程序段为单位来组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。可执行映像文件通常由以下几部分构成: 一个或多个代码段,代码段为只读属性。 零个或多个包含初始化数据的数据段,数据段的属性为可读写。 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。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=2DISPBUFSPACE200RCVBUFSPACE200DATA为数据段的标识。五、实验原理S3C2410 CPU 共有117个多功能复用输入输出口,分为8组端口:l 4个16位的I/O端口 (PORT C、PORT D、PORT E、PORT G)l 2个11位的I/O端口 (PORT B 和PORT H)l 1个8位的I/O端口(PORT F)l 1个23位的I/O端口(PORT A)这些通用的GPI/O接口,是可配置的, PORTA除功能口外,它们仅用作输出使用,剩下的PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。配置这些端口,是通过一些寄存器来实现的,这些寄存器均有各自的地址,位长32位。往该地址中写入相应的数据,即可实现功能及数据配置。GPACON (0x56000000) /Port A controlGPADAT (0x56000004) /Port A dataGPBCON (0x56000010) /Port B controlGPBDAT (0x56000014) /Port B dataGPBUP (0x56000018) /Pull-up control BGPCCON (0x56000020) /Port C controlGPCDAT (0x56000024) /Port C dataGPCUP (0x56000028) /Pull-up control CGPDCON (0x56000030) /Port D controlGPDDAT (0x56000034) /Port D dataGPDUP (0x56000038) /Pull-up control DGPECON (0x56000040) /Port E controlGPEDAT (0x56000044) /Port E dataGPEUP (0x56000048) /Pull-up control EGPFCON (0x56000050) /Port F controlGPFDAT (0x56000054) /Port F dataGPFUP (0x56000058) /Pull-up control FGPGCON (0x56000060) /Port G controlGPGDAT (0x56000064) /Port G dataGPGUP (0x56000068) /Pull-up control GGPHCON (0x56000070) /Port H controlGPHDAT (0x56000074) /Port H dataGPHUP (0x56000078) /Pull-up control H现用G口、H口举例说明。对于G口如表2-5-1、表2-5-2、表2-5-3,表2-5-1表2-5-2表2-5-3也就是说,在地址0x0x56000060中,给32位的每一位赋值,那么,在CPU的管脚上就定义了管脚的功能值。当G口某管脚配置成输出端口,则在PDATG对应的地址中的对应位上,写入1,则该管脚输出为高电平,写入0,则该管脚输出为低电平。若配置为功能管脚,则该管脚变成具体的功能脚。对于H口见表2-5-4、表2-5-5、表2-5-6、表2-5-7表2-5-4表2-5-5表2-5-6表2-5-7也就是说,在地址0x56000070中,给32位的每一位赋值,那么,在CPU的管脚上就定义了管脚的功能值。当H口某管脚配置成输入端口,则在GPHDAT对应的地址中的对应位上,得到1,则该管脚的输入为高电平,得到0,则该管脚的输入为低电平。当H口某管脚配置成输出端口,则在GPGDAT对应的地址中的对应位上,写入1,则该管脚输出为高电平,写入0,则该管脚输出为低电平。若配置为功能管脚,则该管脚变成具体的功能脚。其他端口配置请参见PDF文挡。 本实验开发版上两个小灯分别接至GPG8与GPG9,因此只要对其相应的寄存器进 进行赋值然后用循环便可实现预定功能。五、实验步骤1. 本实验仅使用实验教学系统的CPU板,串口。在进行本实验时,LCD电源开关、音频的左右声道开关、直流电机电源开关、步进电机电源开关、温控单元的电源开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。2在PC机并口和实验箱的CPU板上的JTAG接口之间,连接多功能仿真器,以及串口间连接公/母接头串口线。3检查连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开实验程序 asm.mcp项目文件,查看debug setting中各项的含义,并参照实验一,理解各项的意思。5.编写主程序代码并进行编译。6编译通过后,点击进入AXD界面,加载asm_DataDebug中的映象文件程序映像asm.axf。7全速运行便可出现预定的实验现象 实验三 基于ARM的C语言程序设计一、实验目的1.了解ARM C语言的基本框架,学会使用ARM的C语言编程二、实验内容1. 用C语言编写一个简单的应用程序,实现串口发送数据,并能在超级终端显示。三、实验设备1. EL-ARM-820教学实验箱,PentiumII以上的PC机,JTAG,串口电缆。2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,四、ARM C语言简介与使用规则1. ARM使用C语言编程是大势所趋在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且不易移植。由于ARM的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C语言的特点充分发挥,使得应用程序的开发时间大为缩短,代码的移植十分方便,程序的重复使用率提高,程序架构清晰易懂,管理较为容易等等。因此,C语言的在ARM编程中具有重要地位。2. ARM C语言程序的基本规则在ARM程序的开发中,需要大量读写硬件寄存器,并且尽量缩短程序的执行时间的代码一般使用汇编语言来编写,比如ARM的启动代码,ARM的操作系统的移植代码等,除此之外,绝大多数代码可以使用C语言来完成。C语言使用的是标准的C语言,ARM的开发环境实际上就是嵌入了一个C语言的集成开发环境,只不过这个开发环境和ARM的硬件紧密相关。在使用C语言时,要用到和汇编语言的混合编程。当汇编代码较为简洁,则可使用直接内嵌汇编的方法,否则,使用将汇编文件以文件的形式加入项目当中,通过ATPCS的规定与C程序相互调用与访问。ATPCS,就是ARM、Thumb的过程调用标准(ARM/Thumb Procedure Call Standard),它规定了一些子程序间调用的基本规则。如寄存器的使用规则,堆栈的使用规则,参数的传递规则等。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 其他分类 > 其它学术


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!