嵌入式系统课程设计报告.docx
《嵌入式系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
嵌入式系统课程设计报告
嵌入式系统课程设计报告
指导教师:
学生班级:
学生姓名:
学号:
班内序号:
08
课设日期:
2011/7/6~2011/7/10
目录
一、课设目的3
二、设计要求3
2.1功能要求3
2.2设计所需设备与工具3
三、课设内容3
四、课设环境4
4.1WindowsCE的特点4
4.2WindowsCE主要模块及其功能4
4.3PlatformBuilder开发工具介绍5
五、设计步骤7
5.1安装XSBase270的BSP7
5.2实验平台的配置7
5.3超级终端的设置12
5.4使用jflash命令烧写Eboot13
5.5PlatformBuilder配置14
5.6ActiveSync的使用15
六、主要代码分析及结果18
七、总结20
一、课设目的
了解嵌入式系统、嵌入式操作系统,掌握基于嵌入式系统的应用开发基本知识。
了解嵌入式操作系统WindowsCE的特点,WindowsCE的主要模块及各自的功能。
掌握嵌入式操作系统WindowsCE的配置、编译、移植方法。
了解VisualStudio.NET开发环境,掌握基于WindowsCE平台的应用程序设计方法。
二、设计要求
2.1功能要求
安装XSBase270实验开发平台的BSP;
在嵌入式操作系统WindowsCE平台定制的集成开发环境PlatformBuilder(PB)上定制内核,编译和调试并生成内核映像文件,下载并运行编译好的WindowsCE系统;
在VS.NET中编写对XSBase270目标板上LED和七段数码管的控制程序,下载运行程序。
2.2设计所需设备与工具
①装有PlatformBuilder、VisualStudio.NET开发环境,有并口、串口和USB接口的PC机一台。
②XSBase270实验开发平台一套。
三、课设内容
嵌入式操作系统WindowsCE平台的搭建
安装XSBase270实验开发平台的BSP。
根据XSBase270实验开发平台的特点和系统需求,利用PlatformBuilder集成开发环境配置WindowsCE操作系统的特性和功能。
编译、链接操作系统内核,生成系统映像文件。
下载并运行编译好的WindowsCE系统。
七段数码管和LED显示控制程序设计
了解WindowsCE下I/O访问机制和原理。
了解LED和七段数码管的显示和控制原理。
掌握WindowsCE下访问硬件I/O寄存器的方法,以及使用VisualStudio.NET对硬件设备编程的一般方法。
四、课设环境
4.1WindowsCE的特点
WindowsCE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作,它是精简的Windows95。
WindowsCE的图形用户界面相当出色。
WinCE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。
4.2WindowsCE主要模块及其功能
WindowsCE被分成不同的模块,其中最主要的模块有内核模块(Kernel)、对象存储模块、图形窗口事件子系统(GWES)模块以及通信(Communication)模块。
内核模块
内核模块是WindowsCE操作系统的核心,它为任何基于WindowsCE的设备提供处理器调度、内存管理、异常处理以及系统内通信等系统功能,并为应用程序使用这些核心功能提供内核服务。
WindowsCE的内核模块通过CoreDLL模块表示。
所有的操作系统定制设计都必须包含这个模块,但并不是这个模块的所有组件都必需的,有一些内核组件是可选的。
对象存储模块
对象存储是WindowsCE的默认文件系统,它相当WindowsCE设备上的硬盘。
对象存储是由共享一个内核堆的文件系统、系统数据库和系统注册表组成,即使在没有系统主电源时,对象存储也能维持应用程序及相关数据不会丢失。
图形窗口和事件系统模块
图形窗口和事件系统模块(GWES)包含大部分的核心WindowsCE功能,它集成了图形设备接口(GDI)、窗口管理器和事件管理器。
GWES模块时WindowsCE操作系统高度组件化的部分,它分别由USER和GDI两部分组成,USER用来处理消息、事件及鼠标和键盘等用户输入,而GDI用于处理图形的屏幕和打印输出等。
4.3PlatformBuilder开发工具介绍
PlatformBuilder(PB)是微软提供给WindowsCE开发人员进行基于WindowsCE平台下嵌入式操作系统定制的集成开发环境。
它提供了所有进行设计、创建、编译、测试和调试WindowsCE操作系统平台的工具。
它运行在桌面Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。
该工具能够根据用户的需求,选择构建具有不同内核功能的CE系统。
同时,它也是一个集成的编译环境,可以为所有。
CE支持的CPU目标代码编译C/C++程序。
一旦成功地编译了一个CE系统,就会得到一个名为nk.bin的映像文件。
将该文件下载到目标板中,就能够运行CE了。
该工具能够根据用户的需求,选择构建具有不同内核功能的CE系统。
同时,它也是一个集成的编译环境,可以为所有CE支持的CPU目标代码编译C/C++程序。
一旦成功地编译了一个CE系统,就会得到一个名为nk.bin的映像文件。
将该文件下载到目标板中,就能够运行CE了。
PlatformBuilder提供的主要特性包括:
平台开发向导(PlatformWizard)和BSP开发向导:
开发向导用于引导开发人员区创建一个简单的系统平台或BSP(板级支持软件包),然后再根据要求进一步修改。
开发向导提高了平台和BSP创建效率;
特性目录(Catalog):
操作系统可选特性均在特性目录(Catalog)中列出,开发人员可以选择相应的特性来定制操作系统;
导出向导(ExportWizard)。
可以向其他PlatformBuilder用户导出自定义的目录(Catalog)特性;
导出SDK向导(ExportSDKWizard):
使用户可以导出一个自定义的软件开发工具(SDK),可以将客户定制的SDK导出到特定的开发环境中(如EVC)。
远程工具:
可以执行同基于WindowsCE的目标设备有关的各种调试任务和信息收集任务;
仿真器(Emulator):
通过硬件仿真加速和简化了系统的开发,使用户可以在开发工作站上对平台和应用程序进行调试,大大简化了系统的开发流程,缩短了开发时间。
应用程序调试器:
可以在自定义的操作系统映像上对应用程序进行调试;
内核调试器:
可以对自定义的操作系统映像进行调试,并且向用户提供有关映像性能的信息;
驱动测试工具包(WindowsCE.netTestKit):
系统为驱动程序开发提供了基本的测试工具集;
基础配置:
为各种流行的设备类别预置的可操作系统基础平台,为自定义操作系统的创建提供了一个起点。
五、设计步骤
5.1安装XSBase270的BSP
为了使PlatformBuilder支持XSBase270开发板的硬件资源系统,在安装WindowsCE之后需要安装XSBase270的板级支持软件包(BSP)。
5.2实验平台的配置
新建一个目标平台
a)选择菜单项“File”->“NewPlatformWizard.”;
b)输入目标平台名称和保存的位置
c)为目标平台选择所支持的BSP,XSBase270开发板选择选择“EMDOORSYSTEMXSBASE270:
ARMV4I”平台
d)为新建的目标平台选择一个合适的模板配置
e)在“Application&Media”选择有关特性(本实验选则默认项);
f)在“Networking&Communications”中选择可用特性(默认项);
g)完成“NewPlatformWizard.”。
平台的配置
a)选择菜单项“Platform”->“Setting”。
b)在“PlatformSettings”对话框中设置“General”选项卡。
选中“Release”,如下图
c)在“PlatformSettings”对话框中设置“BuildOptions”选项卡;
配置系统组件和特性
a)添加XSBase270实验平台提供的设备驱动程序
XSBase270实验平台的驱动程序由平台BSP提供,其中包括输入设备(InputDevices)、网络设备(Networking)、PC卡(PCCard)、SD卡、串口、触摸屏、USB设备等;另外还包括EmdoorOEM驱动程序(主要包括:
CAN总线驱动、IDE接口驱动、LED显示驱动、电机接口驱动等)。
如果用户想向新建平台添加设备驱动程序,通过右击选项再选择“AddtoOSDesign”即可。
b)添加系统功能组件
系统的功能组件属于平台无关部分,由PlatformBuilder开发环境统一提供。
它们均是在CoreOs目录下进行添加,用户可以根据实验的需要添加系统功能组件,本实验中添加以下系统功能组件:
①添加数据同步的组件:
CoreOS—>WindowsCEdevices—>Applications-EndUser—>ActiveSync—>FileSync;
②图片浏览器的添加:
CoreOS-WindowsCEdevices-Applications-EndUser—FileViewers—MicrosoftImageViewer;
③大的软键盘组件的添加:
CoreOS—>WindowsCEdevices—ShellandUserInterface—>SoftwareInputPanel—>Software-basedInputPanel(SIP)(Choose1ormore)—>SIPforLargeScreens;
④文件系统的添加:
CoreOS—>WindowsCEdevices—>FileSystemsandDataStore—>StorageManager—>FATFileSystem;
⑤配置信息保存模块添加:
CoreOS—>WindowsCEdevices—>FileSystemsandDataStore—RegistryStorage(Choose1)—>Hive-basedRegistry;
⑥CF卡模块的添加:
Catalog—>DeviceDrivers—StorageDevices—>CompactFlash/PCCardStorage(ATADISK);
⑦添加802.11b无线CF卡:
CoreOS->WindowsCEdevices—>CommunicationServicesandNetworking—>Networking-LocalAreaNetwork(LAN)—>WirelessLAN(802.11)STA-AutomaticConfigurationand802.1x;
⑧EVC调试程序组件模块的添加:
Catalog—>PlatformManager—>PlatformManager。
选择菜单项BuildOS—>Sysgen对平台进行编译,生成映像文件。
5.3超级终端的设置
在XSBase270中,调试信息是通过FFUART串口输出的。
(1)运行超级终端
(2)键入一个新的连接的名称
(3)选择串口1(或串口2)作连接用,然后按下OK按钮。
(4)参照下图配置串口1的特性,然后按下OK按钮。
5.4使用jflash命令烧写Eboot
将JTAG线连接到目标板;
打开Jflash所在文件夹,运行cmd.bat;
打开目标板电源;
运行jflashmmpxa270eboot.nb0;
关闭ARM电源;
设置PC机本地IP;
在桌面上找到超级终端图标,双击启动超级终端;
打开ARM电源,检查是否有Bootloader输出信息;(如果没有信息输出,请检查串口线缆的连接和超级终端的设置)
选择D,ARM上的WINCE烧录后可自己启动,其他不用设置。
5.5PlatformBuilder配置
(1)选择菜单项Target—>ConnectivityOptions进行连接选项配置,如图所示。
(2)下载方式采用以太网下载,单击“Settings”按钮,对以太网进行配置,如下左图所示。
(3)下载测试
选择菜单项Target—>AttachDevice,进行设备连接,如果设备连接正常,PlatformBuilder将编译好的映像文件NK.bin通过以太网下载到目标板中,如上右图为PlatformBuilder下载过程。
同时超级终端显示映像文件下载情况,当超级终端出现下面的字样的时候,表示映像文件已经下载到目标板的Flash存储器中。
5.6ActiveSync的使用
ActiveSync用来实现PC上的应用程序和ARM上的应用程序保持同步。
(1)打开目标机(ARM)电源,进入“网络和拨号连接”。
(2)双击“新建连接”,建立一个新连接。
点击“下一步”。
(3)选择“直接连接”。
点击“下一步”。
(4)选择设备“COM2”,点击“配置”,如下图进行配置。
(5)“我的连接”已经创建完毕。
(6)在ARM机的WINCE系统中选择“控制面板”→“PC连接”。
,
(7)出现图27对话框后,选择“更改”。
(8)选择“我的连接”。
确定,ARM中“我的连接”创建完成。
(9)插上USB线,微机会自动识别USB设备,并启动ActiveSync。
(10)选择“下一步”。
(11)选择上图中的同步文件夹。
选中“确定”,然后点击“下一步”到完成。
最后出现如上图画面,就可以在主机和XSBase270间传输和接收文件。
六、主要代码分析及结果
LED灯主要程序:
设置数码管计数数字
voidCLedDlg:
:
SetLedValue(unsignedintindata)
{//数码管要显示的数值
USHORTData;
UINTbuf;
buf=indata;
//
buf=buf%1000000;
Data=NumData[buf/100000];//十万位数字
buf=buf%100000;
Data|=NumData[buf/10000]<<8;//万位数字
WRITE_PORT_USHORT(v_pLEDBaseAddr1,~(Data|BIT7|BIT15));
//本次课设平台支持显示四位数
buf=buf%10000;
Data=NumData[buf/1000];//千位数字
buf=buf%1000;
Data|=NumData[buf/100]<<8;//百位数字
WRITE_PORT_USHORT(v_pLEDBaseAddr2,~(Data|BIT7|BIT15));
buf=buf%100;
Data=NumData[buf/10];//十位数字
buf=buf%10;
Data|=NumData[buf]<<8;//个位数字
WRITE_PORT_USHORT(v_pLEDBaseAddr3,~(Data|BIT7|BIT15));
}
计时器回调函数OnTimer
voidCLedDlg:
:
OnTimer(UINT_PTRnIDEvent)
{
switch(nIDEvent)
{
case1:
//设置LED灯
count++;
if(count<8)
{
if(m_LeftShift.GetCheck())
outdata=outdata>>1;
else
outdata=outdata<<1;
}
else
{
count=0;
if(m_LeftShift.GetCheck())
outdata=0x80;
else
outdata=0x01;
}
*pLightReg=~outdata;
break;
case2:
//设置LED数码管
m_LedValue++;
SetLedValue(m_LedValue);
UpdateData(FALSE);
break;
}
}
实验运行结果如下图所示
七、总结
通过这次课程设计,对嵌入式系统开发过程有了一个全面认识。
在本次设计中,掌握了嵌入式操作系统WindowsCE的配置、编译、移植方法;学会了在嵌入式操作系统WindowsCE平台定制的集成开发环境PlatformBuilder(PB)上定制内核,编译和调试并生成内核映像文件,下载并运行编译好的WindowsCE系统;同时也学会了基于VisualStudio.NET开发环境下的WindowsCE平台的应用程序设计方法;了解WindowsCE下I/O访问机制和原理;掌握了LED和七段数码管的显示和控制原理。