嵌入式软件开发导论

90
嵌嵌嵌嵌嵌嵌嵌嵌嵌 嵌嵌嵌嵌嵌嵌嵌嵌嵌 嵌嵌嵌嵌嵌嵌嵌嵌 嵌嵌嵌嵌嵌嵌嵌嵌 2006 2006 5. 5. 嵌嵌嵌 嵌嵌 嵌嵌嵌 嵌嵌

Upload: erich-rice

Post on 31-Dec-2015

43 views

Category:

Documents


1 download

DESCRIPTION

嵌入式软件开发导论. 5. 操作系统开发. 同济大学软件学院 2006. 目录. 介绍 Platform Builder 用户界面 UI 目录( Catalog) and 特性( Feature) 配置平台 平台创建流程 Build 系统 定制目录 Catalog. 目录. 介绍 Platform Builder 用户界面 UI 目录( Catalog) and 特性( Feature) 配置平台 平台创建流程 Build 系统 定制目录 Catalog. 介绍 Platform Builder. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 嵌入式软件开发导论

嵌入式软件开发导论嵌入式软件开发导论

同济大学软件学院同济大学软件学院

20062006

5. 5. 操作系统开发操作系统开发

Page 2: 嵌入式软件开发导论

目录目录 介绍 介绍 Platform BuilderPlatform Builder

用户界面用户界面 UIUI 目录目录 ((Catalog) and Catalog) and 特性特性 ((Feature)Feature) 配置平台配置平台

平台创建流程平台创建流程

BuildBuild 系统系统

定制目录定制目录 CatalogCatalog

Page 3: 嵌入式软件开发导论

目录目录 介绍 介绍 Platform BuilderPlatform Builder

用户界面用户界面 UIUI 目录目录 ((Catalog) and Catalog) and 特性特性 ((Feature)Feature) 配置平台配置平台

平台创建流程平台创建流程

BuildBuild 系统系统

定制目录定制目录 CatalogCatalog

Page 4: 嵌入式软件开发导论

介绍 介绍 Platform BuilderPlatform Builder

一个定制基于一个定制基于 Windows CEWindows CE 的平台定制集成开的平台定制集成开发环境发环境 (IDE) (IDE)

提供所有与基于提供所有与基于 Windows CEWindows CE 平台设计、创建、平台设计、创建、编译、测试和调试相关的开发工具编译、测试和调试相关的开发工具

该集成开发环境提供统一的与平台和项目相关的该集成开发环境提供统一的与平台和项目相关的工作空间工作空间

Page 5: 嵌入式软件开发导论

PBPB 能做什么能做什么 ? (1)? (1)

平台向导平台向导帮助你创建一个新的平台帮助你创建一个新的平台 ((platform)platform) BSPBSP 向导向导帮助你创建新的板级支持包帮助你创建新的板级支持包 ((BSP) BSP) 目录目录 ((Catalog)Catalog) 显示用户定制的平台显示用户定制的平台 OSOS 属性列属性列

表表 依赖性自动监测依赖性自动监测 ((Automated dependency Automated dependency

checking)checking) 可以确保与平台相关的所有属性都会可以确保与平台相关的所有属性都会被包含在被包含在 OSOS 镜像中镜像中

导出向导导出向导可以导出目录中的属性给其它可以导出目录中的属性给其它 PBPB 使用使用者者

基本配置基本配置 ((Base configurations)Base configurations) 是创建用户特定是创建用户特定定制定制 OSOS 的起点的起点

Page 6: 嵌入式软件开发导论

PBPB 能做什么能做什么 ??(2)(2) Windows CEWindows CE 测试套件测试套件 ((Test Kit)Test Kit) 提供了整套驱提供了整套驱

动测试工具动测试工具 内核调试器可以调试定制的内核调试器可以调试定制的 OSOS 镜像,同时提供镜像,同时提供

给用户镜像运行状况的信息给用户镜像运行状况的信息 应用调试器可以调试在特定应用调试器可以调试在特定 OSOS 上运行的应用程上运行的应用程序序

远程工具可以调试基于远程工具可以调试基于 Windows CEWindows CE 的目标机上的目标机上运行任务,并获取相关信息运行任务,并获取相关信息

模拟器通过模拟硬件可以加快和简化开发过程,模拟器通过模拟硬件可以加快和简化开发过程,使用户可以在宿主机上完成平台和应用程序的初使用户可以在宿主机上完成平台和应用程序的初步开发步开发

SDKSDK 导出向导可以为用户导出一个特定的软件支导出向导可以为用户导出一个特定的软件支持包持包 ((software development kit — SDK). software development kit — SDK).

Page 7: 嵌入式软件开发导论

平台向导平台向导 ((Platform Wizard)Platform Wizard)平台向导帮助你一步步的创建一个基于 Windows CE 的平台

Page 8: 嵌入式软件开发导论

使用平台向导的使用平台向导的 4 4 步步1.1. 选择一个安装的选择一个安装的 BSPBSP

2.2. 为你的设备选择一个基本平台配置为你的设备选择一个基本平台配置

3.3. 为你的设备选择配置变量为你的设备选择配置变量

4.4. 为你的平台选择其它的属性为你的平台选择其它的属性

Page 9: 嵌入式软件开发导论

Platform Builder Platform Builder 用户界面用户界面

Text Editor

Workspace Window

Search Text

Connectivity Device Name

Output Windows

Debug tool status

indicators

Multiple views of the workspace

Build Configuration

Page 10: 嵌入式软件开发导论

