《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx

上传人:b****6 文档编号:21389446 上传时间:2023-01-30 格式:DOCX 页数:46 大小:836.77KB
下载 相关 举报
《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx_第1页
第1页 / 共46页
《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx_第2页
第2页 / 共46页
《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx_第3页
第3页 / 共46页
《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx_第4页
第4页 / 共46页
《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx

《《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx(46页珍藏版)》请在冰豆网上搜索。

《嵌入式系统及应用》实验指导书初稿Word格式文档下载.docx

3.3实验内容25

3.4Linux内核基本配置和编译26

3.4.1内核配置26

3.4.2内核编译37

3.4.3根文件系统39

3.5使用Blob下载烧写内核和根文件系统41

3.6Linux内核设备驱动模块43

3.6.1设备类型和主次设备号44

3.6.2设备驱动程序45

3.6.3实验步骤47

常见问题49

关键术语51

参考文献52

概述

《嵌入式系统及应用》是一门综合性强、实践性强和复杂度高的课程,对老师和学生都是一个很大的挑战。

实验课主要是在老师的指导下,学生通过实践,不断掌握、理解、提高和综合所学专业知识,培养他们的实践和创新能力。

具体包括如下实验:

实验一熟悉实验软硬件平台,包括EFLAG公司开发的EAX-400嵌入式实验系统和ARM开发软件环境ADS1.2。

实验二熟悉嵌入式系统基本开发流程,包括JTAG下载或烧写程序;

超级终端的串口配置及使用;

系统引导及LED数码管显示实验。

实验三操作系统基础实验。

包括Linux开发环境的搭建与使用;

应用jflash烧写blob程序;

内核的基本配置、编译和根文件系统的搭建;

基本应用程序的加载实例。

嵌入式系统的设计、开发和应用,涉及到硬件电路的设计、软件程序的编写和操作系统的进程管理、任务调度等多方面的知识,通过基础性的实验,只能让大家有见“冰山一角”的感觉。

因为本人水平和编写书稿时间的限制,指导书中难免有遗漏、错误和不妥之处,恳请各位老师和同学们批评指正。

联系地址为kongquancun@。

让我们共同努力,一起把课程学好实验做好,为今后的学习、工作和科研打好坚实的基础。

谢谢!

2007年9月16日

实验一嵌入式系统硬件平台和ADS1.2开发环境实验

1.1实验目的

熟悉嵌入式系统实验软硬件平台,包括EFLAG公司开发的EAX-400硬件平台和ARM开发软件环境ADS1.2。

学会ARM仿真器的使用。

在ADS1.2环境下,调试并跟踪一段已有的程序,编译、链接通过后,下载到EAX-400平台上运行,初步了解以ARM处理器为核心的基础实验开发环境和基本思路。

1.2实验设备

硬件:

EAX-400嵌入式硬件平台、ARM-ICE的JTAG仿真器、PC机和串口线。

软件:

PC机Windows操作系统,ADS1.2集成开发环境,ARM-Multi-ICEServer仿真器驱动程序。

1.3实验内容

本实验首先熟悉EAX-400嵌入式硬件平台,包括处理器、存储器、人机接口和通讯模块等,初步理解系统硬件构成的框架。

然后,配置ADS的集成开发环境,新建一个简单的工程文件,并编译。

学习ARM仿真器的使用和开发环境的设置。

下载已经编译好的文件到嵌入式处理器中运行。

学习在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。

1.4EAX-400嵌入式系统硬件平台

EAX-400嵌入式系统是学习32位ARM处理器的实验平台,它采用IntelPXA255作为嵌入式处理器核心,可配有WindowsCE.NET和EmbeddedLinux操作系统。

EAX-400嵌入式系统的硬件部分包括:

系统架构、资源分配、外围芯片、扩展接口及使用方法等。

下面就其系统架构做一简单介绍,其他部分的资料,见文献[1]和[2]。

1.4.1系统硬件规格

处理器

◆XscalePXA255:

400MHz

