文章来源:
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条评论)
登录后参与讨论