|
作者:liweikui 覺得好的話要頂哦!
開發(fā)板到了之后,用的是板子自帶的bootloader、linux內(nèi)核和文件系統(tǒng),在上面跑了幾個小程序知道流程和方法后,就想著用自已移植的這些東西了,因為既然要搞底層的東西,我想這些東西還是要學(xué)會的。
剛開始躊躇滿志,以為不會有什么困難,網(wǎng)上不都多得是文章嗎?蓪嶋H上,下了N多資料,看了N多文章之后,下到flash中一運行,串口控制臺中什么都沒有,當(dāng)時真有點蒙了。其實不成功,倒還沒什么,關(guān)鍵是你想繼續(xù)努力的時候,卻沒有方向和方法,那真的才是又浪費時間,又郁悶。
不過還得感謝網(wǎng)絡(luò),文章看多了,就知道哪些可以直接close,那些可以復(fù)制下來慢慢看(我通常都是一氣狂搜,一氣“另存為”,最后再集中在一起看)。三五天后,終于找到了方向和方法,而且在sdram中運行,成功地在串口輸出里看到了u-boot啟動信息。
第一次學(xué)做u-boot移植,綜合別人的方法,總結(jié)歸納如下:
1. 先不去考慮nor/nand flash啟動,先讓u-boot在SDARM中成功運行。
2. 把那個既經(jīng)典又簡單又very useful的調(diào)試方法用上,那就是在程序中需要的地方加上led燈指示。
(有時串口沒信息,一頭霧水,連自己的程序是否在運行都不知道,這里在程序開頭加led的代碼,最合適不過了)
3. u-boot能在SDRAM中運行后,先考慮nor flash中運行(如果有nor flash的話),因為支持nor flash比支持nand flash改動少,較容易一些。SMDK2410里也是支持nor flash的,那里用的是AMD公司的。
4. 能在flash 中啟動后,增加nand支持,看是否能檢測到nand,并在u-boot中用些nand的命令驗證驅(qū)動是否有問題。
5. 增加代碼,讓u-boot從nand啟動。
6. u-boot可是從nand啟動后,增加代碼,讓代碼能自動識別跳線的設(shè)置,從相應(yīng)的flash啟動。
以上6步完成之后,關(guān)于啟動方面的就完成了,如果有需要,再增加這個u-boot的其它功能,比如:網(wǎng)絡(luò)支持、USB支持等,這些部分如果自已的開發(fā)板和SMDK2410不同的話,也是要做移植的。
這個過程我正在進(jìn)行中,已進(jìn)行到第三步,前兩部的具體實現(xiàn)過程在后面的文章中寫出來,只為了自已以后用到的時候,有資料可查,不然忘了又得花時間,相當(dāng)于做筆記吧。 |
|