GNU ARM匯編--(二十)總結(jié)
這個系列之所以寫出來,是因為自己在玩linux文件系統(tǒng)和驅(qū)動的時候,總是覺得自己應該回頭看看bootloader到底是怎么工作的.本來只想著重新看下arm體系結(jié)構(gòu)和匯編語言的,沒想到一路上還學習了以前從沒想過的編譯鏈接的細節(jié),提高了自己閱讀makefile和腳本的能力,對指針有了更深的理解,對操作系統(tǒng)也有了更深的理解.
本文引用地址:http://www.ex-cimer.com/article/201611/321711.htm列一下完成這個系列所閱讀或瀏覽過的書和資料:
《ARM System Developers Guide》
《ARM ArchitectureReference Manual》
http://sourceware.org/binutils/docs/ld/index.html 這個鏈接下的文檔主要講解gnu編譯器鏈接腳本的
《程序員的自我修養(yǎng)—鏈接、裝載與庫》
《linker and loader》
《S3C2440》
《K9F2G08U0A》
《GNU Make中文手冊》
《LINUX與UNIX Shell編程指南》
uboot代碼里面的一些文檔
差點忘記了google和baidu這兩個搜索引擎 比如ubuntu下安裝tftp diff的使用等問題,谷哥和度娘很好用
等等
在這個過程中,總是會遇到這樣那樣的問題,慢慢解決就是,花的思考時間是值得的,第一次解決問題的速度慢意味著以后解決同類問題的速度就會快上許多.
后面就會繼續(xù)移植linux3.0.46以及相關(guān)驅(qū)動開發(fā)和移植工作.
linux3.0.46移植好了,但是文件系統(tǒng)還得繼續(xù)移植.對于linux下面的驅(qū)動開發(fā),我的理解是,理解linux操作系統(tǒng)是比較關(guān)鍵的,特別是linux的文件系統(tǒng)的實現(xiàn),設(shè)備模型以及并發(fā)和競爭.理解這個之后,就是熟悉各個驅(qū)動子系統(tǒng)的代碼設(shè)計,最后就是根據(jù)具體的硬件datasheet進行開發(fā)和調(diào)試了.
因為目前從事的工作很少有機會和具體的硬件打交道,因為給的方案這些都做的很完善了.所以我在玩的過程中也會偏向與前面幾點,而輔之以幾個具體硬件模塊的實踐,畢竟硬件模塊太多了,掌握了方法后都是可以再花時間去做的.
如果我的工作內(nèi)容就是bsp和linux內(nèi)核移植以及驅(qū)動開發(fā),那就太好了,求推薦!
雖然比較欠缺硬件調(diào)試的經(jīng)驗,但是我也有我的優(yōu)勢,對軟件方面的知識體系較為完善.最為重要的是我對這塊是非常感興趣的,如果工作時間就是做這塊的,想必這個成長速度將會是驚人的,同樣是可以完成任務的.真心求推薦!
評論