◆32BitsRISC处理器:

32K指令Cache,32K数据Cache

◆MMU单元,2K字节Mini-dataCache,扩展多媒体DSP指令

存储器

◆SDRAM:

64MB,可以定制扩展到256MB

◆NORFLASH:

16MB,IntelStrata快速页面读取模式Flash,可以扩展到64MB

◆NANDFLASH:

32MB,可以定制扩展到256MB

扩展存储接口

◆IDE硬盘接口

◆CF卡扩充插槽

◆SD/MMC卡扩充插槽

人机接口配置

◆LCD显示系统

3’TFTColorLCD分辨率:

640*480颜色:

65536色

◆触摸屏(TouchPanel)

四线电阻式触摸屏

◆音频控制器

采用TI公司TSC2301AudioCodec芯片,支持I2S/AC'

97标准20位立体声编码/解码、支持可编程抽样率、输入输出增益和数字音响处理功能,同时集成触摸屏控制功能和4×

4键盘控制功能。

◆PS/2鼠标、键盘

通讯模块

◆以太网控制器

一个Ethernet接口,10BaseT,支持低功耗模式

◆USBHOST

两个通用串行总线(USB1.1)主机控制器(HC)接口

◆USBSLAVE

一个通用串行总线(USB1.1)设备控制器(DC)接口

◆高速红外线(FIR)

采用HSDL3600的高达4Mbit高速红外接口

◆BTUART(蓝牙)

高速BlueTooth/RS232 

接口,高达921kbps

◆FFUART

全功能串行接口,高达230kbps

◆并口

1个并行接口,支持SPP/EPP/ECP等工作模式

◆串口

3个串行接口

◆CAN总线(工业现场总线)

◆RS485总线(工业现场总线)

无线通讯模块

◆无线局域网卡802.11b(选配)

◆GPRS模块(选配)

◆GPS模块(选配)

视频输入模块

◆CMOS摄像头

支持通用USB摄像头(选配)

其他功能

◆ADC

一路ADC输入通道

◆DAC

一路DAC输出通道

◆数码管

4个数码管

◆LED

16个LED

◆蜂鸣器

◆步进电机

◆直流电机(带测速传感器)

◆用户自定义按键

◆复位按键

◆电源开关及电源指示灯

其他接口

◆JTAG调试接口

◆SPI扩展接口

◆NSSP扩展接口

◆I2C扩展接口

◆总线扩展接口

1.4.2系统配置表

表1EAX-400嵌入式系统配置表

项目

描述

Processor

IntelXscalePXA255400MHz

SDRAM

HY57V561620BT-H(64Mbytes)

NORFlash

Intelstrataflash28F128J316MBytes

NANDFlash

SamsungK9F5608U0A-YCB032MBytes

Display

TFTLCD(640*480)

Audio

TSC2301AC97StereoaudioAndSupportRecord,StereoheadphoneandLinein

Touch

TSC2301touchscreen

KeyBoard

TSC23014*4KeyBoard

PS/2

StandardMouseandKeyboard

Ethernet

CS8900A10BaseT

USBSlave

PXA255Build-in

USBHost

PHILIPSISP1161A1twoports

IrDA

HDSL3600

CF

1Slot

MMC&

SD

ATAPI

FFUART

1COMM

BTUART

SuperIOUART

ParallelPort

Real-TimeClock

CANBUS

MCP2515CANBusController

RS-485

1COM

SPEAKER

1Wx2

LED

LEDx16and8SEGx4

BEEP

1

Motor

DCMotorx1withspeedmeasureandStepperMotorx1

WirelessModule

802.11bwirelessmodule(option)

GPRSmodule(option)

GPSmodule(option)

CMOScamera

SupportgeneralUSBcamera(option)

1.4.3系统模块和接口说明

下图是EAX-400嵌入式系统模块和接口说明图,如图1所示。

图1系统模块和接口说明图

1.4.4系统仿真和开发硬件连接

