您好,欢迎访问三七文档
嵌入式软件开发导论同济大学软件学院20068.BSP开发目录板级支持包(BSP)的开发标准CETK测试的使用板级支持包(BSP)简介BSP是在标准开发板上运行的一部分软件,主要功能是支持操作系统的引导与开发。通过BSP我们可以在开发板上快速的启动操作系统以及分析操作系统的性能。有了BSP的支持,各个OEM(原始设备制造商)厂商和独立硬件开发商就可以缩短基于WindowsCE平台产品的开发周期。CPU支持包(CSP)&OEM抽象层(OAL)OAL:OEM抽象层位于WindowsCE系统内核和目标板硬件之间,负责操作系统和目标板的通信。由引导程序调用,随后进行目标板的初始化工作,包括中断服务,实时时钟,内部计时器,调试部件,中断使能等等由硬件OEM厂商提供CPU支持包(CSP)&OEM抽象层(OAL)CSP:CPU支持包包括用以支持特定CPU和相关芯片的OEM抽象层和设备驱动,这一部分是与特定开发板无关的。通常由操作系统开发商提供,WinCE操作系统是由微软公司开发的。板级支持包的组成内容描述引导程序加载操作系统映象OEM抽象层(OAL)连接内核映象,支持硬件的初始化和管理设备驱动支持相关外围设备以及动态安装的设备配置文件可以通过对环境变量、.bib文件和and.reg文件的修改来重新配置BSPBSP架构硬件抽象层驱动配置文件引导程序标准开发板BSP创建BSP的两种方法编写全新的BSP需要编写所有的部分包括OEM抽象层,驱动,引导程序大约消耗20人/月工作量改写现有的BSP对与目标板具有相似硬件组成的BSP的基础上进行某些改写,使其适用与目标板,这是最简单的方式。BSP向导下面是创建基于WindowsCE的BSP的一般步骤,典型的情况下会产生一个.cecw文件Platform-BSPWizardBSP开发流程如果操作系统映象可以直接引导,引导程序不是必须的但通常使用一个引导程序,以便日后的扩充。另外也可以用于支持制造过程中的下载测试引导程序的重要性在于可以支持开发过程中的运行时映象加载功能,也就是说在系统运行过程中,动态加载需要调试的模块引导程序(可选)引导程序的功能初始化目标设备内存和中断控制器设置时钟和内存管理单元直接引导现存的flash或RAM映象下载之前清空RAM内存读写测试下载WindowsCE映象到RAM或flash:并口网卡引导程序的加载引导菜单引导程序的开发实现OEM的应用程序接口(API).连接Microsoft提供的库引导程序的任务黑体字标识的函数需要由OEM厂商来实现.控制流图C:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\BLCOMMON引导程序–StartUp函数硬件复位和运行时复位需要执行的第一条指令设置为超级用户模式执行必须的硬件初始化:CPU内存控制器系统时钟串口缓存快表(TLBs)根据使用的CPU修改Startup.s引导程序--EbootMainEbootMain是C代码运行的入口调用BLCOMMON库BLCOMMON库源文件在Blcommon.c文件中,路径为%_WINCEROOT%\Public\Common\Oak\Drivers\Ethdbgdirectory引导程序–OEMDebugInit用来初始化串行口,作为调试输出OEMDebugInit初始化完成后,一个WindowsCE的标记会出现,表示这个接口可以使用了.引导程序--OEMPlatformInit各种OEM硬件平台初始化函数,包括时钟,PCI接口,或者NIC接口.NIC接口用于下载映象,另外服务于后面一些函数.引导程序--OEMPreDownload在加载一个运行时映象时首先被BLCOMMON调用.查找硬件设备的IP地址,并与宿主机相连如果出错返回-1引导程序--OEMLaunchOEMLaunch是引导程序的最后一个需要运行的函数.负责跳转的到需要运行的映象.跳转到由dwLaunchAddr指定的第一条指令,这条指令在运行时映象的启动函数里.OAL开发类似于引导程序的开发可以重用引导部分的代码OAL架构内核开发黑体显示的函数需要由OEM厂商来实现内核工作流KITL这样的设计可以很容易加入任何调试服务功能把通信协议和与之直接通信的硬件层分离开来减少用户在创建硬件独立层的工作量在系统映象中包含对KITL的支持1.CPU加电,跳转到复位向量2.[可选]引导程序从Startup()开始执行3.执行OAL中的Startup()4.KernelStart()[KernelInitialize()Forx86]5.Kernel调用OAL中的OEMInit()6.完成内核初始化7.内核加载Filesys.exe8.FileSys初始化注册表9.内核加载在HKEY_LOCAL_MACHINE\Init中列出的应用程序启动流程驱动程序开发参见前面的课程.利用BSPWizard可以添加到BSP中举例:分析MotorolaDragonBallBSP我们已经学习过什么?我们系统、完整地学习了WindowsCE开发流程.从设备制造商得到硬件和BSP需要设计硬件?设计实现你的硬件为硬件设计BSP需要定制平台?从设备制造商处得到平台和SDK定制你的WinCE平台导出你的SDK编码、测试发布产品WindowsCE测试工具包(CETK)Tux“server”Kato日志引擎设备驱动加载以及TUX扩展(DDLX)常规TUX测试综述CETK结构ClientSide.exeTuxTestDLLTuxTestDLLTuxTestDLLsKato.dllCETEST.EXEDesktopWindowsCEDeviceTUX.EXEDevice.EXETUXTestDLLDDLXMicrosoft提供了自动测试体系结构Client/Server结构支持远端测试通过“Tux”加载自动测试实际的测试是以DLLs的形式通过TUX加载到系统中通用日志引擎“Kato”DLLexposesCandC++APIforloggingtotheserverCETKServer利用TUX启动特定的测试保存日志以及产生报告运行于桌面系统以便进行远程测试WindowsCE测试工具包(CETK)TUXServerTUX.EXE监控TUX测试DLLs的程序实际的测试是以DLL的形式进行的通过TUX.EXE加载测试DLL由远端用户界面应用程序发起运行桌面系统上的CETEST.EXE也可以在设备上独立运行KATO日志引擎DLL:提供API,以便将测试结果保存成日志C++类库C函数从TUX测试抽象出日志机制本地文件远端连接设备驱动加载以及TUX扩展(DDLX)允许测试DLL加载到设备管理进程空间允许对APIs和功能的测试仅仅对设备管理模块可用设备管理模块直接向驱动提供APIs驱动可以直接为其他驱动提供服务常规的TUX测试TUXSKEL微软提供的TUX测试构架作为一个最初的“模板”用来创建常规TUX测试IDENewProjectWizard产生一个基于TUXSKEL结构的常规TUX测试比手工复制和修改TUXSKEL要简单
本文标题:嵌入式软件开发导论
链接地址:https://www.777doc.com/doc-3558280 .html