烧写Bios到Nor Flash或者Nan Flash是
嵌入式系统开发硬件完成后的第一步涉及到软件的工作,很重要。烧写Nor Flash的工具和方法很多,近期网上有一篇用J-Link
ARM间接烧写Nor Flash的方法:
avr.com/bbs/bbs_content.jsp?bbs_sn=3228953&bbs_page_no=1&search_mode=1&search_text=jlink&bbs_id=9999">http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=3228953&bbs_page_no=1&search_mode=1&search_text=jlink&bbs_id=9999
本人按部就班,试了一把,感觉还可以,只是有些麻烦。尝试着用J-Flash ARM来烧写,该方法非常简单方便。
前段时间心血来潮,花了近800大洋,买了一个Mini2440的开发板。该开发板有一片2M的Nor Flash和64M的Nand Flash。买回家,一不做、二不休将所有里面的BootLoader全部擦除了。整个系统就成了什么也干不了的“裸板”。主要原因就是不想吃现成的,逼迫自己,从零开始,构建好完整的系统。熟悉整个过程的原理和操作。
要启动嵌入式系统,必须要将BootLoader烧写到Nor Flash 或者Nand Flash(系统上电会拷贝MCU片内的内部的4Kb的SDRAM去开始执行)。这类似于PC机的Bios。
从难易程度来说,因为Nor Flash是并行的操作相对容易;Nand是串行的,操作起来麻烦一些。所以,就选这Nor Flash作为烧写对象吧。一旦将BootLoader(比如U-Boot之类的,我的开发板可以选用的是SuperVivi)烧写到Nor Flash以后,选择Nor Flash启动BootLoader,就可利用它烧写Nand Flash以及实现其他工作了。
J-Flash ARM的使用方法,可以参考用户手册。按照手册,我们只需要直接烧写就可以了。但是速度很慢的。要加快速度,就要用MCU内部的RAM。这样就必须初始化MCU的PLL了和RAM了,并且烧写之前必须将看门狗关掉。
我们可以查阅芯片手册,利用J-Flash的初始化命令的功能,输入初始化命令序列,就可以直接利用RAM加速烧写了。这并不难,只需要简单的指令的可以,但是得去查芯片手册,对于没有查看芯片手册习惯的人来说,还是挺麻烦的。为此,我们需要更简单、直观的方法:那就是分两步实现。
先不用RAM加速,直接烧写初始化程序,比如我用的init.bin(芯片公司一般会提供的,小于1K),我用的init.bin只有280字节。该程序烧完以后就可以完成初始化了。
启用RAM加速功能,烧写最终的SuperVivi了到Nor Flash。
总结一下:
1. 不用Ram加速,用J-Flash ARM 烧写init.bin到Nor Flash,为Ram加速提供条件。
2. 启用Ram加速,用J-Flash ARM 烧写SuperVivi.bin到Nor Flash。