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

文章来源: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}


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值