实验一:嵌入式实验开发环境熟悉实验一实验目的了解本课程使用的嵌入式开发平台UP-NetARM2410-S的基本组成、配置熟悉ADS1.2开发环境学会ARM仿真器的使用使用ADS编译、下载、调试并跟踪一段已有的程序了解嵌入式开发的基本思想和过程。二实验内容本次实验要求自己配置好实验环境;然后使用ADS集成开发环境,新建一个简单的工程文件,并编译这个工程文件。学习ARM仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。三实验设备及工具硬件:ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T的JTAG仿真器、串口线。软件:PC机操作系统Win2000或WinXP、ARMADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。四基础知识1嵌入式开发平台硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-NetARM3000和UP-NetARM2410-S实验仪器。UP-NetARM3000的CPU为ARM7TDMI内核的三星S3C44B0X01芯片,由于没有MMU(内存管理单元)只能运行uClinux,UP-NetARM2410-S的CPU为ARM920T内核的三星S3c2410芯片,由于有MMU可以运行标准的ARM-LINUX内核,本实验室配备的实验开发平台就是UP-NetARM2410-S。现对实验平台做个简要介绍,其硬件配置资源如表1所示:表1UP-NetARM2410-S的硬件配置配置名称型号说明CPUARM920T结构芯片三星S3c2410X工作频率203MHzFLASHSAMSUNGK9F120864MNANDSDRAMHY57V561620AT-H32M×2=64MEtherNet网卡AX88796两片,10/100M自适应LCDLQ080V3DG018寸16bitTFT触摸屏SX-080-W4R-FBFM7843驱动LEDZLG7290四个共阴极LEDUSB接口4个HOST/1个DEVICE由AT43301构成USBHUBUART/IrDA2个RS232,1个RS485,1个IrDA从处理器的UART2引出AD由S3C2410芯片引出3个电位器控制输入AUDIOIIS总线,UDA1341芯片44.1KHz音频扩展卡插槽168PinEXPORT总线直接扩展GPS_GPRS扩展板SIMCOM的SIM100-E模块支持双道语音通信IDE/CF卡插座笔记本硬盘,CF卡PCMCIA和SD卡插座PCMCIA型号为DWL-650PS2PC键盘和鼠标由ATMEGA8单片机控制IC卡座AT24CXX系列由ATMEGA8单片机控制DC/STEP电机DC由PWM控制,STEP由74HC573控制CANBUS由MCP2510和TJA1050构成DoubleDAMAX504两个10位DAC端口调试接口JTAG14针、20针UP-NetARM2410-S实验开发平台的外观图如图1所示:图1UP-NetARM2410-S该实验平台的各模块功能如图2所示:图2UP-NetARM2410-S与微机连接示意图:图3UP-NetARM2410-S的连接示意图该硬件平台的基本架构如图4所示:图4UP-NetARM2410-S的架构示意图(1)核心板CPU:ARM920T结构芯片,工作频率202MHz,SAMSUNG公司的S3c2410XFLASH:64MNAND型,SAMSUNG的K9F1208RAM:64MBSDRAM,HY57V561620AT-H200管脚精密插座图5UP-NetARM2410-S的核心板S3c2410芯片介绍:S3c2410X芯片集成了大量的功能单元,包括:1).内部1.8V,存储器3.3V,外部IO3.3V,16KB数据CACH,16KB指令CACH,MMU;2).内置外部存储器控制器(SDRAM控制和芯片选择逻辑);3).LCD控制器(最高4K色STN和256K彩色TFT),一个LCD专用DMA;4).4路带外部请求线的DMA;5).三个通用异步串行端口(IrDA1.0,16-ByteTxFIFO,and16-ByteRxFIFO),2通道SPI;6).一个多主IIC总线,一个IIS总线控制器;7).SD主接口版本1.0和多媒体卡协议版本2.11兼容;8).2个USBHOST,一个USBDEVICE(VER1.1);9).4个PWM定时器和一个内部定时器;10).看门狗定时器;11).117个通用IO;12).24个外部中断;13).电源控制模式:标准、慢速、休眠、掉电;14).8通道10位ADC和触摸屏接口;15).带日历功能的实时时钟;16).芯片内置PLL;17).设计用于手持设备和通用嵌入式系统;18).16/32位RISC体系结构,使用ARM920TCPU核的强大指令集;19).ARM带MMU的先进的体系结构支持WINCE、EPOC32、LINUX;20).指令缓存(cache)、数据缓存、写缓冲和物理地址TAGRAM,减小了对主存储器带宽和性能的影响;21).ARM920TCPU核支持ARM调试的体系结构;22).内部先进的位控制器总线(AMBA2.0,AHB/APB).图6S3c2410X芯片芯片封装如下图所示:图7FBGA封装(2)主板USB口:包括一个USBDevice接口和4个USBHost接口。前者直接来自处理器,后者是处理器的Host接口经过由AT43301构成的USBHUB电路扩展出来的4个Host接口;jtag调试口:20针标准口,14针简易口;AUDIO:44.1KHz音频,采用UDA1341芯片构成,可放音和录音,通过IIS总线连接到处理器,具有功放电路驱动喇叭,板载MIC和音频IO插座;2410-S平台上通过一片ATMEGA8单片机作为控制器,驱动PS2接口、IC卡接口和板载KEYPAD。ATMEGA8单片机通过IIC总线和ARM处理器连接;LED:四个共阴极LED,由通过IIC总线扩展连接的ZLG7290控制;AD:3个电位器控制输入,8个通道经过跳线设置可全部作为外部模拟电压输入,由S3C2410芯片管脚引出;DC/STEP电机:直流电机信号来自PWM输出,步进电机信号来自EXIO扩展,EXIO扩展电路由74HC573构成,分配专用地址段,和IDE接口在同一BANK;IDE/CF卡插座:类似于计算机主板上一个IDE接口上的主从两个IDE设备一样,IDE接口直接出自扩展总线,由软件完成驱动控制;SD卡插座:直接来自s3c2410的SD控制器;CAN总线:由控制器MCP2510和驱动器TJA1050构成,SPI总线接口;DA电路:由两片MAX504组成,提供两路10bit数模转换输出,也是SPI总线接口;串口:包括两个RS232接口,处理器的UART0和UART1经过MAX3232芯片电压转换后用DB9插座输出;168Pin的扩展插座:该插座和计算机的内存条插座规格一致,用户可以据此设计合适的扩展板。扩展槽上包含扩展总线的所有信号,可复用的系统资源以及开发平台尚未使用的空置资源。以太网卡:包括两个相同的网卡电路,芯片型号AX88796,10M/100M自适应。LCD:8寸16bitTFT,640X480分辨率,型号是LQ080V3DG01.S3C2410处理器内含LCD控制器,这使得LCD部分的电路非常简单,LCD控制器的信号线经过驱动电路后即可连接LCD模块;触摸屏:采用ADS7843完成AD转换,通过SPI总线和处理器接口。同样为了兼容性,平台上设计了多个触摸屏接插位置,并保留了依靠2410CPUAD单元的另一套触摸屏接口方案。(3)显示装置LCD:8寸16bitTFT,640X480分辨率,型号是LQ080V3DG01.S3C2410处理器内含LCD控制器,这使得LCD部分的电路非常简单,LCD控制器的信号线经过驱动电路后即可连接LCD模块;触摸屏:采用ADS7843完成AD转换,通过SPI总线和处理器接口。同样为了兼容性,平台上设计了多个触摸屏接插位置,并保留了依靠2410CPUAD单元的另一套触摸屏接口方案。2嵌入式系统开发流程图8嵌入式系统开发框架五实验过程1超级终端的建立思考:建立超级终端的目的是什么?(1)、运行Windows系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端(请见图9)。如图10所示,如果要求输入区号、电话号码等信息请随意输入;出现如图11所示对话框时,为所建超级终端取名为arm(也可以选择其它的名字),可以为其选一个图标,单击“确定”按钮。请大家注意:在windowsxp操作系统下,当初次建立超级终端的时候,会出现如下对话框:图9可能的选择图10创建超级终端图11创建超级终端(2)、在接下来的对话框中选择ARM开发平台实际连接的PC机串口(如COM1)如图12所示,按确定后出现如图13所示的属性对话框,设置通信的格式和协议。这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。按确定完成设置。图12创建超级终端图13创建超级终端(3)、完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。用串口线将PC机串口和平台UART0正确连接后,就可以在超级终端上看到程序输出的信息了2JTAG安装过程JTAG(JointTestActionGroup;联合测试行动小组)是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(TestAccessPort;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-SystemProgrammable;在线编程),对FLASH等器件进行编程。JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程实现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程.在本实验将要利用JTAG多加载引导程序vivi进行烧写,所以必须安装其驱动。具体步骤如下:图14创建超级终端(1)连接电源,将5V电源线的连到UP-NETARM2410-S的电源接口;连接串口线,一端连接PC的串口,另一端连接到UP-NETARM2410-S的串口(上面的);(2)把并口线插到pc机的并口,并把并口与JTAG相连,JTAG与开发板的14针JTAG口相连,打开2410-S电源.(3)把整个GIVEIO目录拷贝到C:\WINDOWS下,并把该目录下的giveio.sys文件拷贝到c:/windows/system32/drivers下。(4)在控制面板里,选添加硬件下一步选-是我已经连接了此硬件下一步选中-添加新的硬件设备下一步选中安装我手动从列表选择的硬件下一步选择-显示所有设备选择-从磁盘安装-浏览,指定驱动为C:\WINDOWS\GIVEIO\giveio.inf文件,点击确定,安装好驱动。3利用JTAG烧写viviBootloader(引导装载器)是用于初始化目标板硬件,给嵌入式操作系统提供板上硬件资源信息,并进一步装载、引导嵌入式操作系统运行的固件。简单地说,bootloader就是在操作系统内核运行前运行地一段小程序。通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一