ARM-ICE使用标准的25芯并口插座和20针的JTAG插座作为接口,与PC机的连接线缆,使用标准的25芯并口连接线;

与目标板的连接线缆,使用20芯的IDC宽带线缆。

系统仿真和开发硬件连接图,如图2所示。

1.5ADS开发环境

ADSV1.2集成开发环境支持全线的ARM处理器内核,满足更多用户对ARM处理器内核软件的开发调试需求。

下面就ADS集成开发环境的配置、新工程项目的建立和程序在线仿真、调式等方面,逐一进行介绍。

1.5.1配置ADS集成开发环境

(1)在PC主机上选择开始->

程序->

ARMMulti-ICEv2.2->

Multi-ICEServer,进入

ARM-Multi-ICEServer主界面,点击左上角Auto-Configure按钮重置仿真器,显示下图状态,如图3所示,说明目标板、仿真器与PC机连接良好。

图3配置仿真器图4Project选择项

(2)运行ADS1.2集成开发环境(开始->

ARMDeveloperSuitev1.2->

CodeWarriorforARMDeveloperSuite)。

选择File|New命令,在对话框中选择Project选择项,如图4所示,新建一个工程文件,其中示例的工程名为kk.mcp。

单击Set按钮为该工程选择保存路径,选中后将以图4中的Projectname作为创建目录的名称,这样可以将所有与该工程相关的文件,保存到该工程目录下,便于工程管理。

(3)在新建的工程中,如图5所示,选择Debug或DebugRel版本,使用Edit|DebugSettings命令对Debug版本进行参数设置。

图5版本选择图

(4)在DebugSettings对话框中选择TargetSettings选项,如图6所示。

在Post-linker列表框中选择ARMfromELF,单击右下角的Apply按钮使其有效。

图6TargetSettings选项图

(5)在DebugSettings对话框中选择ARMLinker选项,如图7所示。

在Output选项卡的Linktype选项组中选中Simple单选按钮,在Simpleimage选项组中设置连接地址,在ROBase中输入0xA0000000。

地址0xA0000000是开发板上SDRAM的物理地址,RWBase为空(不用填写),地址将连续分配。

图7ARMLinker选项图

(6)继续在ARMLinker选项中,单击Layout按钮,如图8所示。

在Layout中的Placeatbeginningofimage选项组,设置程序的入口模块。

指定在映像代码中,程序是从startup.o开始运行的。

Object/Symbol项设为startup.o,Section项设为Init。

图8Layout选项图

(7)在DebugSettings对话框中,选择Linker->

ARMfromELF选项,如图9所示。

在Outputfilename框中,设置输出文件名为kk.bin,此文件就是要下载到开发板上的应用程序。

图9ARMfromELF选项图

(8)参照步骤(3)~(7),在ReleaseSettings对话框中设置Release版本。

1.5.2建立工程文件

配置ADS1.2针对EAX-400的开发环境后,可以执行Project|AddFile命令,把工程相关的所有文件加入到工程项目中。

ADS1.2不能自动按文件类型进行分类,若需要可执行Project|CreateGroup命令创建文件组,然后将不同类型文件,分别加入到不同的组。

以便管理。

用以上的方法,建立项目工程文件kk.mcp,并将文件加入到工程中,如图10所示。

图10项目文件管理图

1.5.3在线仿真与调试

(1)在工程窗口选中Debug版本,执行Project|Make命令对工程进行编辑链接,如图11所示。

在出现的错误/警告窗口中,选择某错误/警告信息,ADS1.2会自动打开相应原文件,并用箭头指向出错的文本行。

如果某个源文件被修改,重新编译时ADS1.2会自动同步各文件的日期信息。

图11Error&

Warnings窗口图

(2)在ADS1.2中执行Project|Debug命令启动ADS1.2的调试工具AXD。

(3)在AXD中执行Options|ConfigureTarget命令对AXD进行设置,如图12所示。

点击Add按钮,在ARM>

Multi-ICE安装目录下,选择Multi-ICE.dll添加到TargetEnvironments中。

