新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用J-Flash ARM燒寫(xiě)NorFalsh的方法

用J-Flash ARM燒寫(xiě)NorFalsh的方法

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
燒寫(xiě)B(tài)ios到Nor Flash或者Nan Flash是嵌入式系統(tǒng)開(kāi)發(fā)硬件完成后的第一步涉及到軟件的工作,很重要。燒寫(xiě)Nor Flash的工具和方法很多,近期網(wǎng)上有一篇用J-Link ARM間接燒寫(xiě)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

本文引用地址:http://butianyuan.cn/article/201611/318961.htm

本人按部就班,試了一把,感覺(jué)還可以,只是有些麻煩。嘗試著用J-Flash ARM來(lái)燒寫(xiě),該方法非常簡(jiǎn)單方便。

前段時(shí)間心血來(lái)潮,花了近800大洋,買(mǎi)了一個(gè)Mini2440的開(kāi)發(fā)板。該開(kāi)發(fā)板有一片2M的Nor Flash和64M的Nand Flash。買(mǎi)回家,一不做、二不休將所有里面的BootLoader全部擦除了。整個(gè)系統(tǒng)就成了什么也干不了的“裸板”。主要原因就是不想吃現(xiàn)成的,逼迫自己,從零開(kāi)始,構(gòu)建好完整的系統(tǒng)。熟悉整個(gè)過(guò)程的原理和操作。

要啟動(dòng)嵌入式系統(tǒng),必須要將BootLoader燒寫(xiě)到Nor Flash 或者Nand Flash(系統(tǒng)上電會(huì)拷貝MCU片內(nèi)的內(nèi)部的4Kb的SDRAM去開(kāi)始執(zhí)行)。這類(lèi)似于PC機(jī)的Bios。

從難易程度來(lái)說(shuō),因?yàn)镹or Flash是并行的操作相對(duì)容易;Nand是串行的,操作起來(lái)麻煩一些。所以,就選這Nor Flash作為燒寫(xiě)對(duì)象吧。一旦將BootLoader(比如U-Boot之類(lèi)的,我的開(kāi)發(fā)板可以選用的是SuperVivi)燒寫(xiě)到Nor Flash以后,選擇Nor Flash啟動(dòng)BootLoader,就可利用它燒寫(xiě)Nand Flash以及實(shí)現(xiàn)其他工作了。

J-Flash ARM的使用方法,可以參考用戶(hù)手冊(cè)。按照手冊(cè),我們只需要直接燒寫(xiě)就可以了。但是速度很慢的。要加快速度,就要用MCU內(nèi)部的RAM。這樣就必須初始化MCU的PLL了和RAM了,并且燒寫(xiě)之前必須將看門(mén)狗關(guān)掉。

我們可以查閱芯片手冊(cè),利用J-Flash的初始化命令的功能,輸入初始化命令序列,就可以直接利用RAM加速燒寫(xiě)了。這并不難,只需要簡(jiǎn)單的指令的可以,但是得去查芯片手冊(cè),對(duì)于沒(méi)有查看芯片手冊(cè)習(xí)慣的人來(lái)說(shuō),還是挺麻煩的。為此,我們需要更簡(jiǎn)單、直觀(guān)的方法:那就是分兩步實(shí)現(xiàn)。

先不用RAM加速,直接燒寫(xiě)初始化程序,比如我用的init.bin(芯片公司一般會(huì)提供的,小于1K),我用的init.bin只有280字節(jié)。該程序燒完以后就可以完成初始化了。

啟用RAM加速功能,燒寫(xiě)最終的SuperVivi了到Nor Flash。

總結(jié)一下:

1. 不用Ram加速,用J-Flash ARM 燒寫(xiě)init.bin到Nor Flash,為Ram加速提供條件。

2. 啟用Ram加速,用J-Flash ARM 燒寫(xiě)SuperVivi.bin到Nor Flash。



關(guān)鍵詞: J-FlashARM燒寫(xiě)NorFals

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