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