目录目录 ((Catalog)Catalog)

包含包含 BSPsBSPs ,,驱驱动,动, OSOS 内核配内核配置和平台管理器置和平台管理器等,在目录中出等,在目录中出现的所有项目包现的所有项目包含了你所设计的含了你所设计的CECE 平台所使用平台所使用到的属性到的属性

Page 11: 嵌入式软件开发导论

• BSP:Board Support Packages BSP:Board Support Packages

• Core OS: includes headless devices and display-based devices: Core OS: includes headless devices and display-based devices:

• Applications and Services Development Applications and Services Development

• Applications - End User Applications - End User

• Communication Services and Networking Communication Services and Networking

• Core OS Services Core OS Services

• File Systems and Data Store File Systems and Data Store

• Fonts Fonts

• International International

• Internet Client Services Internet Client Services

• Multimedia Technologies Multimedia Technologies

• Security Security

• Shell and User Interface Shell and User Interface

• Device Drivers Device Drivers

• Platform Manager Platform Manager

目录目录 ((CatalogCatalog)) 项项

Page 12: 嵌入式软件开发导论

属性组属性组 ((Feature Group)Feature Group) 和属性和属性((Feature)Feature)

属性组定义了通用的属性而没有定义具体属性组定义了通用的属性而没有定义具体的实现。属性组在你选择一个实现的时候的实现。属性组在你选择一个实现的时候才被解析,这个实现决定了它的具体功能。才被解析,这个实现决定了它的具体功能。

一个属性是一个属性是 OSOS 组件的任何一个逻辑群组件的任何一个逻辑群

Page 13: 嵌入式软件开发导论

Feature Feature 图标图标图标图标 描述描述

BSP BSP

Core OS design Core OS design

Catalog item group.Catalog item group.

Required Catalog item.Required Catalog item.

Optional Catalog item.Optional Catalog item.

Catalog item, type, or implementation excluded from the current OS Catalog item, type, or implementation excluded from the current OS design. design.

FolderFolder

Catalog item that has one or more special notifications.Catalog item that has one or more special notifications.

Catalog properties for a specific implementation of a Catalog item. Catalog properties for a specific implementation of a Catalog item.

ImplementationImplementation

Page 14: 嵌入式软件开发导论

Feature Feature 图标图标 (2)(2)

图标图标 描述描述User-specified Catalog item.User-specified Catalog item.

Catalog item (optional).Catalog item (optional).

Catalog item that can be built but is excluded from the run-time Catalog item that can be built but is excluded from the run-time image.image.

Catalog item excluded from the build and the run-time image. Catalog item excluded from the build and the run-time image.

Source code file.Source code file.

Page 15: 嵌入式软件开发导论

Feature Feature 选项选项显示备选显示备选 featurefeature 信息信息 . .

Page 16: 嵌入式软件开发导论

FeatureFeature 依赖关系依赖关系显示备选显示备选 featurefeature 的依赖关系的依赖关系

Page 17: 嵌入式软件开发导论

挑战挑战

了解尽可能多的了解尽可能多的featuresfeatures

Page 18: 嵌入式软件开发导论

挑战挑战 丰富的经验和知识丰富的经验和知识 没有这些不能设计合理的平台没有这些不能设计合理的平台

Windows CEWindows CE 上可以使用简体中文上可以使用简体中文 ?? Windows CEWindows CE 支不支持支不支持 VBScript?VBScript?

关于属性的功能可参照 关于属性的功能可参照 :: 有关有关 Windows CE.NET -> Catalog FeaturesWindows CE.NET -> Catalog Features

Page 19: 嵌入式软件开发导论

Platform SettingPlatform Setting使你可以浏览和修改关于整个平台的每个属性的选项使你可以浏览和修改关于整个平台的每个属性的选项

菜单: 菜单: Platform -> Settings…Platform -> Settings…

Page 20: 嵌入式软件开发导论

Build Options (1)Build Options (1) Enable CE Target Control Support Enable CE Target Control Support

选择该选项可以在启动时使能目标控制功能选择该选项可以在启动时使能目标控制功能 (target control (target control support). support). 选择这一项同时也打开了内核无关传输层选择这一项同时也打开了内核无关传输层 ((Kernel Kernel Independent Transport Layer — KITL). Independent Transport Layer — KITL).

Enable Eboot Space in MemoryEnable Eboot Space in Memory 选择该选项可以在选择该选项可以在 Config.bibConfig.bib 文件中预留内存空间,允许在启动过文件中预留内存空间,允许在启动过

程中操作系统可以读取程中操作系统可以读取 boot loaderboot loader 存储的数据存储的数据 . . Enable Event Tracking during Boot Enable Event Tracking during Boot

选择该选项可以开启事件跟踪子系统选择该选项可以开启事件跟踪子系统 ((event-tracking subsystem). event-tracking subsystem). Enable Full Kernel ModeEnable Full Kernel Mode

选择该选项可使线程运行在内核模式,选择该模式会使系统较脆弱,选择该选项可使线程运行在内核模式,选择该模式会使系统较脆弱,但是性能会有所提高但是性能会有所提高 . .

Enable Image for Flash Enable Image for Flash 选择该选项可以使编译好的镜像下载后被烧写的到选择该选项可以使编译好的镜像下载后被烧写的到 FlashFlash 中中

Page 21: 嵌入式软件开发导论

Build Options (2)Build Options (2)

Enable Kernel DebuggerEnable Kernel Debugger 允许调试器建立宿主机和目标机间的链接和传送调试信息允许调试器建立宿主机和目标机间的链接和传送调试信息

