900 likes | 1.06k Views
嵌入式软件开发导论. 5. 操作系统开发. 同济大学软件学院 2006. 目录. 介绍 Platform Builder 用户界面 UI 目录( Catalog) and 特性( Feature) 配置平台 平台创建流程 Build 系统 定制目录 Catalog. 目录. 介绍 Platform Builder 用户界面 UI 目录( Catalog) and 特性( Feature) 配置平台 平台创建流程 Build 系统 定制目录 Catalog. 介绍 Platform Builder.
E N D
嵌入式软件开发导论 5. 操作系统开发 同济大学软件学院 2006
目录 • 介绍 Platform Builder • 用户界面UI • 目录(Catalog) and 特性(Feature) • 配置平台 • 平台创建流程 • Build系统 • 定制目录Catalog
目录 • 介绍 Platform Builder • 用户界面UI • 目录(Catalog) and 特性(Feature) • 配置平台 • 平台创建流程 • Build系统 • 定制目录Catalog
介绍 Platform Builder • 一个定制基于Windows CE的平台定制集成开发环境(IDE) • 提供所有与基于Windows CE平台设计、创建、编译、测试和调试相关的开发工具 • 该集成开发环境提供统一的与平台和项目相关的工作空间
PB能做什么? (1) • 平台向导帮助你创建一个新的平台(platform) • BSP向导帮助你创建新的板级支持包(BSP) • 目录(Catalog)显示用户定制的平台OS属性列表 • 依赖性自动监测(Automated dependency checking)可以确保与平台相关的所有属性都会被包含在OS镜像中 • 导出向导可以导出目录中的属性给其它PB使用者 • 基本配置(Base configurations)是创建用户特定定制OS的起点
PB能做什么?(2) • Windows CE测试套件(Test Kit)提供了整套驱动测试工具 • 内核调试器可以调试定制的OS镜像,同时提供给用户镜像运行状况的信息 • 应用调试器可以调试在特定OS上运行的应用程序 • 远程工具可以调试基于Windows CE的目标机上运行任务,并获取相关信息 • 模拟器通过模拟硬件可以加快和简化开发过程,使用户可以在宿主机上完成平台和应用程序的初步开发 • SDK导出向导可以为用户导出一个特定的软件支持包(software development kit — SDK).
平台向导(Platform Wizard) 平台向导帮助你一步步的创建一个基于Windows CE的平台
使用平台向导的4 步 • 选择一个安装的BSP • 为你的设备选择一个基本平台配置 • 为你的设备选择配置变量 • 为你的平台选择其它的属性
Platform Builder 用户界面 Search Text Text Editor Build Configuration Connectivity Device Name Workspace Window Multiple views of the workspace Debug tool status indicators Output Windows
目录(Catalog) 包含BSPs,驱动,OS内核配置和平台管理器等,在目录中出现的所有项目包含了你所设计的CE平台所使用到的属性
目录(Catalog)项 • BSP:Board Support Packages • Core OS: includes headless devices and display-based devices: • Applications and Services Development • Applications - End User • Communication Services and Networking • Core OS Services • File Systems and Data Store • Fonts • International • Internet Client Services • Multimedia Technologies • Security • Shell and User Interface • Device Drivers • Platform Manager
属性组(Feature Group)和属性(Feature) • 属性组定义了通用的属性而没有定义具体的实现。属性组在你选择一个实现的时候才被解析,这个实现决定了它的具体功能。 • 一个属性是OS组件的任何一个逻辑群
Feature 选项 显示备选feature信息.
Feature依赖关系 显示备选feature的依赖关系
挑战 了解尽可能多的features
挑战 • 丰富的经验和知识 • 没有这些不能设计合理的平台 • Windows CE上可以使用简体中文? • Windows CE支不支持VBScript? • 关于属性的功能可参照 : • 有关Windows CE.NET -> Catalog Features
Platform Setting 使你可以浏览和修改关于整个平台的每个属性的选项 菜单: Platform -> Settings…
Build Options (1) • Enable CE Target Control Support • 选择该选项可以在启动时使能目标控制功能(target control support). 选择这一项同时也打开了内核无关传输层(Kernel Independent Transport Layer — KITL). • Enable Eboot Space in Memory • 选择该选项可以在Config.bib文件中预留内存空间,允许在启动过程中操作系统可以读取boot loader存储的数据. • Enable Event Tracking during Boot • 选择该选项可以开启事件跟踪子系统(event-tracking subsystem). • Enable Full Kernel Mode • 选择该选项可使线程运行在内核模式,选择该模式会使系统较脆弱,但是性能会有所提高. • Enable Image for Flash • 选择该选项可以使编译好的镜像下载后被烧写的到Flash中
Build Options (2) • Enable Kernel Debugger • 允许调试器建立宿主机和目标机间的链接和传送调试信息 • Enable KITL • 要建立宿主机和目标机间的通讯就必须选择该选项,取消该项也会同时取消被选定的“Enable CE Target Control Support ”选项 • Enable Profiling • 选择该选项可以将Windows CE的有关内核的信息以日志的形式装入平台镜像中 • Enable Ship Build • 这是一个有条件编译的标志,设置它表示OS会提供详细的调试信息来帮助调试. • Flush Events to Release Directory • 选择该选项将事件放入release目录,同时开启事件跟踪
平台配置文件 • Platform Builder 使用两类配置文件: • 原码配置文件 • Build工具使用原码配置文件去build模块、属性,同时为你的OS镜像build原码 • 镜像配置文件 • Make Binary Image工具调用相应的工具,这些工具使用镜像配置文件来产生OS镜像
镜像配置文件 参数视图
配置文件: .BIB 文件 • 表明应该被包含在镜像中的模块和组件 • 包含4个部分的文本文件: • 文件部分: 为静态数据文件预留的内存 • 模块部分:指定被装载到内存中的目标模块 ;Name Path Memory Type ----------------------------------------------------- Tahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttf NK SHU Taskman.exe $(_FLATRELEASEDIR)\Taskman.exe NK
配置文件: .BIB 文件 • 内存部分 • 定义平台的内存信息 • 划分物理内存的数据存储和程序存储部分 • 配置部分 • 不是必须的 • 用来设置属性等 • Name Start address Size(bytes) Type • ----------------------------------------------- • NK 8C800000 00800000 RAMIMAGERAM 8C050000 007AFFFF RAM
配置文件: .REG文件 • 定义默认的注册设置 • COMMON.REG, IE.REG, WCEAPPS.REG, WCESHELL.REG: 为Windows CE模块定义注册设置 • PLATFORM.REG:与平台相关的注册设置,如驱动入口等 • PROJECT.REG:定义与你的工程相关的注册设置 • [HKEY_LOCAL_MACHINE\init] • “Launch10”=“shell.exe” • “Launch20”=“device.exe”
配置文件: .DAT文件 • 定义镜像的文件夹结构 • COMMON.DAT, IE.DAT, WCEAPPS.DAT, WCESHELL.DAT • PLATFORM.DAT • PROJECT.DAT • 例子: • Root:-Directory(“Program Files”) • Directory(“\Program Files”):-Directory(“My Projects”) • Root:-Directory(“My Documents”) • Directory(“\My Documents”):-File(“MyFile.doc”,“\ • Windows\Myfile.doc”)
配置文件 : .DB 文件 • 定义默认的镜像数据库 • COMMON.DB, WCEAPPS.DB, WCESHELL.DB • 这些 .DB文件是与Common, Wceapps, and Wceshell模块相关的数据库 • PLATFORM.DB • 该文件包含特定平台的默认数据库 • PROJECT.DB • 该文件特定工程的默认数据库
产生镜像 • 整合release文件夹中的文件来生成Windows CE镜像 • 过程 • 整合配置文件:所有的 .bib 文件到CE.BIB 所有的 .reg 文件到REGINIT.INI所有的 .dat 文件到INITOBJ.DAT 所有的 .db 文件到INITDB.INI • 压缩reginit.ini 到二进制注册文件(DEFAULT.FDF) • 由于语言的适配,替换 .exe and .dll中的资源 for language adaptation • 生成Windows CE镜像 (NK.BIN)
Build的几个阶段 当你在IDE的Biuld菜单下选择Build Platform命令时,系统创建平台依次经历了以下4个过程: • Sysgen 阶段 • Feature Build 阶段 • Release Copy阶段 • Make Image阶段
Sysgen 阶段任务 • 链接相应的静态库到模块 • Make SDK • 过滤系统头文件,产生只包含为声明被平台导出的函数的头文件. • 为系统模块产生输入库 • 构建板级支持包 (BSP)
System Generation Complete header and source code files System-specific header files SYSGEN.BAT Complete system libraries Linked libraries Module definitions (.def) Specific .def files Cesysgen.bat
Feature Build 阶段任务 • 所有的用户属性,包括PB工程文件(.pbp) ,dirs文件,源文件, makefiles (.mak) 被编译和创建
Release Copy 阶段任务 • 拷贝所有用户生成OS镜像所需的文件到release目录下,在Sysgen阶段生成的模块和文件首先被拷贝,接着是Feature Build阶段生成的模块和文件.
Make Image 阶段任务 • Rrelease目录中的文件被整合的二进制镜像文件 Nk.bin中. • 这一阶段对应Build菜单下的Make Image命令
Build 过程 COMMON DATASYNC DCOM DIRECTX IE RDP SCRIPT SERVERS WCEAPPSFE WCESHELLFE … ..\cesysgen\ddk ..\cesysgen\oak ..\cesysgen\sdk \target, \files Step 1. System Generation Step 2. Build ..\platform\.. \target, \files Step 3. Building the Release Directory %_FLATRELEASEDIR% Step 4. Making an Image NK.BIN
Build 结果 • nk.bin : • Windows CE 二进制镜像数据格式 • 运行时必须首先装载到内存中. • 由数据段和代码段组成 • nk.nb0 : • 二进制数据文件格式 • 能够被转载到Flash中 • 可以以 XIP模式运行
XIP介绍 • Execute In Place的简称 • 程序的执行可以直接在ROM中,而不是必须得先装载到RAM中 • 被NOR flash类型的闪存支持
如何解决 Build 中的错误 • 查看 Output窗口 • No enough hard disk space • Compile & link error • 检查WINCE420 根目录下的 Build.log & Build.err文件 • 详细的输出信息 Windows编程经验和知识是你解决问题的关键
解释Build Errors • Sysgen阶段的错误 • Caused by missing files, missing configuration of the operating system features, and applications built during the Sysgen phase • Module build阶段的错误 • Compilation errors or unresolved link errors • Building the release directory阶段的错误File copy errors • Making an image阶段的错误 • Romimage.exe failed in CE.BIB • Romimage.exe failed in reginit.ini • Warning: Image exceeds
作业 • 阅读 在线文档“CEPC How-to Topics”和 “Tutorial: Using Platform Builder with a CEPC” ,x86硬件平台上下载、运行自己的一个Windows CE • 提示 : • 制作wince的启动盘和配置IP地址 • 用cepc BSP 创建你的WinCE • 用你的启动盘启动系统 • 通过TCP/IP链接、下载
目录 • 介绍 Platform Builder • 用户界面UI • 目录(Catalog) and 特性(Feature) • 配置平台 • 平台创建流程 • Build系统 • 定制目录Catalog
Get platform & SDK from OEMs Export your SDK Coding & Testing Release to Manufacture 应用程序开发回顾
平台创建流程 • 得到特定软件开发板(specified Software Development Board —SDB)的BSP • 用Platform Builder定制平台 • 通过SDB下载、调试和运行平台 • 为你的平台构建发布版系统
第一步 : 获得 BSP 从哪获得BSP? • Microsoft • CEPC • 第三方 OEMs • Motorola Dragon ball • Advantech 7230… • 生成自己的 BSP • 后面讨论…
安装和使用 BSP • 如果BSP是以MSI文件提供,象其它的软件那样安装它 • 如果BSP是以源文件的形式提供,在PB中添加相应的 .CEC 文件 • 注意: 你必须首先在PB中安装了相应CPU的支持
第二步: 定制平台 • 在Microsoft提供的模板中选择一个,在它的基础上进行修改 • 从头定制
HLBase and IABase • HL 意思headless, 表示该OS没有图形用户界面GUI • 如果选择 IABase, OS 包含 GUI