嵌入式软件开发导论
This presentation is the property of its rightful owner.
Sponsored Links
1 / 40

嵌入式软件开发导论 PowerPoint PPT Presentation


  • 101 Views
  • Uploaded on
  • Presentation posted in: General

嵌入式软件开发导论. 8. BSP 开发. 同济大学软件学院 2006. 目录. 板级支持包( BSP) 的开发 标准 CETK 测试的使用. 板级支持包( BSP) 简介. BSP 是在标准开发板上运行的一部分软件,主要功能是支持操作系统的引导与开发。通过 BSP 我们可以在开发板上快速的启动操作系统以及分析操作系统的性能。有了 BSP 的支持,各个 OEM( 原始设备制造商)厂商和独立硬件开发商就可以缩短基于 Windows CE 平台产品的开发周期。. CPU 支持包( CSP) & OEM 抽象层( OAL). OAL : OEM 抽象层

Download Presentation

嵌入式软件开发导论

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


3980163

嵌入式软件开发导论

8. BSP开发

同济大学软件学院

2006


3980163

目录

  • 板级支持包(BSP)的开发

  • 标准CETK 测试的使用


3980163

板级支持包(BSP) 简介

BSP是在标准开发板上运行的一部分软件,主要功能是支持操作系统的引导与开发。通过BSP我们可以在开发板上快速的启动操作系统以及分析操作系统的性能。有了BSP的支持,各个OEM(原始设备制造商)厂商和独立硬件开发商就可以缩短基于Windows CE平台产品的开发周期。


Cpu csp oem oal

CPU支持包(CSP) & OEM抽象层(OAL)

  • OAL : OEM 抽象层

    • 位于Windows CE 系统内核和目标板硬件之间,负责操作系统和目标板的通信。由引导程序调用,随后进行目标板的初始化工作,包括中断服务,实时时钟,内部计时器,调试部件,中断使能等等

    • 由硬件 OEM厂商提供


Cpu csp oem oal1

CPU支持包(CSP) & OEM抽象层(OAL)

  • CSP : CPU 支持包

    • 包括用以支持特定CPU和相关芯片的OEM抽象层和设备驱动,这一部分是与特定开发板无关的。

    • 通常由操作系统开发商提供,Win CE操作系统是由微软公司开发的。


3980163

板级支持包的组成


3980163

BSP

硬件抽象层

驱动

配置文件

引导程序

标准开发板

BSP 架构


3980163

创建BSP的两种方法

  • 编写全新的BSP

    • 需要编写所有的部分包括 OEM抽象层, 驱动, 引导程序

    • 大约消耗 20人/月工作量

  • 改写现有的BSP

    • 对与目标板具有相似硬件组成的BSP的基础上进行某些改写,使其适用与目标板,这是最简单的方式。


3980163

BSP 向导

  • 下面是创建基于Windows CE 的BSP的一般步骤,典型的情况下会产生一个 .cec w文件

  • Platform -> BSP Wizard


3980163

BSP开发流程


3980163

引导程序(可选)

  • 如果操作系统映象可以直接引导,引导程序不是必须的

  • 但通常使用一个引导程序,以便日后的扩充。另外也可以用于支持制造过程中的下载测试

  • 引导程序的重要性在于可以支持开发过程中的运行时映象加载功能,也就是说在系统运行过程中,动态加载需要调试的模块


3980163

引导程序的功能

  • 初始化目标设备

    • 内存和中断控制器

    • 设置时钟和内存管理单元

    • 直接引导现存的flash 或RAM 映象

    • 下载之前清空RAM

    • 内存读写测试

  • 下载Windows CE 映象到RAM或flash:

    • 并口

    • 网卡


3980163

引导程序的加载


3980163

引导菜单


3980163

引导程序的开发

  • 实现OEM的应用程序接口(API).

  • 连接Microsoft提供的库


3980163

引导程序的任务

黑体字标识的函数需要由OEM厂商来实现.


3980163

控制流图

C:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\BLCOMMON


Startup

引导程序 – StartUp函数

  • 硬件复位和运行时复位需要执行的第一条指令

  • 设置为超级用户模式

  • 执行必须的硬件初始化:

    • CPU

    • 内存控制器

    • 系统时钟

    • 串口

    • 缓存

    • 快表 (TLBs)

  • 根据使用的CPU修改Startup.s


Ebootmain

引导程序 -- EbootMain

  • EbootMain是C代码运行的入口

  • 调用BLCOMMON库

  • BLCOMMON 库 源文件在 Blcommon.c 文件中,路径为%_WINCEROOT%\Public\Common\Oak\Drivers\Ethdbg directory