Enable KITLEnable KITL 要建立宿主机和目标机间的通讯就必须选择该选项,取消该项也要建立宿主机和目标机间的通讯就必须选择该选项,取消该项也

会同时取消被选定的“会同时取消被选定的“ Enable CE Target Control Support Enable CE Target Control Support ”” 选选项项

Enable Profiling Enable Profiling 选择该选项可以将选择该选项可以将 Windows CEWindows CE 的有关内核的信息以日志的形式的有关内核的信息以日志的形式

装入平台镜像中装入平台镜像中 Enable Ship Build Enable Ship Build

这是一个有条件编译的标志,设置它表示这是一个有条件编译的标志,设置它表示 OSOS 会提供详细的调试会提供详细的调试信息来帮助调试信息来帮助调试 . .

Flush Events to Release Directory Flush Events to Release Directory 选择该选项将事件放入选择该选项将事件放入 releaserelease 目录,同时开启事件跟踪目录,同时开启事件跟踪

Page 22: 嵌入式软件开发导论

平台配置文件平台配置文件Platform Builder 使用两类配置文件 :

• 原码配置文件原码配置文件Build 工具使用原码配置文件去 build 模块、属性,同时为你的 OS 镜像 build 原码

• 镜像配置文件镜像配置文件Make Binary Image 工具调用相应的工具,这些工具使用镜像配置文件来产生 OS 镜像

Page 24: 嵌入式软件开发导论

镜像配置文件镜像配置文件

参数视图参数视图

Page 25: 嵌入式软件开发导论

配置配置文件文件 : .BIB : .BIB 文件文件

表明表明应该被包含在镜像中的模块和组件应该被包含在镜像中的模块和组件包含包含 44 个部分的文本文件个部分的文本文件 ::

文件文件部分部分 : : 为为静态数据文件预留的内存静态数据文件预留的内存

模块部分:模块部分:指定被装载到内存中的目标模块指定被装载到内存中的目标模块

;Name Path Memory Type-----------------------------------------------------Tahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttf NK SHU

;Name Path Memory Type-----------------------------------------------------Tahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttf NK SHU

Taskman.exe $(_FLATRELEASEDIR)\Taskman.exe NK Taskman.exe $(_FLATRELEASEDIR)\Taskman.exe NK

Page 26: 嵌入式软件开发导论

配置配置文件文件 : .BIB : .BIB 文件文件内存内存部分部分

定义定义平台的内存信息平台的内存信息划分划分物理内存的数据存储和程序存储部分物理内存的数据存储和程序存储部分

配置配置部分部分不是不是必须的必须的用来用来设置属性等设置属性等

Name Start address Size(bytes) Type-----------------------------------------------NK 8C800000 00800000 RAMIMAGERAM 8C050000 007AFFFF RAM

Name Start address Size(bytes) Type-----------------------------------------------NK 8C800000 00800000 RAMIMAGERAM 8C050000 007AFFFF RAM

Page 27: 嵌入式软件开发导论

配置配置文件文件 : .REG: .REG文件文件

定义定义默认的注册设置默认的注册设置 COMMON.REG, IE.REG, COMMON.REG, IE.REG,

WCEAPPS.REG, WCESHELL.REG: WCEAPPS.REG, WCESHELL.REG: 为为 Windows CEWindows CE 模块定义注册设置模块定义注册设置

PLATFORM.REG:PLATFORM.REG: 与与平台相关的注册设平台相关的注册设置,如驱动入口等置,如驱动入口等

PROJECT.REG:PROJECT.REG:定义定义与你的工程相关与你的工程相关的注册设置的注册设置

[HKEY_LOCAL_MACHINE\init]“Launch10”=“shell.exe”“Launch20”=“device.exe”

[HKEY_LOCAL_MACHINE\init]“Launch10”=“shell.exe”“Launch20”=“device.exe”

Page 28: 嵌入式软件开发导论

配置文件配置文件 : .DAT: .DAT文件文件

定义定义镜像的文件夹结构镜像的文件夹结构 COMMON.DAT, IE.DAT, COMMON.DAT, IE.DAT,

WCEAPPS.DAT, WCESHELL.DATWCEAPPS.DAT, WCESHELL.DAT PLATFORM.DAT PLATFORM.DAT PROJECT.DATPROJECT.DAT

例子例子 ::Root:-Directory(“Program Files”)Directory(“\Program Files”):-Directory(“My Projects”)

Root:-Directory(“My Documents”)Directory(“\My Documents”):-File(“MyFile.doc”,“\Windows\Myfile.doc”)

Root:-Directory(“Program Files”)Directory(“\Program Files”):-Directory(“My Projects”)

Root:-Directory(“My Documents”)Directory(“\My Documents”):-File(“MyFile.doc”,“\Windows\Myfile.doc”)

Page 29: 嵌入式软件开发导论

配置文件配置文件 : .DB : .DB 文件文件

定义定义默认的镜像数据库默认的镜像数据库 COMMON.DB, WCEAPPS.DB, COMMON.DB, WCEAPPS.DB,

WCESHELL.DB WCESHELL.DB 这些这些 .DB.DB文件文件是与是与 Common, Wceapps, Common, Wceapps, and Wceshelland Wceshell模块模块相关的数据库相关的数据库

PLATFORM.DBPLATFORM.DB该文件该文件包含特定平台的默认数据库包含特定平台的默认数据库

PROJECT.DBPROJECT.DB该文件该文件特定工程的默认数据库特定工程的默认数据库

