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

来源:互联网 发布:简述域名系统的作用 编辑:程序博客网 时间:2024/06/08 16:21

文章来源:

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}

 

原创粉丝点击