Eboot 中给nandflash分区实现

Eboot 中给nandflash分区实现

ID:40524900

大小:135.00 KB

页数:25页

时间:2019-08-04

Eboot 中给nandflash分区实现_第1页
Eboot 中给nandflash分区实现_第2页
Eboot 中给nandflash分区实现_第3页
Eboot 中给nandflash分区实现_第4页
Eboot 中给nandflash分区实现_第5页
资源描述:

《Eboot 中给nandflash分区实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Eboot中给nandflash分区实现提到分区就不得不提到MBR,不得不提到分区表。什么是MBR硬盘的0柱面、0磁头、1扇区称为主引导扇区,NANDFLASH由BLOCK和Sector组成,所以NANDFLASH的第0BLOCK,第1Sector为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。该记录占用512个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。MBR的组成一个扇区的硬盘主引导记录MBR由如图6-15所示的4个部分组成。·主引导程序(偏移地址0000H--0088H)

2、,它负责从活动分区中装载,并运行系统引导程序。·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。·分区表(DPT,DiskPartitionTable)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。图6-15MBR的组成结构图MBR中的分区信息结构占用512个字节的MBR中,偏移地址01BEH--01FDH的64

3、个字节,为4个分区项内容(分区信息表)。它是由磁盘介质类型及用户在使用FDISK定义分区说确定的。在实际应用中,FDISK对一个磁盘划分的主分区可少于4个,但最多不超过4个。每个分区表的项目是16个字节,其内容含义如表6-19所示。表6-19分区项表(16字节)内容及含义EBOOT中对NAND分区主要代码,eboot目录下的fmd.cpp文件,与NAND驱动基本相同,所以,要对NAND进行分区,就得对NAND驱动非常熟悉。透彻了解。然后就是E:WINCE500PUBLICCOMMONOAKDRIVERSETHDBGBOOTPA

4、RTbootpart.cpp文件了。该文件主要通过调用NANDFLASH的读写操作来写入MBR,也是今天主要的分析对象。主要函数。/*BP_OpenPartition**Opens/createsapartitiondependingonthecreationflags.Ifitisopening*andthepartitionhasalreadybeenopened,thenitreturnsahandletothe*openedpartition.Otherwise,itloadsthestateinformationofthatpa

5、rtition*intomemoryandreturnsahandle.**ENTRY*dwStartSector-Logicalsectortostartthepartition.NEXT_FREE_LOCifnone*specified.Ignoredifopeningexistingpartition.*dwNumSectors-Numberoflogicalsectorsofthepartition.USE_REMAINING_SPACE*toindicatetotakeuptherestofthespaceontheflashfo

6、rthatpartition(should*onlybeusedwhencreatingextendedpartitions).Thisparameterisignored*ifopeningexistingpartition.*dwPartType-Typeofpartitiontocreate/open.*fActive-TRUEindicatestocreate/opentheactivepartition.FALSEfor*inactive.*dwCreationFlags-PART_CREATE_NEWtocreateonly.F

7、ailifitalready*exists.PART_OPEN_EXISTINGtoopenonly.Failifitdoesn'texist.*PART_OPEN_ALWAYScreatesifitdoesnotexistandopensifit*doesexist.**EXIT*Handletothepartitiononsuccess.INVALID_HANDLE_VALUEonerror.*/HANDLEBP_OpenPartition(DWORDdwStartSector,DWORDdwNumSectors,DWORDdwPart

8、Type,BOOLfActive,DWORDdwCreationFlags)注:示例代码为本人EBOOT中分区实现源码(WINCE5.0+S3C2440+128MNAND,MBR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。