Page 30: 嵌入式软件开发导论

产生产生镜像镜像整合整合 releaserelease文件夹文件夹中的文件来生成中的文件来生成 Windows Windows

CECE 镜像镜像过程过程

整合整合配置文件配置文件 ::所有所有的的 .bib .bib 文件文件到到 CE.BIB CE.BIB 所有所有的的 .reg .reg 文件文件到到 REGINIT.INIREGINIT.INI所有所有的的 .dat .dat 文件文件到到 INITOBJ.DAT INITOBJ.DAT 所有所有的的 .db .db 文件文件到到 INITDB.INIINITDB.INI

压缩压缩 reginit.ini reginit.ini 到到二进制注册文件二进制注册文件 (DEFAULT.FDF)(DEFAULT.FDF) 由于语言的适配,替换由于语言的适配,替换 .exe and .dll.exe and .dll中的中的资源资源 for for

language adaptationlanguage adaptation 生成生成 Windows CEWindows CE镜像镜像 (NK.BIN)(NK.BIN)

Page 31: 嵌入式软件开发导论

BuildBuild 的几个阶段的几个阶段

Sysgen Sysgen 阶段阶段 Feature Build Feature Build 阶段阶段 Release CopyRelease Copy 阶段阶段 Make ImageMake Image 阶段阶段

当你在 IDE的 Biuld 菜单下选择 Build Platform 命令时,系统创建平台依次经历了以下 4 个过程 :

Page 32: 嵌入式软件开发导论

Sysgen Sysgen 阶段任务阶段任务1.1. 链接相应的静态库到模块链接相应的静态库到模块2.2. Make SDKMake SDK

1.1. 过滤系统头文件,产生只包含为声明被平台导出的函数的头文过滤系统头文件,产生只包含为声明被平台导出的函数的头文件件 ..

2.2. 为系统模块产生输入库为系统模块产生输入库3.3. 构建板级支持包 构建板级支持包 ((BSP)BSP)

Page 33: 嵌入式软件开发导论

System GenerationSystem Generation

Complete header and source code

files

Complete system libraries

Module definitions (.def)

Cesysgen.bat

System-specific

header files

Linked libraries

Specific .def files

SYSGEN.BAT

Page 34: 嵌入式软件开发导论

Feature Build Feature Build 阶段任务阶段任务 所有的用户属性,包括所有的用户属性,包括 PBPB 工程文件工程文件

(.pbp) (.pbp) ,, dirsdirs 文件,源文件, 文件,源文件, makefiles makefiles (.mak) (.mak) 被编译和创建被编译和创建

Page 35: 嵌入式软件开发导论

Release Copy Release Copy 阶段任务阶段任务 拷贝所有用户生成拷贝所有用户生成 OSOS 镜像所需的文件到镜像所需的文件到

releaserelease 目录下,在目录下,在 SysgenSysgen阶段生成的模块和阶段生成的模块和文件首先被拷贝,接着是文件首先被拷贝,接着是 Feature BuildFeature Build 阶段生阶段生成的模块和文件成的模块和文件 . .

Page 36: 嵌入式软件开发导论

Make Image Make Image 阶段任务阶段任务 RreleaseRrelease 目录中的文件被整合的二进制镜像文件目录中的文件被整合的二进制镜像文件

Nk.binNk.bin 中中 .. 这一阶段对应这一阶段对应 BuildBuild菜单下的菜单下的 Make ImageMake Image 命命令令

Page 37: 嵌入式软件开发导论

Build Build 过程过程COMMON

DATASYNCDCOM

DIRECTXIE

RDPSCRIPT

SERVERSWCEAPPSFE

WCESHELLFE…

..\cesysgen\ddk

..\cesysgen\oak

..\cesysgen\sdk\target, \files

Step 1. System Generation

Step 2. Build

Step 3. Building the Release Directory

Step 4. Making an Image

NK.BIN

..\platform\..\target, \files

%_FLATRELEASEDIR%

Page 38: 嵌入式软件开发导论

Build Build 结果结果 nk.bin : nk.bin :

Windows CE Windows CE 二进制镜像数据格式二进制镜像数据格式 运行时必须首先装载到内存中运行时必须首先装载到内存中 .. 由数据段和代码段组成由数据段和代码段组成

nk.nb0 : nk.nb0 : 二进制数据文件格式 二进制数据文件格式 能够被转载到能够被转载到 FlashFlash 中中 可以以 可以以 XIPXIP 模式运行模式运行

Page 39: 嵌入式软件开发导论

XIPXIP 介绍介绍 Execute In PlaceExecute In Place 的简称的简称

程序的执行可以直接在程序的执行可以直接在 ROMROM 中,而不是中,而不是必须得先装载到必须得先装载到 RAMRAM中中

被被 NOR flashNOR flash 类型的闪存支持类型的闪存支持

Page 40: 嵌入式软件开发导论

如何解决 如何解决 Build Build 中的错误中的错误1.1. 查看 查看 OutputOutput 窗口窗口

No enough hard disk spaceNo enough hard disk space Compile & link errorCompile & link error

2.2. 检查检查 WINCE420 WINCE420 根目录下的 根目录下的 Build.log & Build.log & Build.errBuild.err 文件 文件 详细的输出信息详细的输出信息

WindowsWindows 编程经验和知识是你解决问题的关键编程经验和知识是你解决问题的关键

Page 41: 嵌入式软件开发导论

解释解释 Build ErrorsBuild ErrorsSysgenSysgen阶段的错误阶段的错误