图12AXDTargetEnviroments图

(4)执行Options|ConfigureProcessor命令,在Vectorcatch选项卡里,点击Clearall;

将Semihosting项取消掉(即去掉该项前的勾),如图13所示。

图13ConfigureProcessor图图14CommandLineInterface图

(5)在ADS1.2中点击Systemviews|CommandLineInterface,打开CommandLineInterface界面,如图14所示(提示:

如果已经打开CommandLineInterface界面,则不用执行此操作)。

在CommandLineInterface窗口中输入“obeyd:

\xscale\Expriment\pxa255.txt”,对工程进行初始化。

(提示:

d:

\scale\Expriment\为pxa255.txt的文件路径)。

(6)等以上操作完成后,点击ReloadCurrentImage按钮完成重载,然后通过Execute|GO和Execute|Stop命令(或者工具栏的相应按钮)运行或暂停程序。

程序暂停后在窗口中显示其暂停的位置。

(7)通过Execute|Step命令(或工具栏相应按钮)可以单步运行,也可以使用StepIn、StepOut命令进入或跳出函数的调用。

使用RunToCursor命令可以将程序运行到光标位置。

(8)程序停止后,通过ProcessorViews|Sources命令查看源文件,并可在适当位置按F9设置断点。

(9)使用在ProcessorView菜单下的Registers、Variables和Memory命令可以查看工作寄存器或者内存变量。

读者可以逐一的尝试,为以后调试程序打下基础。

实验二嵌入式系统基本开发流程实验

2.1实验目的

熟悉嵌入式系统基本开发流程,包括JTAG下载程序到FLASH;

超级终端的串口配置和使用;

了解ARM基本指令集,理解嵌入式系统的一般引导规律,掌握PXA255处理器的系统引导特点。

2.2实验设备

EAX-400嵌入式硬件平台、并口延长线、JTAG下载电缆、ARM-ICE的JTAG仿真器、PC机和串口线。

PC机Windows操作系统,jflash应用程序、超级终端通信程序、ADS1.2集成开发环境,ARM-Multi-ICEServer仿真器驱动程序。

2.3实验内容

通过jflash工具软件,将可执行文件下载到NORFLASH中,并在系统上电复位后,能够正常运行该下载程序。

新建一个超级终端的连接,完成PC机与EAX-400的串口通讯。

通过LED数码管的显示实验,学习PXA255嵌入式处理器的系统启动引导的原理和过程,掌握引导程序调用C程序来实现系统设计的方法。

2.4JTAG下载

JTAG(JointTestActionGroup)是1985年制定的检测PCB和IC芯片的一个标准,1990年被修改后成为IEEE的一个标准,即IEEE1149.1-1990。

通过这个标准,可对具有JTAG口芯片的硬件电路进行边界扫描(BoundaryScan)和故障检测。

含有JTAG口的芯片种类较多,如ARM、DSP、CPLD等。

JTAG内部有一个状态机,称为TAP(TestAccessPort)控制器。

TAP控制器的状态机通过TCK和TMS进行状态的改变,实现指令的输入和数据的双向交换。

有关PXA255JTAG口的详细资料,请参考文献[3]。

2.4.1并口驱动

(1)通过并口延长线将“JTAG下载线”的一端与PC机的并口相连,另一端与EAX-400的JTAG口相连,确保连接牢固后,打开系统电源。

(2)在jflash目录下,执行GiveIOInstaller.exe应用程序,在弹出窗口中点击InstallService,

进行安装,完成后点击Quit退出。

如图15所示。

注意:

要完成JATG下载必须安装Giveio.sys驱动程序,此步骤在初次安装时只需要执行一次即可,关闭/启动计算机后也无需重复安装。

图15GiveIOInstaller.安装图图16jflash烧写成功界面图

2.4.2命令行操作

执行命令行操作,在PC主机上选择“开始->

程序->

附件->

”进入DOS命令窗口,进入D:

\xscale\jflash目录,通过jflash命令将blob文件烧写到EAX-400(目标板)的Flash中。

