当前位置:
文档之家› Windows_CE嵌入式系统开发从基础到实践
Windows_CE嵌入式系统开发从基础到实践
3. 分类:实时系统、分时系统、多任务系统、网络操作系统 4. BSP:
a) BSP与通用计算机领域中的BIOS b) BIOS功能:自检及初始化计算机、程序服务处理及硬件中断处 理、程序服务请求 c) BSP以嵌入式操作系统“驱动程序”的身份出现,与BIOS区别
i. BSP始于操作系统相适应的,但BIOS却是和主板相适应的 ii. 可以对BSP做修改,BIOS一般不能改 iii. 一个BSP对应一个硬件和一个嵌入式操作系统,而一个BIOS
件系统驱动)控制文件系统。注册文件系统(Registered File System),包括三类:RELFSD(Release-Directory File System)、 对象存储系统(RAM File System)和ROM文件系统。 6. Wince6.0注册表存放了与应用程序、驱动、用户设置、其他配置等 相关的数据。有两种方式实现注册表:a.基于RAM的注册表RAMBased Heap File;b.基于HIVE的注册表Hive-Based Registry。前者掉电 丢失,需备份,但是效率高。后者掉电不丢失,但效率相对较低。 7. Windows Embedded CE6.0的注册表有四个根键:
6 sdk 第7章 应用编程接口
1. 应用编程接口(API)、DLL、导入库和一些示例代码构成了一个 SDK(Software Development Kit,软件开发工具包)
2. Windows API a) 特点:通用,高效,轻量。 b) 分类:系统管理、诊断、图形和多媒体、网络、安全、系统服务、 用户接口。 c) 生成步骤:
第3章 Windows CE的体系结构
1. 层次划分:Windows Embedded CE6中分为User Mode(用户模式)
和Kernel Mode(内核模式)
2. Windows
Embedded
CE6支持4种CPU体系结构:
ARM/MOPS/X86/SHx
3. NK.exe是OAL进程,内核KERN.DLL是伴随着OAL启动的,NK.exe
iv. 进程内所有线程自动终止运行。 9. NK.exe,device.exe和Filesys.exe是任何一个Windows CE都必须具备
的进程。 10. wince中,线程可以运行在用户态或内核态,核心态区别于用户态是
因为处在核心态的线程可以访问系统保留的2gb地址空间而不引发访 问违例异常。推荐将结构良好运行稳定的必要线程运行在核心态。 11. 线程创建: HANDLE CreateThread { LPSECURITY_ATTRIBUTES lpsa, DWORD cbStack, LPTHREAD_START_ROUTINE lpStartAddr, LPVOID lpvThreadParam, DWORD fdwCreate, LPDWORD lpIDThread, }; 12. 线程终止方法: v. 线程自动函数返回。(最好方法) vi. ExitThread()函数。只能撤销调用线程。不能很好的释放所有资
是核心
应用程序
K.Coredll.dll
本地进程服务
Win32 APIs
堆
Kenel.dll
NK.lib
虚拟内存
进程线程 进程切换
高度
加载器
同步
初始化 中断处理
进程调度
内存映射文件
DLL接口
进程接口
硬件抽象
内存映射
中断 中断处理
总线映射
Oal.exe
对象存储系统
Hale Waihona Puke 图形、窗口、事件管理器设备管理器
硬件
4. 驱动程序:一般会被一下三种进程加载:文件系统Filesys.dll、设备
终止 运行
8. 进程终止四种方法: i. WinMain()调用返回。(最佳方法) ii. 主线程调用ExitThread()。主线程退出,进程退出。
iii. TermianteProcess()退出。无条件终止进程,一般用于一个进程 关闭另外一个进程,当然,线程也能调用它来关闭自己所处的 进程。
i. HKEY_CLASSES_ROOT:保存文件类型相关数据和OLE配置。 ii. HKEY_CURRENT_USER:用户数据 iii. HKEY_LOCAL_MACHINE:设备相关数据和设备驱动和应用程
序。 iv. HKEY_USERS:存放所有用户共用数据。 8. 存储管理器:(Storage Manager)通过Filesys.dll来实现,一般用它 来对块存储设备进行管理,一般由以下部分组成: v. 块驱动程序 vi. 分区驱动程序 vii. 文件系统驱动程序 viii. 文件筛选器filter
i. 生成*.res文件 ii. 生成*.obj文件 iii. 生成PE文件 3. MFC: a) 特点:封装,继承,虚拟函数和消息映射(多态) b) Wince6.0中的CEDB是桌面Windows没有的数据库,所以有桌面 MFC没有的类。 4. ATL:(ActiveX Template Library,ActiveX模板库)是完全面向 COM的组件。 特点:高度自动化,代码简洁、功能灵活强大。 5. .Net Compact Framework:是.Net Framework的子集,它实现了全部 功能库的30%
态法”,“三态法”几种。
4. 在Windows中,可以被加载的模块有两种,dll和exe 5. wince进程与Windows操作系统的区别:
a) 不支持环境变量。 b) 没有当前目录的概念 c) 不支持安全。 d) 不支持句柄继承。
6.
1. 进程的创建: BOOL CreateProcess {
i. 没有内核对象的方法,运行在用户态,特点是运行效率较高, 但是不能够进行进程间的同步。这类方法有关键区和互锁函 数。
ii. 有内核对象的方法,运行在内核态,特点是可以跨进程,但效 率相对较低。这类方法有互斥体、信号量和事件。
b) 描述 i. 关键区(Critical Section)主要针对代码段进行控制。 ii. 互锁函数(Interlocked)主要用来对变量或者指针进行一些同步 操作。
3. 嵌入式系统的组成: 硬件上:处理器、存储系统、输入输出设备、网络与通信模块、I/O单 元。 软件上:应用软件、操作系统软件、板载支持包BSP(Board Support Package) 第2章 嵌入式操作系统
1. 软件结构: 由下到上:BSP,嵌入式操作系统,应用软件
2. 嵌入式操作系统的组成结构: 又下到上:内核、初始进程、Boot Loader驱动程序、应用程序文件系 统、TCP/IP协议簇
对应一个硬件和多个操作系统 iv. BSP中可以加入非系统必须的东西 d) BSP特点:操作系统相关性、硬件相关性 e) 主要工作:系统初始化、硬件相关的设备驱动 5. 嵌入式操作系统选择原则: 许可方式和许可费用、源代码的开放性、调试和开发工具、模块化情 况、驱动程序及硬件支持性、调试和开发工具、模块化情况、驱动程序 及硬件支持性、存储器占用情况、对硬件设备的要求、当前应用规模、 目标系统规模及性能要求
第5章 Windows CE的存储系统 1. 存储系统:内存管理和文件系统。前者主要负责系统内存的管理、 分配等,主要涉及虚拟地址空间、物理地址映射等。后者主要负责 内存以外的各种存储设备管理,对象存储、文件系统、注册表、数 据库、存储管理器。 2. wince内存结构: 程序 运行时库 逻辑内存 虚拟内存
源。 vii. TerminateThread()函数。撤销所有线程。但不知道能否真正撤
销。 viii. 线程所在进程被终止。 13. 纤程是一种自己控制其运行情况的特殊线程。内核并不知道纤程, 它是非抢占式的调度。除非有涉及良好的结构,否则不建议使用。 14. 线程的调度:
ix. Windows CE使用了基于优先级的时间片轮转算法对线程进行调 度。
LPCWSTR pszImageName, LPCWSTR pszCmdLine, LPSECURITY_ATTRIBUTES pszProcess, LPSECURITY_ATTRIBUTES pszThread, BOOL fInheritHandles, DWORD fdwCreate, LPVOID pvEnvironment, LPWSTR pszCurDir, LPSTARTUPINFOW psiStartInfo, LPPROCESS_INFORMATION pProcInfo. }; Wince中,由于不支持安全、句柄继承、环境变量和当前目录。所以简化为 BOOL CreateProcess { LPCWSTR pszImageName, LPCWSTR pszCmdLine, NULL NULL FALSE, DWORD fdwCreate, NULL, NULL, NULL, LPPROCESS_INFORMATION pProcInfo. };
iii. 互斥体(Mutual Exclusion),如果一个线程需要使用互斥体, 前提是这个互斥体当前没有被别的线程使用,如果互斥体已经 被其他线程使用,这个线程就进入阻塞状态。
iv. 信号量(Semaphore)互斥体对象只能被一个线程所使用而信号 量对象可以同时被多个线程使用,但使用的线程数有一个上 限。
管理器device.dll、图形窗口事件管理器GWES.dll
第4章 进程和线程
1. PCB(Process Control Block,进程控制块)是进程存在的标志。程
序、数据和PCB是进程的三大组成部分。
2. 进程的执行情况,顺序执行和并发执行。
3. 采用多道程序技术的操作系统,对于进程的划分,有“七态法”,“五
物理内存 3. RAM/ROM/闪存: 在嵌入式操作系统中都可以用做内存。RAM丢电丢失,ROM和闪存不 会。大多数程序需要调到RAM中再执行。ROM中压缩状态的程序需要调 到RAM,非压缩的可以直接执行,叫XIP(eXecute In Place就地执行)。 闪存为了减少ROM的空间不足而产生,具有速度高容量大的优点。 4. wince6与wince5对比: a) 系统启动没有加载MMU(Memory Management Unit,存储管理单元) 是,只能访问物理地址。加载后映射虚拟地址。 b) Wince5虚拟内存模型,4GB的虚拟地址空间被划为两部分: 0x8000000到0xFFFFFFFF是内核空间,0x00000000到0x7FFFFFFF为用户 空间。每个进程32MB的虚拟地址空间。最多32个进程(包括内核中的 NK.exe) c) Wince6与xp的虚拟内存模型相似。 5. Windows CE6.0有两种类型的文件系统:FSDs(File System Drivers,文