Caused by missing files, missing configuration of the Caused by missing files, missing configuration of the operating system features, and applications built operating system features, and applications built during the Sysgen phaseduring the Sysgen phase

Module buildModule build 阶段的错误阶段的错误 Compilation errors or unresolved link errorsCompilation errors or unresolved link errors

Building the release directoryBuilding the release directory 阶段的错误阶段的错误 File File copy errorscopy errors

Making an imageMaking an image 阶段的错误阶段的错误 Romimage.exe failed in CE.BIBRomimage.exe failed in CE.BIB Romimage.exe failed in reginit.iniRomimage.exe failed in reginit.ini Warning: Image exceedsWarning: Image exceeds

Page 42: 嵌入式软件开发导论

作业作业 阅读 在线文档“阅读 在线文档“ CEPC How-to Topics”CEPC How-to Topics”

和 “和 “ Tutorial: Using Platform Builder Tutorial: Using Platform Builder with a CEPC” with a CEPC” ,, x86x86硬件平台上下载、硬件平台上下载、运行自己的一个运行自己的一个 Windows CEWindows CE

提示 提示 ::1.1. 制作制作 wincewince 的启动盘和配置的启动盘和配置 IPIP地址地址2.2. 用用 cepc BSPcepc BSP 创建你的创建你的 WinCE WinCE

3.3. 用你的启动盘启动系统用你的启动盘启动系统4.4. 通过通过 TCP/IPTCP/IP 链接、下载链接、下载

Page 43: 嵌入式软件开发导论

目录目录 介绍 介绍 Platform BuilderPlatform Builder

用户界面用户界面 UIUI 目录目录 ((Catalog) and Catalog) and 特性特性 ((Feature)Feature) 配置平台配置平台

平台创建流程平台创建流程

BuildBuild 系统系统

定制目录定制目录 CatalogCatalog

Page 44: 嵌入式软件开发导论

应用程序开发回顾应用程序开发回顾

Get platform & SDK from OEMs

Coding & Testing

Release to Manufacture

Export your SDK

Page 45: 嵌入式软件开发导论

平台创建流程平台创建流程1.1. 得到特定软件开发板得到特定软件开发板 ((specified Software specified Software

Development Board —SDB)Development Board —SDB) 的的 BSPBSP

2.2. 用用 Platform BuilderPlatform Builder 定制平台定制平台3.3. 通过通过 SDBSDB 下载、调试和运行平台下载、调试和运行平台4.4. 为你的平台构建发布版系统为你的平台构建发布版系统

Page 46: 嵌入式软件开发导论

第一步 第一步 : : 获得 获得 BSPBSP

MicrosoftMicrosoft CEPCCEPC

第三方 第三方 OEMsOEMs Motorola Dragon ballMotorola Dragon ball Advantech 7230…Advantech 7230…

生成自己的 生成自己的 BSPBSP 后面讨论…后面讨论…

从哪获得从哪获得 BSP?BSP?

Page 47: 嵌入式软件开发导论

安装和使用 安装和使用 BSPBSP

如果如果 BSPBSP 是以是以 MSIMSI 文件提供,象其它的文件提供,象其它的软件那样安装它软件那样安装它

如果如果 BSPBSP 是以源文件的形式提供,在是以源文件的形式提供,在 PBPB中添加相应的中添加相应的 .CEC .CEC 文件文件

注意注意 : : 你必须首先在你必须首先在 PBPB 中安装了相应中安装了相应CPUCPU 的支持的支持

Page 48: 嵌入式软件开发导论

演示演示 ::安装和使用 安装和使用 Motorola Dragon Motorola Dragon

Ball MXL BSPBall MXL BSP

Page 49: 嵌入式软件开发导论

第二步第二步 : : 定制平台定制平台

在在 MicrosoftMicrosoft 提供的模板中选择一个,在提供的模板中选择一个,在它的基础上进行修改它的基础上进行修改

从头定制从头定制

Page 50: 嵌入式软件开发导论

HLBase and IABaseHLBase and IABase

HL HL 意思意思 headless, headless, 表示该表示该 OSOS 没有图形没有图形用户界面用户界面 GUIGUI

如果选择 如果选择 IABase, OS IABase, OS 包含 包含 GUIGUI

Page 51: 嵌入式软件开发导论

第三步第三步 : : 通过通过 SDBSDB 下载、调试和下载、调试和运行平台运行平台

获得 获得 Eboot or SbootEboot or Sboot 配置网络配置网络 配置串行调试接口配置串行调试接口 (( 可选可选 )) 配置配置 Platform BuilderPlatform Builder 链接链接 下载 下载 OSOS 镜像到板子镜像到板子

常规步骤常规步骤 ::

Page 52: 嵌入式软件开发导论

获得获得 Eboot or SbootEboot or Sboot

BootloaderBootloader 通常做为通常做为 BSPBSP 的一部分由的一部分由 OEMsOEMs 提供提供 ..

boot loaderboot loader 的目的是装载的目的是装载 OSOS 镜像到内存镜像到内存中,然后跳到中,然后跳到 OSOS 启动程序启动程序 Eboot : Ethernet BootloaderEboot : Ethernet Bootloader Sboot : Serial BootloaderSboot : Serial Bootloader

通常在通常在 releaserelease版中被除去版中被除去

Page 53: 嵌入式软件开发导论

各种各种 BootloaderBootloader

Flash into flash RomFlash into flash Rom Use boot floppy diskUse boot floppy disk Use CF cardUse CF card ……

唯一的目的唯一的目的 ::

