嵌入式系统实验教学概论Word文件下载.docx
- 文档编号:15067997
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:14
- 大小:282.28KB
嵌入式系统实验教学概论Word文件下载.docx
《嵌入式系统实验教学概论Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实验教学概论Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
v样板试制;
v硬件功能测试;
v编写引导程序;
v操作系统移植;
v驱动程序编写;
vAPI设计与开发;
v支撑软件设计与调试;
v应用程序设计与调试;
v系统联调;
v样机交付。
从中可以看出开发一个嵌入式系统就是开发一个特定用途的计算机系统。
开发时需要考虑系统硬软件各个层次上的所有问题。
这同PC平台上开发应用项目是不一样的。
如果开发者需要在PC平台上开发一个纯软件应用系统,就只需要考虑上述流程中的两个工作步骤,即:
①应用程序设计与调试;
②系统联调。
其他方面的问题基本不用考虑。
如果在PC平台上开发一个带有硬件的应用系统,工作步骤就要再增加2个,总数达到4个,即:
①硬件系统(适配卡)与接口设计;
②驱动程序设计;
③应用程序设计与调试;
④系统联调。
在以上情况下,PC系统中许多环境(诸如基本输入输出系统、操作系统和API功能库等)问题基本不用开发者考虑。
然而开发嵌入式应用系统多数情况下需要考虑比PC平台多的因素。
仅软件部分就要考虑操作系统移植、板级支持包开发、驱动程序编写、应用程序开发和操作系统的接口等问题。
即使只开发应用程序,也要在工程项目中将操作系统文件、驱动程序文件连同应用程序文件一起加进来,经过修改整理再编译成目标文件。
总之,嵌入式软件开发与普通软件开发不同,需要考虑的因素更多。
1.1.2嵌入式应用软件开发特点
现在讨论嵌入式应用软件开发的6个独有特点。
1.需要交叉编译工具
嵌入式系统采用的处理器一般与PC机不同,结构较简单,功耗较低。
以本书为例,我们使用的实验系统是博创ARM300嵌入式系统实验箱。
该实验箱的CPU芯片是ARM公司的ARM7TDMI芯片。
由此可知在目标实验箱上运行的程序指令是ARM指令集指令。
由于嵌入式系统目标机上的资源较为有限(内存外存容量小,显示功能弱),直接在目标机上开发和调试应用软件几乎不可能。
因此,目标机的嵌入式应用软件开发放在高性能计算机上的集成开发环境(类似于PC平台上的VisualStudio集成开发环境)上进行。
由于PC机大量普及使用,现在集成开发环境大多运行在PC平台上。
再以本书为例,我们使用的实验软件集成开发平台是ARMSDTV2.5.1。
ARMSDT是theARMSoftwareDevelopmentToolkit的简写,它运行在PC平台上。
众所周知,PC机CPU芯片是x86芯片,而实验箱CPU芯片是ARM7TDMI。
两个机器的指令集不相同。
因此,ARMSDT集成开发平台上编写的C语言实验程序需要经过交叉编译器才能生成运行在目标实验箱上的ARM7机器语言程序。
事实上,ARMSDT就包含了交叉编译器。
SDT交叉编译器运行在PC平台上,它能将C语言程序编译成ARM7指令集的机器语言程序。
2.通过仿真手段进行调试
目标机执行程序经过交叉编译之后,还要经过调试排错,确认能够正常运行才能使用。
那么如何进行调试排错呢?
显然在目标机上调试排错是非常困难的。
原因是:
①输入输出手段有限,多数嵌入式系统显示面积小,甚至没有显示屏,从而无法显示调试信息;
②调试工具需要较大的内存储器空间,这对台式机而言,不成为问题,但是对嵌入式系统而言难以满足要求。
因此,很少直接在目标机上进行调试。
实际的做法是仿真调试,参看图1-1。
所谓仿真调试是通过接口和信号线,把目标机上机器指令执行的结果和CPU当前各个寄存器的值传送到集成开发平台,使工作人员在台式机上就能够观察到目标机的执行状况,从而判断出指令执行的正确与错误;
还有一种仿真调试是直接在宿主机上采用软件模拟的方法,在宿主机上用程序模拟目标机处理器的体系结构和指令集,进而模拟指令运行的情况。
图1-1宿主机和开发板之间的仿真调试
3.开发板是中间目标机
嵌入式应用软件需要在开发板(或者叫做评估板)上完成所有的开发任务。
开发完成之后,才把目标程序安装在目标机上运行。
也就是说开发板只是中间的目标机,它的任务就是开发和调试。
参看图1-1和图1-2。
图1-2目标机装载调试过的程序后运行
4.执行应用程序的指令通常写入操作系统
在台式机或者工作站上(不限于PC机),应用程序的执行是在操作系统图形用户界面(GUI)或者命令行状态下进行的,在操作系统程序中没有直接的对应关系。
然而,在通常的嵌入式系统中,应用程序的启动执行指令需要预先写入操作系统的任务调度程序里,编译在目标程序中间,因此具有执行开始时间的可预期性。
5.资源有限
在台式机环境下程序员拥有大量的硬件和软件编程资源,对诸如内存容量、硬盘容量、可以打开的文件数量等问题几乎不用操心。
然而在进行嵌入式软件开发时,就必须考虑可用资源的问题。
以存储容量为例,嵌入式系统的ROM容量一般只有几兆字节,对目标程序有严格的长度限制,这样程序员在编程时就必须考虑这个限制。
6.控制特定部件
在嵌入式软件开发过程中,程序员往往需要针对特定的部件做更加细致的编程作业。
仅以键盘为例,在台式机环境下,键盘输入可以不考虑具体的按键是哪一个,只考虑从键盘输入进来的ASCII码即可;
然而,在嵌入式环境下,因为键盘小,键位不够分配,多个ASCII输入码被分配到一个键上,这样程序员在编程时就要具体地指定哪些ASCII输入码被分配到哪个按键,以及采用什么方法来区别它们。
1.1.3何谓JTAG
细心的读者可以从图1-1中发现宿主机和目标机之间进行仿真调试时需要用到一个JTAG仿真器。
那么什么是JTAG呢?
下面我们解释一下JTAG和JTAG仿真器。
JTAG是JointTestActionGroup(联合测试行动组)的缩写。
联合测试行动组是IEEE的一个下属组织,该组织研究标准测试访问接口和边界扫描结构(StandardTestAccessPortandBoundary-ScanArchitecture)。
JTAG的研究成果被接纳为IEEE1149.1-1990规范,成为电子行业的一种国际测试标准。
现在,人们通常用JTAG来表示IEEE1149.1-1990规范,或者满足IEEE1149规范的接口或者测试方法。
从本质上讲JTAG是一种在线调试接口,即OCD接口,OCD是英文On-ChipDebuggingInterface的略语。
JTAG的建立使得集成电路固定在PCB(PrintedCircuitBoard,印刷电路板)上,只通过边界扫描便可以被测试。
JTAG来源于传统的印制电路板(PCB)测试行业。
按照传统方法,PCB测试时要在它的每一个引脚上连接测试仪器的信号采集头。
为此把PCB放在配备有密集接触点阵列(称为“钉阵列”)的机器上进行测试。
JTAG用来改进印刷电路板测试仪不足之处。
它通过将PCB上所有的结点连接到一个很长的移位寄存器的二进制位上进行测试。
每个二进制位表示电路中的一个结点。
JTAG串行数据流可能长达成百上千位。
参看图1-3。
图1-3在PC板上两个电路元件的JTAG扫描循环示意图
为使JTAG能正常工作,在设计中使用的集成电路器件必须符合JTAG标准。
这要求电路部件的每个I/O引脚应当附加一个电路元件(称为JTAG扫描单元)。
这种附加的扫描单元内部构造可以简单地描述为具有移位功能的锁存器,多个JTAG扫描单元串行连接,最终接到JTAG接口上。
当一切准备就绪,每个引脚的状态都被JTAG扫描单元采样,或者说是监听。
因此,以正确的顺序适当地串行移位扫描单元的位数据,就能够重构引脚信号的串行二进制位流。
这样一次就能采样整个电路的状态。
我们称这样的串行二进制位流为引脚信号扫描链或者简称为扫描链。
图1-3显示了两个电路元件的JTAG扫描链。
循环由到设备的入口和单独的出口组成。
从出口连接到入口能建立起通过整个电路的连续循环。
JTAG的循环扫描既可以是主动的,也可是被动的。
可以通过向串行数据流中相应的JTAG位置写入二进制值来设置电路上的某个I/O引脚的状态。
由于串行数据流可能有几百位长,所以管理JTAG循环的算法非常复杂,并且要求非常迅速。
由于许多二进制位必须在每次读出或改变时进行移位,所以有时候JTAG的工作速度也可能变得相当慢。
JTAG仿真器是一个硬件模块,参看图1-1。
多股信号线一头连接满足JTAG标准的CPU,另一头连接宿主机。
JTAG仿真器通过JTAG逻辑与CPU核的嵌入式在线仿真器(EmbeddedICE)的调试模块通信,支持CPU内含的在线仿真调试模块提供的所有功能。
因此JTAG仿真器能够仿真所有基于处理器核的硬件设备,不占用任何系统资源。
对内部含有JTAG扫描链和接口的开发板CPU芯片,通常采用JTAG仿真器将各个引脚信号采集出来送往宿主机或者将宿主机发出的调试命令送往CPU芯片,整个调试过程受集成开发环境的控制。
这种仿真调试通常称为JTAG调试或者JTAG远程调试。
JTAG调试属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口。
借助JTAG仿真器和JTAG仿真软件,开发人员能够在宿主机的调试开发环境做到:
停止CPU运行,继续运行,查看/修改寄存器,查看/修改内存,设置软件/硬件断点,设置硬件观察点等。
可以讲JTAG调试技术大大地改善了嵌入式系统硬件软件的测试速度和测试质量,它成了嵌入式系统开发人员的必备知识和技能。
1.1.4实验环节必不可少
由上所述,嵌入式软件开发同PC平台软件开发有很大的不同,具有目标多样性(指开发板的多样性)、跨平台作业(开发环境平台与运行平台不一致)、启动方式独特和调试手段独特(JTAG调试)的特点。
因此学习嵌入式软件开发必须注重实验。
只有通过实验,接触目标开发板、集成开发环境的构建方式和作业方式、嵌入式系统的硬件和软件、JATG调试方法,学生或者研发人员才能学会如何从头开始着手开发一个嵌入式系统;
才能增长交叉编译、目标板程序调试和目标板程序装载的真知;
才能积累嵌入式系统开发流程、开发方法和开发技巧的经验。
因此实验环节必不可少。
1.2本书使用的实验设备介绍
本书提供的9个综合实验项目均在博创公司出产的UP-NetARM300嵌入式教学实验系统(也可以简称为ARM300开发板)上编写调试通过。
为此,有必要对ARM300开发板做一个简单的介绍。
1.2.1ARM300开发板简单介绍
ARM300开发板是北京博创兴业科技有限公司为了满足高等院校开设嵌入式系统实验课而开发的实验系统,具有双重用途。
既可以供学生实验,也可以供技术人员研发产品。
ARM300开发板的微处理器采用三星公司的S3C44B0X芯片,该芯片内核是ARM7DTMI。
ARM300开发板的实时操作系统采用了小型开放源代码的μC/OS-II(有时候也写成uC/OS-II)内核。
由此可知ARM300开发板的核心是ARM+μC/OS-II。
总体结构参看图1-4。
图1-4ARM300开发板总体结构
1.基本运行环境
使用ARM300开发板需要下列基本硬件软件配置:
v一台x86芯片的台式机,操作系统可以是Windows2000或者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 实验教学 概论