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

    技术2022-05-19  19

    文章来源:

    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)