下载下载 OSOS 镜像镜像

Page 54: 嵌入式软件开发导论

为串口配置网络为串口配置网络

只插串口链接线只插串口链接线

缺点 缺点 : : 太慢太慢

Page 55: 嵌入式软件开发导论

为以太网配置网络为以太网配置网络

用用 HubHub

Page 56: 嵌入式软件开发导论

为以太网配置网络为以太网配置网络

使用独立的网络链接使用独立的网络链接

Page 57: 嵌入式软件开发导论

配置串行调试接口配置串行调试接口 插 RS232 串口适配器到 ADS 板和你主机

上默认的 COM口 .

选择 Start Menu → Programs→ Accessories → Hyperterminal → Hyperterminal 去激活一个 Hyperterm 窗口

Page 58: 嵌入式软件开发导论

超级终端超级终端

Page 59: 嵌入式软件开发导论

配置 配置 PBPB 链接链接 从从 Target -> Configure Remote Target -> Configure Remote

ConnectionConnection

Page 60: 嵌入式软件开发导论

配置 配置 PB PB 链接链接EbootEboot 会向会向 LANLAN 发送发送广播包广播包,, PBPB 接接收和显示设备收和显示设备 IDID

Page 61: 嵌入式软件开发导论

下载 下载 OS OS 镜像到板子镜像到板子

在在 PBPB 中点击中点击 Target → Download/Initialize.

Page 62: 嵌入式软件开发导论

在设备的屏幕上你会看到在设备的屏幕上你会看到

Page 63: 嵌入式软件开发导论

我们到哪了我们到哪了 ??

Get hardware & BSP from OEMs

Need platform customization

?

Get platform & SDK from OEMs

Customize your Win CE platform

Export your SDK

Coding & Testing

Release to Manufacture

Page 64: 嵌入式软件开发导论

目录目录 介绍 介绍 Platform BuilderPlatform Builder

用户界面用户界面 UIUI 目录目录 ((Catalog) and Catalog) and 特性特性 ((Feature)Feature) 配置平台配置平台

平台创建流程平台创建流程

BuildBuild 系统系统

定制目录定制目录 CatalogCatalog

Page 65: 嵌入式软件开发导论

PB PB 目录结构目录结构Directory Description

Others Run-time files, binary files for building OS image files, registry files, and batch files that are used to add files to an OS image.

Platform BSP and Device-specific files and directories.

Private Source code for the Windows CE OS.

Public Directories for the Windows CE OS configurations.

SDK Tools and libraries in the Windows CE SDK that support Platform Builder.

Page 66: 嵌入式软件开发导论

环境变量环境变量 %_WINCEROOT% %_WINCEROOT%

- Windows CE - Windows CE 安装的根目录安装的根目录 通常 为通常 为 C:\WINCE500C:\WINCE500 %_PUBLICROOT% - %_WINCEROOT%_PUBLICROOT% - %_WINCEROOT

%\PUBLIC%\PUBLIC %_PLATROOT% - %_WINCEROOT%\%_PLATROOT% - %_WINCEROOT%\

PlatformPlatform 其它其它

在在 buildbuild窗口的命令提示符中使用窗口的命令提示符中使用‘‘ set’ set’ 可以可以查看当前的环境变量查看当前的环境变量

Page 67: 嵌入式软件开发导论

包含包含与特定硬件平台相关的与特定硬件平台相关的 BSPBSP 文件文件定位在定位在以下目录以下目录 %_WINCEROOT%\Platform%_WINCEROOT%\Platform包含包含以下子目录以下子目录

每一每一个目录用于描述某一特定个目录用于描述某一特定 Windows CEWindows CE 平台的应平台的应用用

每一每一目录包含一个目录包含一个 dirsdirs文件文件和至少和至少 一个一个特定特定 BSPBSP 的批的批处理文件处理文件

将将你与该特定硬件平台相关的文件放入对应目录你与该特定硬件平台相关的文件放入对应目录

PlatformPlatform 目录目录

Page 68: 嵌入式软件开发导论

PublicPublic 目录目录包含包含与与平台无关平台无关的组件和配置设置的组件和配置设置定位在定位在以下目录以下目录 %_WINCEROOT%\%_WINCEROOT%\

PublicPublic包含包含以下子目录以下子目录 ::

模块、模块、组件子目录组件子目录 Common, Wceshellfe, Wceappsfe, IE, Common, Wceshellfe, Wceappsfe, IE,

ServersServers相关相关配置子目录配置子目录 - CEBASE- CEBASE

Page 69: 嵌入式软件开发导论

SDK SDK 目录目录定位在定位在以下目录以下目录 %_WINCEROOT%\SDK%_WINCEROOT%\SDK包含包含支持支持 Platform BuilderPlatform Builder 的工具的工具

Processor compilersProcessor compilers Development toolsDevelopment tools Miscellaneous utilitiesMiscellaneous utilities

Page 70: 嵌入式软件开发导论

Others Others 目录目录定位在定位在以下目录以下目录 %_WINCEROOT%\OTHERS%_WINCEROOT%\OTHERS包括包括以下子目录以下子目录 ::

ATL: ATL: 包含包含调试用的调试用的 ATL ATL 头文件头文件 ,,库库和原码和原码等等 DOTNET:DOTNET:包含包含 .NET .NET 可用的可用的各处理器的二进制各处理器的二进制

文件和文件和 portable .NET Compact Framework portable .NET Compact Framework 文文件件

