MTK feature phone 50D/50A FLASH配置分析

来源:互联网 发布:永久下架的网络剧 编辑:程序博客网 时间:2024/06/05 22:45

一、Flash具体参数说明

1.part 1




2.part2


上列两部分是有MTK专门的qulify大团队测试,修正,量产释放给方案商。方案商开发人员不需要直接掌握具体参数的修正。


二、具体外围配置方法

在MTK开发过程中,难免遇到Flash型号的改变。本文着重以选定的Flash型号为条件,对代码进行配置,以适应自己的开发需求。

本文Flash以GD25LQ128YIG为例进行设置:

 

1.设置flash型号:
Flash型号可设置为:NOR_RAM_MCP,LPSDRAM,LPSDRAM, NOR_LPSDRAM_MCP, SERIAL_FLASH
本文GD25LQ128YIG属于SERIAL_FLASH系列的则设为:
#defineMEMORY_DEVICE_TYPE   SERIAL_FLASH


2.Flash Part_num配置:
打开tools\MemoryDeviceList\MemoryDeviceList_MT6250_Since11BW1212.xls,文件名跟MTK源码版本有关,不一定相同。这个文件里面有Flash厂商名,总大小,页大小,片选,指令系列(AMD或Inter),分区信息,时序等相关设置。
在该文件中查找和自己flash型号一致的Part_num,本文设置如下:
#defineCS0_PART_NUMBER GD25LQ128YIG
#defineCS1_PART_NUMBER GD25LQ128YIG



3.Flash访问类型设置:
#define FLASH_ACCESS_TYPE    ASYNC_ACCESS
#define RAM_ACCESS_TYPE      SYNC_ACCESS



4.设置EMI and SFI的时钟频率
#define EMI_CLK                 130M
#define SFI_CLK                 DEFAULT



5.系统分区设置:

手机的一些配置参数存储必须掉电不丢失,可以通过Flash,EEPROM进行存储。MTK通过硬件抽象层进行了处理,底层的存储对用户是透明的。

5.1 08B以后的版本:
#define NOR_BOOTING_NOR_FS_BASE_ADDRESS           0x00E00000    //0x00700000//code 区大小:14M
#define NOR_BOOTING_NOR_FS_SIZE                       0x00200000    //0x00100000 //文件系统大小:2M
#define NOR_BOOTING_NOR_FS_FIRST_DRIVE_SECTORS    1024      //256    //0//用户盘大小(1024/2 =512KB)


5.2 08B以前版本:

修改分区需要修改:tools\MemoryDeviceList\MemoryDeviceList_MT6250_Since11BW1212.xls文件进行配置,我们的项目因为flash有16MB,给NVRAM预留了640KB,可以设置LastBank列中的Region为:
{0x10000,10},//0x10000为每个扇区的大小为64KB,10为扇区数,总共大小64KB*10=640KB。

备注:如果flash空间不足,或者没有特殊要求可以设置用户分区为0,这样能大大降低成本。

7.EMI时序配置
一般常用的Flash,MemoryDeviceList_MT6250_Since11BW1212.xls文件中时序已经配置好了,但不常用的Flash可能还需要自己配置时序。对Flash操作要参考对应的Flash硬件手册,结合MTK EMI寄存器配置相应章节计算RLT(读等待状态),PRLT(页读等待状态),C2RS(读建立时间),WST(写等待状态),C2WS(写建立时间)等时序状态所用的时钟周期,对照MTK EMI寄存器,得出最终的EMI时序相关的配置。