输入:

jflash.exepxa255blob命令,烧写成功后,将出现如图16所示的界面。

(注:

blob为要固化到Flash中的程序)。

当程序正常下载并烧写完毕后,系统将会提示:

Programmingdone

Verificationsuccessful!

2.5超级终端的串口配置和使用

(1)将EAX-400附件提供的9Pin串口线,一端与PC机的COM1口(或COM2口)相连,另一端与EAX-400的FFUART(全双工串口)相连,确保连接牢固后,打开系统电源。

(2)运行Windows系统下的超级终端(HyperTerminal)应用程序(“开始->

通讯->

超级终端”),新建一个通信终端。

如果要求输入区号、电话号码等信息,可随意输入,如图17所示。

图17新建通信终端图18COM端口号的配置

(3)配置PC机当前使用的COM口的端口号,下面将以COM1为例,如图18所示。

如果PC机当前使用的是COM2口,那么上图中的“连接时使用”应选择‘COM2’。

(4)配置超级终端的串口参数,如图19所示。

图19HyperTerminal串口配置

(5)完成新建超级终端的设置后,保存当前设置,并发送到桌面上,以备后用。

(6)按一下系统复位键,如果按照2.4.2的实验步骤,已经通过JTAG将blob程序正确烧写到EAX-400的Flash中,那么系统复位后,Blob程序将会通过FFUART串口输出信息,同时所有的信息都会在超级终端的当前连接窗口上实时的显示出来,如图20所示。

此时,可以通过超级终端与开发板进行信息交互,键入‘help’后回车,看看系统运行的blob会有什么反应。

图20blob启动信息窗口图

2.6系统引导和LED数码管显示

多数嵌入式系统的引导,都有一般规律可循,本节首先论述嵌入式系统启动的一般流程;

然后,讲述在EAX-400系统中,PXA255的具体启动流程;

最后,给出了LED数码管显示实验的操作,以便读者体会一下系统引导的流程。

2.6.1嵌入式系统的启动流程

嵌入式系统的程序通常都是固化在FLASH中运行。

FLASH中程序执行前,需要对处理器、系统硬件和软件运行环境进行初始化,这些工作由用汇编语言编写的启动程序完成。

启动程序是嵌入式程序的开头部分,应该与应用程序一起固化在FLASH中,并首先在系统上电时运行。

它包含各模块中可能出现的所属段类,并合理安排它们的次序。

启动程序的设计是嵌入式程序的关键,也是必要步骤,系统启动程序所执行的操作,依赖于正在开发其软件的系统,一般流程如下:

(1)设置入口指针

首先启动程序必须定义入口指针,而且整个应用程序只有一个入口指针。

(2)设置中断向量

要求中断向量表必须设置在从0地址开始,连续8×

4字节的空间,分别是复位、未定义指令错误、软件中断、预取指令错误、数据存取错误、IRQ、FIQ和一个保留的中断向量。

如果FLASH定位于0地址,向量表包含一系列指令跳转到中断服务程序,否则向量必须被动态初始化。

可以在启动程序中添加一段代码,使其在运行时将向量表拷贝到0地址开始的存储器空间。

对于未用中断,使其指向一个只含返回指令的哑函数,以防止错误中断引起系统的混乱。

(3)初始化堆栈和寄存器

系统堆栈初始化取决于用户使用了哪些中断,以及系统需要处理哪些错误类型。

一般来说管理者堆栈必须设置,如果使用了IRQ中断,则IRQ堆栈也必须设置。

如果系统使用了SDRAM或其它外设,需要设置相关的寄存器,以确定其刷新频率,数据总线宽度等信息。

(4)初始化存储器系统

有些芯片可通过寄存器编程,初始化存储器系统,而对于较复杂系统通常集成有MMU来管理内存空间。

(5)改变处理器模式和状态(可选)

如果系统应用程序是运行在用户模式下,可在此处将系统改为用户模式,并初始化用户堆栈指针。

(6)初始化程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1