MFC: MFC: 包含包含调试用的调试用的 MFC MFC 头 文件 头 文件 ,,库库和原码和原码等等 SAMPLES: SAMPLES: 包含包含 MFCMFC和和 ATLATL应用应用例程例程 WCETK: WCETK: 包含包含 Windows CE Test Kit (CETK) Windows CE Test Kit (CETK) 相关相关二进制文件二进制文件

Page 71: 嵌入式软件开发导论

Private Private 目录目录定位在定位在以下目录以下目录 %_WINCEROOT%\PRIVATE%_WINCEROOT%\PRIVATE在在安装的时候必须检查选项,安装的时候必须检查选项,与与 Shared Source Shared Source

License License 项项保持一致保持一致 你可以你可以装载你的产品的最新版私人代码装载你的产品的最新版私人代码

Premium (“Almost everything”) Source Premium (“Almost everything”) Source 都是都是可可用的用的

包括的包括的 :: KernelKernel GWES componentsGWES components Filesys componentsFilesys components

Page 72: 嵌入式软件开发导论

回顾回顾 BuildBuild 的的 44 个步骤个步骤Catalog Items

OS DesignBSP / project Source Code

%_FLATRELEASEDIR%

Run-Time Image

BUILDREL

SysgenFilter

Build

2

1

3

4

SYSGENSYSGEN 根据根据 OSOS 设计配置过滤模块和设计配置过滤模块和

组件组件 BuildBuild

使用 使用 DIRS, SOURCES DIRS, SOURCES 和 和 OS OS 设计工作空间为设计工作空间为 BSPBSP 和和应用应用 buildbuild 原码原码

BUILDRELBUILDREL 拷贝文件到拷贝文件到 releaserelease 目录下目录下

Make ImageMake Image 用用 releaserelease 目录里的文件身成目录里的文件身成

OSOS 实时镜像实时镜像

1

2

3

4

Page 73: 嵌入式软件开发导论

Build SystemBuild System 概述概述 IDEIDE 作为客户端,通过作为客户端,通过命令行命令行创建 创建 build build

system. system.

命令行工具使用命令行工具使用环境变量环境变量 确认 确认 BuildBuild 设置,设置,并调用编译器和连接器并调用编译器和连接器

命令行工具存放在 命令行工具存放在 :: %_PUBLICROOT%\COMMON\OAK\MISC%_PUBLICROOT%\COMMON\OAK\MISC

Page 74: 嵌入式软件开发导论

环境变量环境变量 重要目录重要目录

%_WINCEROOT%%_WINCEROOT% %_PublicRoot%%_PublicRoot%

可选的可选的 OSOS 属性属性 SYSGEN_AYGSHELLSYSGEN_AYGSHELL SYSGEN_BATTERYSYSGEN_BATTERY SYSGEN_STANDARDSHELLSYSGEN_STANDARDSHELL

Platform->Setting optionsPlatform->Setting options IMGAUTOFLUSHIMGAUTOFLUSH WINCESHIPWINCESHIP IMGRAM64IMGRAM64

Page 75: 嵌入式软件开发导论

原码结构原码结构 DIRSDIRS

SOURCESSOURCES

MakeFileMakeFile makefile.defmakefile.def

Page 76: 嵌入式软件开发导论

DIRS DIRS 文件文件DIRSDIRS

类似工作空间类似工作空间““ Workspace”Workspace” 中包含的工程中包含的工程““ projects”projects”列表列表 文本文件列出了包含其它文本文件列出了包含其它 DIRS or SOURCESDIRS or SOURCES 文件的目录列表文件的目录列表 BUILD.EXE BUILD.EXE 通过读通过读 DIRSDIRS 文件确定文件确定 buildbuild 的内容的内容 例如例如 ::

DIRS=\

Eboot \

Drivers

Page 77: 嵌入式软件开发导论

SOURCESSOURCESSOURCESSOURCES

工程的源文件列表工程的源文件列表TARGETNAMETARGETNAME

输出目标名 输出目标名 ((非扩展非扩展 ))TARGETTYPETARGETTYPE

PROGRAM – (.EXE) ApplicationPROGRAM – (.EXE) Application DYNLINK – (.DLL) Dynamic Link LibraryDYNLINK – (.DLL) Dynamic Link Library LIBRARY – (.LIB) Static libraryLIBRARY – (.LIB) Static library

Page 78: 嵌入式软件开发导论

文件结构文件结构 文本文件被包含在文本文件被包含在 makefile.def makefile.def ,,提供给目标机关于提供给目标机关于 buildbuild 的相关信息的相关信息

MAKEFILE.INC

SOURCES

MAKEFILE.DEFLocal

project folder

%_MAKEENVROOT%

Page 79: 嵌入式软件开发导论

有用的命令行工具有用的命令行工具 Wince.batWince.bat Blddemo.batBlddemo.bat Cebuild.batCebuild.bat Build.exeBuild.exe Sysgen.batSysgen.bat Buildrel.batBuildrel.bat Makeimg.exeMakeimg.exe

Page 80: 嵌入式软件开发导论

Wince.batWince.bat

通过通过 33 个输入参数为宿主机准备开发环境个输入参数为宿主机准备开发环境 %_TGTCPU% %_TGTCPU% %_TGTPROJ% %_TGTPROJ% %_TGTPLAT% %_TGTPLAT%

例例 : : wince x86 MYPROJ CEPCwince x86 MYPROJ CEPC

Page 81: 嵌入式软件开发导论

BldDemo.bat BldDemo.bat

