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

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


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

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

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


5603584

嵌入式软件开发导论

5. 操作系统开发

同济大学软件学院

2005


5603584

目录

  • 介绍 Platform Builder

    • 用户界面UI

    • 目录(Catalog) and 特性(Feature)

    • 配置平台

  • 平台创建流程

  • Build系统

  • 定制目录Catalog


5603584

目录

  • 介绍 Platform Builder

    • 用户界面UI

    • 目录(Catalog) and 特性(Feature)

    • 配置平台

  • 平台创建流程

  • Build系统

  • 定制目录Catalog


Platform builder

介绍 Platform Builder

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

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

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


5603584

PB能做什么? (1)

  • 平台向导帮助你创建一个新的平台(platform)

  • BSP向导帮助你创建新的板级支持包(BSP)

  • 目录(Catalog)显示用户定制的平台OS属性列表

  • 依赖性自动监测(Automated dependency checking)可以确保与平台相关的所有属性都会被包含在OS镜像中

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

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


5603584

PB能做什么?(2)

  • Windows CE测试套件(Test Kit)提供了整套驱动测试工具

  • 内核调试器可以调试定制的OS镜像,同时提供给用户镜像运行状况的信息

  • 应用调试器可以调试在特定OS上运行的应用程序

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

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

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


Platform wizard

平台向导(Platform Wizard)

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


5603584

使用平台向导的4 步

  • 选择一个安装的BSP

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

  • 为你的设备选择配置变量

  • 为你的平台选择其它的属性


5603584

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

目录(Catalog)

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


Catalog1

目录(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

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

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

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


Feature

Feature 图标


Feature 2

Feature 图标(2)


Feature1

Feature 选项

显示备选feature信息.


Feature2

Feature依赖关系

显示备选feature的依赖关系


5603584

挑战

了解尽可能多的features


5603584

挑战

  • 丰富的经验和知识

  • 没有这些不能设计合理的平台

    • Windows CE上可以使用简体中文?

    • Windows CE支不支持VBScript?

  • 关于属性的功能可参照 :

    • 有关Windows CE.NET -> Catalog Features


Platform setting

Platform Setting

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

菜单: Platform -> Settings…


Build options 1

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

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目录,同时开启事件跟踪


5603584

平台配置文件

  • Platform Builder 使用两类配置文件:

  • 原码配置文件

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

  • 镜像配置文件

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


5603584

原码配置文件


5603584

镜像配置文件

参数视图


5603584

配置文件: .BIB 文件

  • 表明应该被包含在镜像中的模块和组件

  • 包含4个部分的文本文件:

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

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

;NamePathMemory Type

-----------------------------------------------------

Tahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttf NK SHU

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


5603584

配置文件: .BIB 文件

  • 内存部分

    • 定义平台的内存信息

    • 划分物理内存的数据存储和程序存储部分

  • 配置部分

    • 不是必须的

    • 用来设置属性等

  • NameStart addressSize(bytes) Type

  • -----------------------------------------------

  • NK8C80000000800000RAMIMAGERAM8C050000007AFFFFRAM


5603584

配置文件: .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”


5603584

配置文件: .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”)


5603584

配置文件 : .DB 文件

  • 定义默认的镜像数据库

    • COMMON.DB, WCEAPPS.DB, WCESHELL.DB

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

    • PLATFORM.DB

      • 该文件包含特定平台的默认数据库

    • PROJECT.DB

      • 该文件特定工程的默认数据库


5603584

产生镜像

  • 整合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

Build的几个阶段

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

  • Sysgen 阶段

  • Feature Build 阶段

  • Release Copy阶段

  • Make Image阶段


Sysgen

Sysgen 阶段任务

  • 链接相应的静态库到模块

  • Make SDK

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

    • 为系统模块产生输入库

  • 构建板级支持包 (BSP)


5603584

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

Feature Build 阶段任务

  • 所有的用户属性,包括PB工程文件(.pbp) ,dirs文件,源文件, makefiles (.mak) 被编译和创建


