WinCE EBOOT中的BootPart分析

应该说BootPart算是微软提供的一个用于分区的模块,可以在EBOOT中使用。不过说实话,我很少使用它,知道有些厂商的BSP里面支持这个功能,而且也算是EBOOT的一部分,所以还是介绍一下。先看一下架构,如图:

 

EBOOT中,BLCOMMON处于最上层,这个在以前已经介绍过,BootPart模块会被OEM函数来调用,而BootPart模块要操作存储设备需要Flash Driver的支持。这里要说的是Flash Driver是指WinCE下的Flash驱动,也就是FMD_xxx接口的驱动。所以要使用BootPart模块,首先要有Flash的驱动的支持。BootPart模块在”/WINCE600/public/common/oak/drivers/ethdbg/bootpart”下面可以找到源代码,主要的实现都在bootpart.cpp中。Bootpart模块主要提供对Flash设备的分区功能和对BinFS的支持。下面介绍一下会用到的函数:

 

1. BOOL BP_Init (LPBYTE pMemory, DWORD dwSize, LPCTSTR lpActiveReg, PPCI_REG_INFO pRegIn, PPCI_REG_INFO pRegOut)

该函数可以说是BootPart模块的初始化函数,看看代码就知道他会调用FMD_Init来初始化Flash设备并初始化一块内存。该函数一般会在OEMPlatformInit函数中被调用。pMemory指向一块内存来存放MBR信息,dwSize为内存的大小,lpActiveRegpRegInpRegOut会被FMD_Init用到,一般可以设置为NULL

 

2. BOOL BP_LowLevelFormat(DWORD dwStartBlock, DWORD dwNumBlocks, DWORD dwFlags)

该函数用于低级格式化,它会格式化Flash设备中的Block,重新创建MBR并将MBR存到第一个Blockd的第一个扇区中。dwStartBlock为起始BlockdwNumBlocks为多少个BlockdwFlags为格式化标记位,表示采用何种格式化方式。该函数会根据需要来由EBOOT中的函数调用。

 

3. PPARTENTRY BP_GetPartitionInfo (HANDLE hPartition)

该函数用于获得某个分区的信息。hPartition为某一个分区的句柄,返回相应的分区信息。

 

4. HANDLE BP_OpenPartition(DWORD dwStartSector, DWORD dwNumSectors, DWORD dwPartType, BOOL fActive, DWORD dwCreationFlags)

该函数用于打开或者创建一个分区,可以通过该函数在Flash设备上面创建分区。dwStartSector为起始逻辑扇区,dwNumSectors为该分区中包含多少个扇区,dwPartType表示分区的类型,fActive为是否是激活分区,dwCreationFlags表示是创建分区还是打开分区,执行成功后返回该分区的句柄。

 

5. BOOL BP_WriteData(HANDLE hPartition, LPBYTE pbBuffer, DWORD dwLength)

该函数负责向某一个分区写入数据,一般EBOOT可以通过这个函数将WinCE image写入分区中。hPartition为被创建的分区的句柄,pbBuffer为要写入数据的BufferdwLength为要写入数据的长度。

 

6. BOOL BP_ReadData(HANDLE hPartition, LPBYTE pbBuffer, DWORD dwLength)

该函数负责从一个分区中读出数据,EBOOT可以通过这个函数将WinCE image读到RAM中。hPartition为被创建的分区的句柄,pbBuffer为要读出数据的BufferdwLength为要读出数据的长度。

 

7. BOOL BP_SetDataPointer (HANDLE hPartition, DWORD dwAddress)

该函数用于设置某一个分区的数据指针,实际上数据指针是指在该分区中下一次被读或写的位置。一般会配合BP_ReadData(..)BP_WriteData(..)两个函数来用。hPartition为被创建分区的句柄,dwAddress为数据指针的新位置。

 

 