用来用来 build build 和生成 和生成 OS OS 镜像镜像 .. 它调用它调用 33 个工具个工具 ::

Cebuild.batCebuild.bat: Build: Build 平台的模块、属性和原码 平台的模块、属性和原码 Buildrel.batBuildrel.bat: : 为平台拷贝文件到为平台拷贝文件到 releaserelease 目目

录下,它是生成二进制镜像的工具录下,它是生成二进制镜像的工具 Makeimg.exeMakeimg.exe ::产生产生 OSOS 镜像镜像

Page 82: 嵌入式软件开发导论

Build.exeBuild.exe

用来构建、创建各种项目用来构建、创建各种项目 DIRSDIRS 文件定义目录结构文件定义目录结构

自动监测源文件和头文件的依赖关系自动监测源文件和头文件的依赖关系Windows CE BuildWindows CE Build 过程的核心过程的核心调用调用 NMAKE.EXE NMAKE.EXE 做真正的做真正的 buildbuildDIRSDIRS和和 SOURCES SOURCES 决定决定 buildbuild 的内容的内容

Page 83: 嵌入式软件开发导论

如何通过设置命令行来如何通过设置命令行来 BuildBuild 环环境境

1.1. 设置环境变量设置环境变量

2.2. Build OSBuild OS 镜像镜像

Page 84: 嵌入式软件开发导论

示例示例set _WINCEROOT=E:\WINCE420set _PROJECTROOT=E:\GOOD\WINCE420\Emulatorset _FLATRELEASEDIR=E:\GOOD\RelDir\EMULATOR_X86Releaseset _PROJPUBLICROOT=E:\GOOD\WINCE420\public

cd %_WINCEROOT%\public\common\oak\misc

call wince.bat X86 GOOD EMULATOR

set SYSGEN_CURSOR=1set SYSGEN_CONNMC=1set SYSGEN_MENU_OVERLAP=1set SYSGEN_MSIM=1

blddemo –q

Page 85: 嵌入式软件开发导论

目录目录 介绍 介绍 Platform BuilderPlatform Builder

用户界面用户界面 UIUI 目录目录 ((Catalog) and Catalog) and 特性特性 ((Feature)Feature) 配置平台配置平台

平台创建流程平台创建流程

BuildBuild 系统系统

定制目录定制目录 CatalogCatalog

Page 86: 嵌入式软件开发导论

Windows CEWindows CE 目录目录 CECE 目录项的数据库目录项的数据库

每项都是你所选的实时镜像中模块的组件或子模块每项都是你所选的实时镜像中模块的组件或子模块

在树型在树型 Catalog viewCatalog view 中显示目录项列表中显示目录项列表 允许使用拖拉和删除的方式选择目录中的项用于定制允许使用拖拉和删除的方式选择目录中的项用于定制

可通过用户或第三方扩展目录可通过用户或第三方扩展目录 通过导入 通过导入 CECCEC 文件向目录中添加项目文件向目录中添加项目

Page 87: 嵌入式软件开发导论

CEC CEC 文件文件 CECInfo CECInfo 块块

包含包含 CECCEC 文件的普通信息文件的普通信息 ComponentType ComponentType 块块

TTop-level op-level 结构描述结构描述 . .

例例 , ‘Audio Driver’ , ‘Audio Driver’ 可能可能就是一个就是一个 ComponentType ComponentType ((类似类似面向对象编程中的一个类面向对象编程中的一个类 ))

Implementation Implementation 块块描述描述 ComponentTypeComponentType 的的具体实现 具体实现 ((类似类似面向对象编程面向对象编程中的目标实体中的目标实体 ))

BuildMethod BuildMethod 块块描述描述项目定位的原码位置项目定位的原码位置

Page 88: 嵌入式软件开发导论

CECCEC 编辑器介绍编辑器介绍

CECCEC 编辑器它是编辑器它是 ToolsTools 菜单下的菜单下的一个工具项,通过它你可以生成、编辑一个工具项,通过它你可以生成、编辑 ..ceccec 文件。文件。

Page 89: 嵌入式软件开发导论

定制 定制 CECCEC 文件步骤文件步骤 ::

1.1. 生成目录属性文件生成目录属性文件2.2. 添加一个执行添加一个执行 ((Implementation) Implementation)

3.3. 添加一个添加一个 BuildBuild 方法方法 ((Method) Method)

4.4. 添加一个二进制信息添加一个二进制信息 ((BIBBIB Information) Information)

5.5. 为目录添加属性为目录添加属性

Page 90: 嵌入式软件开发导论

作业作业 要求:按照学号尾号为索引,使用要求:按照学号尾号为索引,使用 Windows CEWindows CE构建下列平台:构建下列平台: 00 :智能手机:智能手机 11 :数码相机:数码相机 // 数码摄像机数码摄像机 22 :家用音响:家用音响 33 :手持游戏机(类似于:手持游戏机(类似于 GBAGBA )) 44 :网络视频电话终端:网络视频电话终端 55 :超市付款结算终端:超市付款结算终端 66:: ATMATM 自动取款机自动取款机 77:: IPOD MP3IPOD MP3 88 :空调:空调 99 :“小霸王”学习机:“小霸王”学习机

提交文档:提交文档: projectname.pbw, projectname.pbw, projectname.wce, projectname_setenv.batprojectname.wce, projectname_setenv.bat与与WordWord 文档报告文档报告

报告内容:平台名称:选择的组件列表,选择这些报告内容:平台名称:选择的组件列表,选择这些组件的功能,选择这些组件的原因。组件的功能,选择这些组件的原因。