Release copy

Release Copy 阶段任务

  • 拷贝所有用户生成OS镜像所需的文件到release目录下,在Sysgen阶段生成的模块和文件首先被拷贝,接着是Feature Build阶段生成的模块和文件.


Make image

Make Image 阶段任务

  • Rrelease目录中的文件被整合的二进制镜像文件 Nk.bin中.

  • 这一阶段对应Build菜单下的Make Image命令


5603584

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


Build1

Build 结果

  • nk.bin :

    • Windows CE 二进制镜像数据格式

    • 运行时必须首先装载到内存中.

    • 由数据段和代码段组成

  • nk.nb0 :

    • 二进制数据文件格式

    • 能够被转载到Flash中

    • 可以以 XIP模式运行


5603584

XIP介绍

  • Execute In Place的简称

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

  • 被NOR flash类型的闪存支持


Build2

如何解决 Build 中的错误

  • 查看 Output窗口

    • No enough hard disk space

    • Compile & link error

  • 检查WINCE420 根目录下的 Build.log & Build.err文件

    • 详细的输出信息

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


5603584

解释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


5603584

作业

  • 阅读 在线文档“CEPC How-to Topics”和 “Tutorial: Using Platform Builder with a CEPC” ,x86硬件平台上下载、运行自己的一个Windows CE

  • 提示 :

    • 制作wince的启动盘和配置IP地址

    • 用cepc BSP 创建你的WinCE

    • 用你的启动盘启动系统

    • 通过TCP/IP链接、下载


5603584

目录

  • 介绍 Platform Builder

    • 用户界面UI

    • 目录(Catalog) and 特性(Feature)

    • 配置平台

  • 平台创建流程

  • Build系统

  • 定制目录Catalog


5603584

Get platform & SDK from OEMs

Export your SDK

Coding & Testing

Release to Manufacture

应用程序开发回顾


5603584

平台创建流程

  • 得到特定软件开发板(specified Software Development Board —SDB)的BSP

  • 用Platform Builder定制平台

  • 通过SDB下载、调试和运行平台

  • 为你的平台构建发布版系统


5603584

第一步 : 获得 BSP

从哪获得BSP?

  • Microsoft

    • CEPC

  • 第三方 OEMs

    • Motorola Dragon ball

    • Advantech 7230…

  • 生成自己的 BSP

    • 后面讨论…


5603584

安装和使用 BSP

  • 如果BSP是以MSI文件提供,象其它的软件那样安装它

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

  • 注意: 你必须首先在PB中安装了相应CPU的支持


Motorola dragon ball mxl bsp

演示:安装和使用 Motorola Dragon Ball MXL BSP


5603584

第二步: 定制平台

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

  • 从头定制


Hlbase and iabase

HLBase and IABase

  • HL 意思headless, 表示该OS没有图形用户界面GUI

  • 如果选择 IABase, OS 包含 GUI


5603584

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

  • 获得 Eboot or Sboot

  • 配置网络

  • 配置串行调试接口(可选)

  • 配置Platform Builder链接

  • 下载 OS镜像到板子

常规步骤:


Eboot or sboot

获得Eboot or Sboot

  • Bootloader通常做为BSP的一部分由 OEMs提供.

  • boot loader的目的是装载OS镜像到内存中,然后跳到OS启动程序

    • Eboot : Ethernet Bootloader

    • Sboot : Serial Bootloader

  • 通常在release版中被除去


Bootloader

各种Bootloader

  • Flash into flash Rom

  • Use boot floppy disk

  • Use CF card

唯一的目的:

下载OS镜像


5603584

为串口配置网络

  • 只插串口链接线

  • 缺点 : 太慢


5603584

为以太网配置网络

  • 用Hub


5603584

为以太网配置网络

  • 使用独立的网络链接


5603584

配置串行调试接口

  • 插RS232串口适配器到ADS板和你主机上默认的COM口.

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


