嵌入式实验开发环境熟悉实验.docx
《嵌入式实验开发环境熟悉实验.docx》由会员分享,可在线阅读,更多相关《嵌入式实验开发环境熟悉实验.docx(26页珍藏版)》请在冰豆网上搜索。
![嵌入式实验开发环境熟悉实验.docx](https://file1.bdocx.com/fileroot1/2023-5/25/5dc43e8e-1b79-46c7-a777-666074947499/5dc43e8e-1b79-46c7-a777-6660749474991.gif)
嵌入式实验开发环境熟悉实验
实验一:
嵌入式实验开发环境熟悉实验
一实验目的
●了解本课程使用的嵌入式开发平台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的硬件配置
配置名称
型号
说明
CPU
ARM920T结构芯片三星S3c2410X
工作频率203MHz
FLASH
SAMSUNGK9F1208
64MNAND
SDRAM
HY57V561620AT-H
32M×2=64M
EtherNet网卡
AX88796
两片,10/100M自适应
LCD
LQ080V3DG01
8寸16bitTFT
触摸屏
SX-080-W4R-FB
FM7843驱动
LED
ZLG7290
四个共阴极LED
USB接口
4个HOST/1个DEVICE
由AT43301构成USBHUB
UART/IrDA
2个RS232,1个RS485,1个IrDA
从处理器的UART2引出
AD
由S3C2410芯片引出
3个电位器控制输入
AUDIO
IIS总线,UDA1341芯片
44.1KHz音频
扩展卡插槽
168PinEXPORT
总线直接扩展
GPS_GPRS扩展板
SIMCOM的SIM100-E模块
支持双道语音通信
IDE/CF卡插座
笔记本硬盘,CF卡
PCMCIA和SD卡插座
PCMCIA型号为DWL-650
PS2
PC键盘和鼠标
由ATMEGA8单片机控制
IC卡座
AT24CXX系列
由ATMEGA8单片机控制
DC/STEP电机
DC由PWM控制,STEP由74HC573控制
CANBUS
由MCP2510和TJA1050构成
DoubleDA
MAX504
两个10位DAC端口
调试接口
JTAG
14针、20针
UP-NetARM2410-S实验开发平台的外观图如图1所示:
图1UP-NetARM2410-S
该实验平台的各模块功能如图2所示:
图2UP-NetARM2410-S
与微机连接示意图:
图3UP-NetARM2410-S的连接示意图
该硬件平台的基本架构如图4所示:
图4UP-NetARM2410-S的架构示意图
(1)核心板
●CPU:
ARM920T结构芯片,工作频率202MHz,SAMSUNG公司的S3c2410X
●FLASH:
64MNAND型,SAMSUNG的K9F1208
●RAM:
64MBSDRAM,HY57V561620AT-H
●200管脚精密插座
图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烧写vivi
Bootloader(引导装载器)是用于初始化目标板硬件,给嵌入式操作系统提供板上硬件资源信息,并进一步装载、引导嵌入式操作系统运行的固件。
简单地说,bootloader就是在操作系统内核运行前运行地一段小程序。
通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。
在嵌入式系统开发过程中,Bootloader的编写往往是设计的主要难点。
目前,Bootloader的开发通常都是基于一些开源的Bootloader(如vivi、U-Boot、Blob、ARMBoot、RedBoot等)而设计,它们在设计思路上有许多相通之处。
vivi是当前比较流行的,专门针对ARM9处理器而设计的一款Bootloader,它操作简便,同时提供了完备的命令体系。
vivi是由韩国Mizi公司开发的一种Bootloader,适合于ARM9处理器,支持S3C2410x处理器,其源代码可以在网站下载。
和所有的Bootloader一样,vivi有两种工作模式,即启动加载模式和下载模式。
当vivi处于下载模式时,它为用户提供一个命令行接口,通过该接口能使用vivi提供的一些命令集。
下面利用JTAG烧写vivi的具体步骤(同时见图13-图:
在d盘新建一目录bootloader,把sjf2410-s和要烧写的vivi拷贝到该目录下,在程序-附件-msdos下,进入该目录,运行sjf2410-s命令如下:
sjf2410-s/f:
vivi。
在此后出现的三次要求输入参数,第一次是让选择Flash,选0;第二次是选择jtag对flash的两种功能,也选0;第三次是让选择起始地址,选0;此后就等待大约3-5分钟的烧写时间,当VIVI烧写完毕后选择参数2,退出烧写。
图15烧写vivi
图16烧写vivi
图17烧写vivi
4映象文件(image)下载
(1)关闭2410-S电源,拔出JTAG;打开超级终端,先按住PC机“Space”键,然后启动2410-S电源,进入vivi>
图18image下载
(2)按照以下命令重新分区:
vivi>bonpart0128k192k1216k4288k:
m64704k(64Mflash1208)
图19image下载
回车后,超级终端会出现如下分区信息,并检查是否有坏的块。
图20image下载
(3)耐心等待片刻,等检查完flash内是否有坏块后,会在超级终端出现提示符,如下图所示。
图21image下载
(4)在提示符号下输入:
partsave,回车保存好分区.
图22image下载
(5)在vivi>后键入loadflashvivix回车,点击超级终端“传送”下拉菜单,选择”发送文件”,把引导程序vivi下载到vivi分区,保证系统掉电后还能再引导。
图23image下载
图24image下载
图25image下载
(6)在vivi>后键入loadflashucosx然后回车。
图26image下载
(7)然后打开超级终端上方的“传送”菜单并选择发送文件,如图27所示,点击浏览按键,查找并进入到编译生成的映象文件夹下,打开system.bin.然后在发送文件对话框中的协议栏选择Xmodem,最后选择发送。
图27image下载
(8)发送结束后,映象文件即下载到flash中,然后,如图28键入bootucos命令再回车即可运行该镜像image程序。
(请大家观察LCD或者听歌)
图28image下载
(9)摁键盘“Space”键,然后摁一下2410-s上的复位按钮,重新启动,按照(6)、(7)的方法下载另外一个image文件执行。
(10)关掉2410-s的电源,摁键盘“Space”键,然后开2410-s的电源,看vivi能否启动?
问题思考:
①、重作3和4(4中略去(5)步),看会出现什么情况?
这是为什么呢?
②、作3和4中的
(1),然后键入:
help,并回车,了解bootloader程序vivi的命令。
以理解本实验操作意义。
③、本实验用的image文件是什么呢?
它是怎么产生的呢?
5额外实验
(1)把实验用的ARM程序“Exp11绘图的API函数”放在D盘,打开该目录,观察其有哪些文件夹和文件。
其中,Exp11为工程文件。
图29image生成
(2)如果PC机安装了ARM集成开发环境ADS1.2,那么双击工程文Exp11就会打开该工程(Project),如图30所示。
其中生成目标Release生成的映象文件不包括调试信息;生成目标Debug生成的映象文件包括了所有的调试信息。
点击菜单“Project”下的“make”选项,便生成了工程项目
图30image生成
图31image生成
(3)在文件夹Exp11_data下的Release和Debug目录就可以分别找到包含调试信息和包含调试信息的映像文件system.bin。
大家可以尝试把映像文件通过超级终端下载到目标机上执行。
图32image生成
图33image生成
图34image生成
六进一步阅读
具体ADS1.2的用法请参考在线帮助文档与《ARM体系结构与编程》第13章。
由于我们实验箱用的是S3C2410芯片,请大家查阅其Datasheet了解这款具体芯片的组成。