原创 MTK之Flash篇二------如何调整Flash中FAT的配置

2010-7-18 12:16 4543 3 3 分类: 软件与OS

文章来源:


www.rd518.com/bbs/dv_rss.asp?s=xhtml&boardid=30&id=421&page=1&star=1&count=1


下面以SPANSION S71GL的Combo Flash


(ROM+RAM:128Mbits+32Mbits,16MBytes+4Mbytes)为例说明如何调整FAT


(从0x00200000到0x00180000):


1.       文件custom_MemoryDevice.h中找到Flash的型号S71GL128NB0BFW9Z:


#define CS0_PART_NUMBER       S71GL128NB0BFW9Z


#define CS1_PART_NUMBER       S71GL128NB0BFW9Z


 


2.       文件custom_MemoryDevice.h中找到以下三行


!NOR_RAM_MCP PROJECT EXPECTED CODESIZE    0x00E00000


!NOR_RAM_MCP PROJECT EXPECTED RAMSIZE     0x00400000


!NOR_RAM_MCP PROJECT EXPECTED FATSIZE      0x00200000


 


分别表示:


a. 最大的ROM区域大小。这里是0x00E00000(14Mbytes)。


说明:build后的MAP文件(*.lis)中的“Total ROM Size(Code + RO Data + RW Data)”部分放置到此区域。


 


b. 最大的RAM区域大小。这里是0x00400000(4Mbytes)。


说明:build后的MAP文件(*.lis)中的“Total RW  Size(RW Data + ZI Data)”部分放置到此区域。


 


c. 最大的FAT区域大小。这里是0x00200000(2Mbytes),与ROM区域的0x00E00000(14Mbytes)共为0x00100000(16Mbytes)。


说明:FAT由NVRAM部分和提供给用户使用的手机文件系统(即U盘)组成。


 


3.       文件custom_MemoryDevice.h中找到:


 


#define PARTITION_SECTORS  1024


 


此配置为留给用户使用的手机文件系统(“文件管理”菜单中的“手机”,即U盘)的SECTOR数目,每个SECTOR默认为512Bytes。


注意:当此配置为0时,手机没有文件系统。这里的1024表示U盘大小约为512K。


4.  文件MemoryDeviceList_Since07AW0736.xls(注意不同平台的文件名可能不同)中找到相应的Flash型号S71GL128NB0BFW9Z。如下表所示。




Vendor


Part Number


CS


ADMUX


Size(Mb)


Page Size


Comm.Series


Bank


Spansion


S71GL128NBOBFW9Z


S71GL128NBOBFW9U


0


1


NO


NO


128


32


16


16


SPANSION_GL_N


*


S


*


Last bank


 


F/C


C.Adress


C.Data


Region


 


F


*


*


*


*


*


{0x20000, 16},


*


 


其中


a.       Size(Mb)表示Flash的大小为为128+32Mbits。


b.  Last Bank为Flash的最后一个Bank的配置,一般指的是划分给FAT的区域。


c.    Region表示划分给FAT的大小。这里是“{0x20000, 16},”,为16个Block,每个Block的大小为0x20000Bytes,共0x00200000(2Mbytes)。有的Flash最后一个Bank的Block大小不同,如S71GL064NB0BFW0Z 的为“{0x10000, 9},{0x2000, 8},”。


5.修改文件MemoryDeviceList_Since07AW0736.xls中S71GL128NB0BFW9Z的Region为“{0x20000, 12},”,即FAT为0x00180000(1.5Mbytes)。


 


6.           文件custom_MemoryDevice.h中修改ROM+RAM+FAT的配置为:


!NOR_RAM_MCP PROJECT EXPECTED CODESIZE   0x00E80000


!NOR_RAM_MCP PROJECT EXPECTED RAMSIZE    0x00400000


!NOR_RAM_MCP PROJECT EXPECTED FATSIZE    0x00180000


 


其中,FAT从0x00200000(2Mbytes)减少到0x00180000(1.5Mbytes),ROM从0x00E00000(14Mbytes)增加到0x00E80000(14.5Mbytes)。


 


7.           文件custom_MemoryDevice.h中修改用户文件系统(U盘)的大小为:


 


#define PARTITION_SECTORS  512 //1024


 


8.           修改项目的Scatter文件。


修改之前的Scatter文件中,ROM的大小为0x00e00000。


ROM 0x08000000 0x00e00000


{


ROM 0x08000000 0x00400000


{


...


}


...


}


调整FAT后,ROM的大小相应地增加到0x00e800000:


ROM 0x08000000 0x00e80000


{


ROM 0x08000000 0x00400000


{


...


}


...


}


9.  在new的过程中,会自动检查FAT的配置是否正确,特别是PARTITION_SECTORS的配置是否满足要求。检查的结果生成在ckSysDrv.log文件中。



Byte Cluster


Allocated FAT Space             1572864 //FAT大小(0x00180000)


Partition Sectors                   262144 //PARTITION_SECTORS*512(512*512)Drive Overhead                               663552 //


================================================


Free Space for Folders and Applications      638976    1248 //除U盘外的FAT



Cluster Size                                      512       1



FAT Overhead                                4608       9


NVRAM_EF_SYS_LID                      34       1 //每个NVRAM占用的字节数


...


NVRAM_EF_SETTING_TTS_LID       10             1


TOTAL                                                     252320     561 //所有NVRAM占用的字节数


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


Z:\@FACTORY\                             0       0


Z:\@wap\                             163840     320


Z:\@wcache\                         51200     100


Z:\@USER\                                    0      0


Z:\@ftp\                                  61440     120


Z:\@Video\                              1024       2


TOTAL                                    277504     542 //WAP等第三方软件占用的字节数


================================================


Free Space 1248 clusters are enough for Folders and Applications 1112 clusters.


136 clusters are left.


10   型号为M36L0T7050T2ZAQ的Flash为FAT做同样的调整时,只有文件MemoryDeviceList_Since07AW0736.xls中的Region配置不一样。


调整前:




ST


M36L0T7050T2ZAQ


M36L0T7050T2ZAQ


NO


NO


0


1


128


32


8


16


INTEL_SERIES


*


M


*


Last bank


 


F/C


C.Adress


C.Data


Region


 


F


*


*


*


*


*


{0x20000,15},


{0x8000, 4}


 


调整后:




ST


M36L0T7050T2ZAQ


M36L0T7050T2ZAQ


NO


NO


0


1


128


32


8


16


INTEL_SERIES


*


M


*


Last bank


 


F/C


C.Adress


C.Data


Region


 


F


*


*


*


*


*


{0x20000, 11},


{0x8000, 4}


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条