本文是对《使用Jlink下载程序到Nor Flash》一文的补充和修正(尤其修正init sequence的内容)。
分析这两个文件的目的:是为了以后使用新的MCU和Flash时自己制作project文件。当然可以在图形界面配置这两个文件,但我还是习惯分析一下。
一、 /ETC/JFlash/flash.csv文件中记录了软件支持的flash,但使用这里面没有的flash时需要把相关信息添加进来。
文件中每一行记录了一种flash的信息,格式从左往右依次如下,可以查找所使用的flash的datasheet来填写:
Manufacturer; //生产厂商
Name;//flash的型号名
Id16;// Device ID(word),此部分参照datasheet中Autoselect Codes下的Flash Manufacturer/Device ID TABLE填写
Id8;//Device ID(Byte),此部分参照datasheet中Autoselect Codes下的Flash Manufacturer/Device ID TABLE填写
Internal;//是否是内部flash
Algo;//算法
AlgoVar;//
BusWidth;//总线宽度
SupportsSectorErase;//是否支持扇区擦除
SupportsChipErase;//是否支持片擦除
ZeroProgram;//不知道啥意思...
SupportsSoftLock;//是否支持软件锁定
SoftLockAreaType (0:Sector,1:Chip);//软件锁定区域类型
SoftUnlockAreaType;//软件解锁区域类型
SupportsHardLock;//是否支持硬锁定
HardLockAreaType;//硬锁定区域类型
SupportsHardUnlock;//是否支持硬件解锁
HardUnlockAreaType;//硬件解锁区域类型
SoftLockResetState(0:Remember,1:ON,2:OFF);//软件锁定复位状态
SupportsSecure;//是否支持加密
SupportsUnsecure;//是否支持解密
Sectors;//individual sectors,在project setting中配置
二、*.jflash文件中有几个段,这些都是在project setting-->CPU配置时生成的,如下:
AppVersion = 40000
[GENERAL] //一些基本信息
[JTAG] //JTAG通信设置,在配置project settings-->Target Interface时设置
[CPU] // 这个段很重要,其中最重要的是init sequence的设定,否则不能正常烧写程序。可以参照芯片的启动顺序,例如arm9就是reset-->disable MMU-->禁止watchdog--> ....等等。 另外还需选择使用target RAM,地址填写MCU中的RAM起始地址,例如S3C2440就是0x40000000,4KB。这样可以快速下载
[FLASH] //flash 的设置
[PRODUCTION] //编程方式的设置,比如是否需要先erase再编程,是否需要校验等等。