在基于ADSP BF533的嵌入式Linux系統(tǒng)上的移植
(3)與頭文件相關(guān)的代碼:在include/configs創(chuàng)建mybf533.h,參考include/configs/stamp.h,如下:
Flash的修改與具體型號(hào)和容量有關(guān),修改過(guò)程中參考Flash擦除數(shù)據(jù)命令、特定寄存器的寫(xiě)入地址以及扇區(qū)的大小和位置。
與SDRAM相關(guān)設(shè)置:
注意:最后一行要用Tab鍵開(kāi)頭表示命令。其中blackfin表示CPU的種類(lèi).bf533是cpu bf533對(duì)應(yīng)的代碼目錄,mybf533是目標(biāo)板對(duì)應(yīng)的目錄。這樣可使用make mybf533_config配置自身的開(kāi)發(fā)板。
其他修改視情況而定。如根據(jù)SDRAM大小修改cplb表,根據(jù)需要修改堆棧大小。如drivers/cfi_flash.c中flash_init()函數(shù),cpu/bf533/ints.c中init_IRQ()函數(shù)等。
修改完畢后就可以采用如以下命令編譯U-Boot:bash$>make clean,bash$>make mrproper,bash$>make mybf533_config,bash$>make。
編譯完后U-Boot_1.1.3生成U-Boot的二進(jìn)制文件U-Boot.bin(U-Boot.bin只能用于更新)。執(zhí)行 bash$>bfin-uclinux-objcopy-I binary-Oihex U-Boot.bin,生成可在Windows下首次燒寫(xiě)到Flash的十六進(jìn)制文件U-Boot.hex。
4.2 U-Boot的燒寫(xiě)
第一次下載U-Boot到目標(biāo)板或者當(dāng)U-Boot不能正常啟動(dòng)時(shí)。必須通過(guò)JTAG或者ADI ICE將U-Boot下載到目標(biāo)板。在此可將ADI公司的仿真器與Visual DSP++環(huán)境相連,通過(guò)Visual DSP++,在TOOLS-->Flash Programmer下執(zhí)行Flash驅(qū)動(dòng)程序M25P64.dxe,選擇"Erase all"-->Load Flie燒寫(xiě)U-Boot.hex文件到Flash中。
移植成功后,打開(kāi)終端minicom復(fù)位開(kāi)發(fā)板,若串口能輸出正確的啟動(dòng)信息.則表明移植基本成功。啟動(dòng)后,如果在設(shè)定的時(shí)間內(nèi),串口沒(méi)有接收到按鍵。U-Boot將自動(dòng)加載操作系統(tǒng)內(nèi)核和文件系統(tǒng)。若設(shè)定時(shí)間內(nèi)串口接收到按鍵,則U-Boot停止自動(dòng)加載,進(jìn)入命令行,可看到U-Boot的提示符"mybf533>",查看Flash信息,調(diào)試或手動(dòng)加載內(nèi)核。
生成新的U-Boot.bin文件后??赏ㄟ^(guò)Ethernet或者串口更新U-Boot。因?yàn)榫W(wǎng)絡(luò)的傳輸速度遠(yuǎn)比串口快,故一般選擇網(wǎng)絡(luò)傳輸。將新生成的U-Boot.bin拷貝到宿主機(jī)根目錄下的tftpboot目錄(前提是已經(jīng)創(chuàng)建tftp sever),在目標(biāo)板出現(xiàn)U-Boot提示符后。按任意鍵進(jìn)入下載模式:
mybf533>tftp 0x1000000 U-Boot.bin
0x1000000為SDRAM默認(rèn)的下載地址空間,用于U-Boot的升級(jí)、調(diào)試。當(dāng)需要升級(jí)或者修改U-Boot,可將新的U-Boot從 SDRAM燒寫(xiě)到。Flash,覆蓋原來(lái)的U-Boot,以減少燒寫(xiě)Flash的次數(shù)。在燒寫(xiě)以前最好測(cè)試一下所下載的U-Boot能否正常運(yùn)行:
如果不正確,應(yīng)重復(fù)執(zhí)行Erase all和Copy命令,直到正確為止。至此,U-Boot移植的步驟已基本完成。
5 結(jié)束語(yǔ)
U-Boot是一個(gè)功能強(qiáng)大的Boot loader。前期移植工作是嵌入式系統(tǒng)開(kāi)發(fā)的首要環(huán)節(jié)。但其移植不可避免的存在一些難以預(yù)料的問(wèn)題。嵌入式開(kāi)發(fā)人員應(yīng)該在了解U-Boot的工作機(jī)理、移植條件后,根據(jù)目標(biāo)板和具體情況靈活裁減U-Boot以提高操作系統(tǒng)移植的穩(wěn)定性,縮短移植周期,降低產(chǎn)品成本。
本文結(jié)合U-Boot的運(yùn)行機(jī)理以及U-Boot移植的基本要求,研究了U-Boot在基于BF533的嵌入式系統(tǒng)上的移植。本文的移植是在不改變 U-Boot框架前提下,對(duì)嵌入式目標(biāo)板和CPU相關(guān)代碼進(jìn)行修改,實(shí)現(xiàn)了成功移植且移植后的U-Boot能夠在目標(biāo)板上穩(wěn)定運(yùn)行,為后續(xù)開(kāi)發(fā)奠定了良好的基礎(chǔ)。
評(píng)論