5603584

超级终端


5603584

配置 PB链接

  • 从Target -> Configure Remote Connection


5603584

配置 PB 链接

Eboot会向LAN发送广播包,PB接收和显示设备ID


5603584

下载 OS 镜像到板子

在PB中点击Target → Download/Initialize.


5603584

在设备的屏幕上你会看到


5603584

我们到哪了?

Get hardware & BSP from OEMs

Need platform customization?

Customize your Win CE platform

Get platform & SDK from OEMs

Export your SDK

Coding & Testing

Release to Manufacture


5603584

目录

  • 介绍 Platform Builder

    • 用户界面UI

    • 目录(Catalog) and 特性(Feature)

    • 配置平台

  • 平台创建流程

  • Build系统

  • 定制目录Catalog


5603584

PB 目录结构


5603584

环境变量

  • %_WINCEROOT%

    - Windows CE 安装的根目录

  • 通常 为C:\WINCE500

  • %_PUBLICROOT% - %_WINCEROOT%\PUBLIC

  • %_PLATROOT% - %_WINCEROOT%\Platform

  • 其它

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


Platform

Platform目录

  • 包含与特定硬件平台相关的BSP文件

  • 定位在以下目录

    %_WINCEROOT%\Platform

  • 包含以下子目录

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

    • 每一目录包含一个dirs文件和至少一个特定BSP的批处理文件

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


Public

Public目录

  • 包含与平台无关的组件和配置设置

  • 定位在以下目录%_WINCEROOT%\Public

  • 包含以下子目录:

    • 模块、组件子目录

      Common, Wceshellfe, Wceappsfe, IE, Servers

    • 相关配置子目录

      - CEBASE


5603584

SDK 目录

  • 定位在以下目录

    %_WINCEROOT%\SDK

  • 包含支持Platform Builder的工具

    • Processor compilers

    • Development tools

    • Miscellaneous utilities


Others

Others 目录

  • 定位在以下目录

    %_WINCEROOT%\OTHERS

  • 包括以下子目录:

    • ATL: 包含调试用的 ATL 头文件,库和原码等

    • DOTNET:包含 .NET 可用的各处理器的二进制文件和portable .NET Compact Framework 文件

    • MFC: 包含调试用的MFC 头 文件,库和原码等

    • SAMPLES: 包含 MFC和ATL应用例程

    • WCETK: 包含 Windows CE Test Kit (CETK) 相关二进制文件


Private

Private 目录

  • 定位在以下目录

    %_WINCEROOT%\PRIVATE

  • 在安装的时候必须检查选项,与 Shared Source License 项保持一致

    • 你可以装载你的产品的最新版私人代码

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

  • 包括的:

    • Kernel

    • GWES components

    • Filesys components


5603584

SYSGEN

  • 根据OS设计配置过滤模块和组件

    Build

  • 使用 DIRS, SOURCES 和 OS 设计工作空间为BSP和应用build原码

    BUILDREL

  • 拷贝文件到release目录下

    Make Image

  • 用release目录里的文件身成OS实时镜像

1

1

2

2

3

3

4

4

回顾Build的4个步骤


Build system

Build System概述

  • IDE作为客户端,通过命令行创建 build system.

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

  • 命令行工具存放在 :

    • %_PUBLICROOT%\COMMON\OAK\MISC


5603584

环境变量

  • 重要目录

    • %_WINCEROOT%

    • %_PublicRoot%

  • 可选的OS属性

    • SYSGEN_AYGSHELL

    • SYSGEN_BATTERY

    • SYSGEN_STANDARDSHELL

  • Platform->Setting options

    • IMGAUTOFLUSH

    • WINCESHIP

    • IMGRAM64


5603584

原码结构

  • DIRS

  • SOURCES

  • MakeFile

    • makefile.def


5603584

DIRS 文件

  • DIRS

    • 类似工作空间“Workspace”中包含的工程“projects”列表

    • 文本文件列出了包含其它DIRS or SOURCES文件的目录列表

    • BUILD.EXE 通过读DIRS文件确定build的内容

    • 例如:

DIRS=\

Eboot \

Drivers


Sources

SOURCES

  • SOURCES

    • 工程的源文件列表

  • TARGETNAME

    • 输出目标名 (非扩展)

  • TARGETTYPE

    • PROGRAM – (.EXE) Application

    • DYNLINK – (.DLL) Dynamic Link Library

    • LIBRARY – (.LIB) Static library


5603584

%_MAKEENVROOT%

MAKEFILE.INC

MAKEFILE.DEF

Local project folder

SOURCES

文件结构

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


5603584

有用的命令行工具

  • Wince.bat

  • Blddemo.bat

  • Cebuild.bat

  • Build.exe

  • Sysgen.bat

  • Buildrel.bat

  • Makeimg.exe


Wince bat

Wince.bat

  • 通过3个输入参数为宿主机准备开发环境

    • %_TGTCPU%

    • %_TGTPROJ%

    • %_TGTPLAT%

  • 例: wince x86 MYPROJ CEPC


Blddemo bat

BldDemo.bat

  • 用来build 和生成 OS 镜像.

  • 它调用3个工具:

    • Cebuild.bat: Build平台的模块、属性和原码

    • Buildrel.bat: 为平台拷贝文件到release目录下,它是生成二进制镜像的工具

    • Makeimg.exe:产生OS镜像


Build exe

Build.exe

  • 用来构建、创建各种项目

    • DIRS文件定义目录结构

  • 自动监测源文件和头文件的依赖关系

  • Windows CE Build过程的核心

  • 调用NMAKE.EXE 做真正的build

  • DIRS和SOURCES 决定build的内容


Build3

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

  • 设置环境变量

  • Build OS镜像


5603584

示例

set _WINCEROOT=E:\WINCE420

set _PROJECTROOT=E:\GOOD\WINCE420\Emulator

set _FLATRELEASEDIR=E:\GOOD\RelDir\EMULATOR_X86Release

set _PROJPUBLICROOT=E:\GOOD\WINCE420\public

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

call wince.bat X86 GOOD EMULATOR

set SYSGEN_CURSOR=1

set SYSGEN_CONNMC=1

set SYSGEN_MENU_OVERLAP=1

set SYSGEN_MSIM=1

blddemo –q


5603584

目录

  • 介绍 Platform Builder

    • 用户界面UI

    • 目录(Catalog) and 特性(Feature)

    • 配置平台

  • 平台创建流程

  • Build系统

  • 定制目录Catalog


Windows ce

Windows CE目录

  • CE目录项的数据库

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

  • 在树型Catalog view中显示目录项列表

    • 允许使用拖拉和删除的方式选择目录中的项用于定制

  • 可通过用户或第三方扩展目录

    • 通过导入 CEC文件向目录中添加项目


5603584

CEC 文件

  • CECInfo 块

    • 包含CEC文件的普通信息

  • ComponentType 块

    • Top-level 结构描述.

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

  • Implementation 块

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

  • BuildMethod 块

    • 描述项目定位的原码位置


5603584

CEC编辑器介绍

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


5603584

定制 CEC文件步骤:

  • 生成目录属性文件

  • 添加一个执行(Implementation)

  • 添加一个Build方法(Method)

  • 添加一个二进制信息(BIBInformation)

  • 为目录添加属性


5603584

作业

  • 要求:按照学号尾号为索引,使用Windows CE构建下列平台:

    • 0:智能手机

    • 1:数码相机/数码摄像机

    • 2:家用音响

    • 3:手持游戏机(类似于GBA)

    • 4:网络视频电话终端

    • 5:超市付款结算终端

    • 6:ATM自动取款机

    • 7:IPOD MP3

    • 8:空调

    • 9:“小霸王”学习机

  • 提交文档:projectname.pbw, projectname.wce, projectname_setenv.bat与Word文档报告

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


  • Login