- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Session 2: Testing Windows CE .NET Alan Page, Microsoft 目录 板级支持包(BSP) 简介 BSP的结构 开发BSP 板级支持包(BSP) 简介 板级支持包(BSP) 简介 BSP的结构 OEM抽象层(OAL) 引导程序(Boot Loader) 配置文件 设备驱动程序 创建BSP的两种方法 编写全新的BSP 需要编写所有的部分包括 OEM抽象层, 驱动, 引导程序 大约消耗 20人/月工作量 改写现有的BSP 对与目标板具有相似硬件组成的BSP的基础上进行某些改写,使其适用与目标板,这是最简单的方式。 BSP 向导 下面是创建基于Windows CE 的BSP的一般步骤,典型的情况下会产生一个 .cec w文件 Platform - BSP Wizard BSP开发流程 引导程序(可选) 引导程序的功能 初始化目标设备 内存和中断控制器 设置时钟和内存管理单元 直接引导现存的flash 或RAM 映象 下载之前清空RAM 内存读写测试 下载Windows CE 映象到RAM或flash: 并口 网卡 引导程序的加载 引导菜单 引导程序的开发 实现OEM的应用程序接口(API). 连接Microsoft提供的库 引导程序的任务 控制流图 引导程序 – StartUp函数 硬件复位和运行时复位需要执行的第一条指令 设置为超级用户模式 执行必须的硬件初始化: CPU 内存控制器 系统时钟 串口 缓存 快表 (TLBs) 根据使用的CPU修改Startup.s 引导程序 -- EbootMain EbootMain是C代码运行的入口 调用BLCOMMON库 BLCOMMON 库 源文件在 Blcommon.c 文件中,路径为%_WINCEROOT%\Public\Common\Oak\Drivers\Ethdbg directory 引导程序 – OEMDebugInit 用来初始化串行口,作为调试输出 OEMDebugInit初始化完成后, 一个Windows CE的标记会出现,表示这个接口可以使用了. 引导程序 -- OEMPlatformInit 各种OEM 硬件平台初始化函数,包括时钟, PCI接口,或者NIC接口. NIC接口用于下载映象,另外服务于后面一些函数. 引导程序 -- OEMPreDownload 在加载一个运行时映象时首先被BLCOMMON调用. 查找硬件设备的IP地址,并与宿主机相连 如果出错返回-1 引导程序 -- OEMLaunch OEMLaunch 是引导程序的最后一个需要运行的函数. 负责跳转的到需要运行的映象. 跳转到由dwLaunchAddr指定的第一条指令,这条指令在运行时映象的启动函数里. OAL开发 类似于引导程序的开发 可以重用引导部分的代码 OAL架构 内核开发 内核工作流 KITL 这样的设计可以很容易加入任何调试服务功能 把通信协议和与之直接通信的硬件层分离开来 减少用户在创建硬件独立层的工作量 在系统映象中包含对KITL的支持 启动流程 CPU加电,跳转到复位向量 [可选] 引导程序从Startup()开始执行 执行OAL中的Startup() KernelStart() [ KernelInitialize() For x86 ] Kernel调用 OAL中的OEMInit() 完成内核初始化 内核加载Filesys.exe FileSys初始化注册表 内核加载在HKEY_LOCAL_MACHINE\Init 中列出的应用程序 驱动程序开发 参见前面的课程. 利用 BSP Wizard可以添加到BSP中 我们已经学习过什么? 我们系统、完整地学习了 Windows CE 开发流程. BSP开发 BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。 BSP与开发板一一对应 它所对应的是某块具体的开发板/产品板,而不是某款CPU,也不是某类CPU体系结构。 BSP是相对于操作系统而言的 不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写。 BSP的编程过程大多数是在某一个成型的BSP模板上进行修改,这样才能与上层OS保持正确的接口,良好的支持上层OS。 BSP的主要功能 系统启动时,完成对硬件的初始化。 例如,对系统内存、寄存器、以及设备的中断进行设置。 为驱动程序提供访问硬件的手段。 BSP主要由4部分组成:OEM抽象层、引导程序、设
文档评论(0)