一般比较常用的就是这些函数。最后简单总结一下,微软提供的这个模块主要是用于在Flash设备上进行分区,或者说就是帮助我们来对Flash进行Layout。在EBOOT中要使用它,首先要实现Flash的驱动才可以。其实看看代码就会发现,这些函数无论是创建MBR,还是创建分区,本质上就是在Flash里面写了一些标记性信息,封装了一些函数给用户使用。我很少使用BootPart模块,更习惯整个Flash都由自己来管理,感觉更清楚些。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

陌生的是人心,是人性,是社会,是世道

偶然中得到这样一本书,它是一本都市小说,写自己的经历,不是很乏味的经历;它是一本职场小说,有着对每个人的、不同侧重点的、外表及心理刻画,披露了鲜为人知的职场黑幕;它又是一本悬疑小说&#…

【转】PF_RING学习笔记

转自:Qt迭代器(Java类型和STL类型)详解 1、PF_RING简介 PF_RING是Luca研究出来的基于Linux内核级的高效数据包捕获技术。简单来说PF_RING 是一个高速数据包捕获库,通过它可以实现将通用 PC 计算机变成一个有效且便宜的网络测量工具箱,进行数…

WinCE系统的编译过程详解

在WinCE系统中,当我们完成了相关的开发和系统定制工作以后,会编译WinCE系统,最后生成NK.bin和NK.nb0。下面介绍一下WinCE系统的编译过程,大致分为4个阶段:编译阶段(Compile phase),系统产生阶段(Sysgen pha…

使用HtmlParser解析HTML

如果要对HTML进行解析,提取HTML的数据或者修改HTML数据,HtmlParser是一个不错的选择.使用HtmlParser可以解析本地和网络上的HTML数据:Parser parser newParser( newWinista.Text.HtmlParser.Http.HttpProtocol(newUri("uriString")));Parser parser newParser( newWi…

WinCE中得Catalog Items前的标记图标的意义总结

先看下来自微软对Platform Builder里的图标解释,在以后的CE里,也类似。 The Catalog window and the OSDesignView tab contain a number of icons used to represent object types. The icons make it possible for you to differentiate between Catal…

JavaScript 图片上传预览效果

图片上传预览是一种在图片上传之前对图片进行本地预览的技术。 使用户选择图片后能立即查看图片,而不需上传服务器,提高用户体验。 但随着浏览器安全性的提高,要实现图片上传预览也越来越困难。 不过群众的智慧是无限的,网上已经有…

【转】GigE Vision简介

转自:GigE Vision简介_计算机视觉小菜鸟的专栏-CSDN博客_gige vision GigE Vision是由AIA制定的通信协议,用来实现在机器视觉领域利用千兆以太网接口进行图像的高速传输。该标准是基于UDP协议,与普通网络数据包不同之处在于应用层协议&#…

在Sql Server 2005使用公用表表达式CTE简化复杂的查询语句

公用表表达式CTE是Sql Server 2005引入的一种新的表表达式。CTE在许多方面都类似于派生表。逻辑上CTE是一个临时结果集,它仅仅存在于它发生的语句中。您可以在SELECT、INSERT、DELETE、UPDATE或CTEATE VIEW语句中建立一个CTE。 CTE的优点 与派生表不同,C…

【转】搞机:window10安装Linux子系统(WSL)及迁移到非系统盘

转自:搞机:window10安装Linux子系统(WSL)及迁移到非系统盘_泛泛之素-CSDN博客_wsl移动到非系统盘 痛点: 在电脑上想要使用linux又想使用windows系统只能安装双系统,因为虚拟机的性能差且使用麻烦&#xf…

插座上的Linux充电器.不..Marvell Plug Computer

一直以来,台式机都有变小的趋势,于是变成了一体机,主机也有变小的趋势,那样可以占用更小的空间,却提供一样的功 能,Marvell Plug Computer 3.0 同样是那种壁插式主机,身形小巧,能够直…

【转】tftp命令详解

转自:tftp命令详解 - 张大猛 - 博客园 介绍一个 FTP客户端-IIS7服务器管理工具 作为FTP客户端,它支持批量管理ftp站点。定时上传和定时下载,定时备份,且操作简洁。同时iis7服务器管理工具还是vnc客户端。并且支持批量管理管理…

【转】聊聊Linux操作系统中的显示管理器及如何更换

转自:聊聊Linux操作系统中的显示管理器及如何更换 - linux-123 - 博客园 聊聊Linux操作系统中的显示管理器及如何更换 | 《Linux就该这么学》 什么是 Linux 中的显示管理器? 简单来说,显示管理器display manager(DM&#xff09…

【转】[WSL2]WSL2迁移虚拟磁盘文件ext4.vhdx

转自&#xff1a;[WSL2]WSL2迁移虚拟磁盘文件ext4.vhdx_Ryan ZHENG的专栏-CSDN博客 WSL2本质上是一个虚拟机&#xff0c;因此必然存在磁盘镜像文件。 默认情况下&#xff0c;这个镜像文件会放在C盘&#xff08;参考官网举例&#xff1a;%LOCALAPPDATA%\Packages<PackageFa…

【转】Ubuntu中SVN客户端安装+使用

转自&#xff1a;Ubuntu中SVN客户端安装使用_三少GG-CSDN博客 1、 安装 svn客户端&#xff1a; apt-get install subversion&#xff0c;然后根据提示一步一步&#xff0c;就完成了 svn的安装。当然&#xff0c;也可以源码安装 svn&#xff0c;下载 subversion 一个最新版本的源…

【转】CT图像重构方法详解——傅里叶逆变换法、直接反投影法、滤波反投影法

转自&#xff1a;​​​​​​CT图像重构方法详解——傅里叶逆变换法、直接反投影法、滤波反投影法_Absolute Zero-CSDN博客_反投影法 绪 在做CT图像处理的时候遇到很多问题&#xff0c;对于滤波反变换有许多细节存在疑问&#xff0c;经过多天查找资料和利用MATLAB程序一步步实…

【转】交织容积重建技术:基本原理与临床价值

转自&#xff1a;交织容积重建技术&#xff1a;基本原理与临床价值_湃客_澎湃新闻-The Paper 原创 赵喜同学 XI区 单击上方蓝色字体 XI 区 或长按识别下方二维码关注我 大家好&#xff0c;欢迎大家访问XI区&#xff01; 所有医学成像系统的目标是从测量数据中提取最大数量的诊…

Tahoma,Arial和宋体英文字体

几年前一直用简体中文版的Widnows XP&#xff0c;从来没有觉得字体怎么怎么样。偶然看见英文版Windows XP就发现菜单或者文件夹的字体很好看&#xff0c;没怎么研究就把我的中文版XP换成了英文版并沿用至今。后来很久才知道可以在Control Panel -> Display -> Appearance…

【转】CT解析重建**

转自&#xff1a;CT解析重建 - 知乎 1、傅里叶变换&#xff08;Fourier Transform&#xff09; 白光可以分解成彩色光&#xff0c;彩色光也可合成白光&#xff1b;同样的通过傅里叶变换可将时域下的信号转变成傅里叶域的信号&#xff0c;通过傅里叶逆变换可转换回来。此外&am…

WINCE REG文件相关资料

REG文件 注册表文件&#xff0c;这个和Windows操作系统中使用的注册表文件基本一样&#xff0c;在BSP中主要是Platform.reg&#xff0c;该注册表文件描述了和硬件平台相关的配置&#xff0c;大部分是用来描述驱动的相关信息。 注册标的格式如下&#xff1a; de>[KEY1]de&g…

【转】由投影重建图像:滤波反投影、FDK、TFDK三维重建算法理论基础

转自&#xff1a;由投影重建图像&#xff1a;滤波反投影、FDK、TFDK三维重建算法理论基础_m0_37357063的博客-CSDN博客_fdk算法 1. 基础理论从&#xff1a; [1] RafaelC.Gonzalez, RichardE.Woods, Gonzalez,等. 阮秋琦等译.数字图像处理(第三版)[M]. 电子工业出版社, 2011.P2…