Oemdebuginit

引导程序 – OEMDebugInit

  • 用来初始化串行口,作为调试输出

  • OEMDebugInit初始化完成后, 一个Windows CE的标记会出现,表示这个接口可以使用了.


Oemplatforminit

引导程序 -- OEMPlatformInit

  • 各种OEM 硬件平台初始化函数,包括时钟, PCI接口,或者NIC接口.

  • NIC接口用于下载映象,另外服务于后面一些函数.


Oempredownload

引导程序 -- OEMPreDownload

  • 在加载一个运行时映象时首先被BLCOMMON调用.

  • 查找硬件设备的IP地址,并与宿主机相连

  • 如果出错返回-1


Oemlaunch

引导程序 -- OEMLaunch

  • OEMLaunch 是引导程序的最后一个需要运行的函数.

  • 负责跳转的到需要运行的映象.

  • 跳转到由dwLaunchAddr指定的第一条指令,这条指令在运行时映象的启动函数里.


3980163

OAL开发

  • 类似于引导程序的开发

  • 可以重用引导部分的代码


3980163

OAL架构


3980163

内核开发

黑体显示的函数需要由OEM厂商来实现


3980163

内核工作流


3980163

KITL

  • 这样的设计可以很容易加入任何调试服务功能

  • 把通信协议和与之直接通信的硬件层分离开来

  • 减少用户在创建硬件独立层的工作量

  • 在系统映象中包含对KITL的支持


3980163

启动流程

  • CPU加电,跳转到复位向量

  • [可选] 引导程序从Startup()开始执行

  • 执行OAL中的Startup()

  • KernelStart() [ KernelInitialize() For x86 ]

  • Kernel调用 OAL中的OEMInit()

  • 完成内核初始化

  • 内核加载Filesys.exe

  • FileSys初始化注册表

  • 内核加载在HKEY_LOCAL_MACHINE\Init 中列出的应用程序


3980163

驱动程序开发

  • 参见前面的课程.

  • 利用 BSP Wizard可以添加到BSP中


Motorola dragonball bsp

举例:分析 Motorola DragonBall BSP


3980163

我们已经学习过什么?

我们系统、完整地学习了 Windows CE 开发流程.


3980163

需要设计硬件?

设计实现你的硬件

从设备制造商得到硬件和 BSP

为硬件设计BSP

需要定制平台?

定制你的 Win CE 平台

从设备制造商处得到平台和 SDK

导出你的 SDK

编码、测试

发布产品


3980163

综述

  • Windows CE 测试工具包 (CETK)

  • Tux “server”

  • Kato 日志引擎

  • 设备驱动加载以及TUX扩展(DDLX)

  • 常规 TUX 测试


3980163

CETK 结构


Windows ce cetk

Windows CE 测试工具包 (CETK)

  • Microsoft 提供了自动测试体系结构

    • Client/Server结构支持远端测试

  • 通过 “Tux”加载自动测试

    • 实际的测试是以DLLs的形式通过 TUX加载到系统中

  • 通用日志引擎 “Kato”

    • DLL exposes C and C++ API for logging to the server

  • CETK Server

    • 利用TUX启动特定的测试

    • 保存日志以及产生报告

    • 运行于桌面系统以便进行远程测试


Tux server

TUX Server

  • TUX.EXE

    • 监控 TUX 测试 DLLs的程序

  • 实际的测试是以 DLL的形式进行的

    • 通过 TUX.EXE加载测试DLL

  • 由远端用户界面应用程序发起运行

    • 桌面系统上的CETEST.EXE

  • 也可以在设备上独立运行


3980163

KATO 日志引擎

  • DLL :提供 API,以便将测试结果保存成日志

    • C++ 类库

    • C 函数

  • 从TUX测试抽象出日志机制

    • 本地文件

    • 远端连接


Tux ddlx

设备驱动加载以及TUX扩展 (DDLX)

  • 允许测试 DLL加载到设备管理进程空间

  • 允许对APIs和功能的测试仅仅对设备管理模块可用

    • 设备管理模块直接向驱动提供 APIs

    • 驱动可以直接为其他驱动提供服务


3980163

常规的TUX 测试

  • TUXSKEL

    • 微软提供的 TUX 测试构架

    • 作为一个最初的 “模板”用来创建常规 TUX 测试

  • IDE New Project Wizard 产生一个基于TUXSKEL 结构的常规TUX 测试

    • 比手工复制和修改 TUXSKEL要简单


  • Login