
在嵌入式系統(tǒng)的設(shè)計中,當(dāng)需要并行處理的功能時ARM9通常會成為首選,因?yàn)?strong>ARM9采用五級流水線,能夠應(yīng)付大多數(shù)的并行任務(wù)。很多設(shè)計者都會選用其作為設(shè)計的一部分,ARM9因此得道了非常廣泛的應(yīng)用。從ARM9開始入手學(xué)習(xí)嵌入式的人也逐漸增多起來。
在學(xué)習(xí)過程當(dāng)中,定期進(jìn)行總結(jié)是必要的。本篇文章總結(jié)了一些與ARM9學(xué)習(xí)相關(guān)的經(jīng)驗(yàn),從驅(qū)動和應(yīng)用兩個層面來對ARM9的入門進(jìn)行引導(dǎo)。
linux系統(tǒng)編程學(xué)習(xí)建議
推薦想要自學(xué)ARM9的朋友從韋東山的視頻入手,但在這之前一定要先學(xué)習(xí)一下linux應(yīng)用編程,應(yīng)用編程也叫做系統(tǒng)編程,在linux終端上輸入:man open;man read;man write……可以看到很多C庫實(shí)現(xiàn)的函數(shù)接口,學(xué)習(xí)應(yīng)用編程就是學(xué)習(xí)這種API的使用,了解進(jìn)程、線程、等概念。
linux驅(qū)動編程學(xué)習(xí)建議
有了系統(tǒng)編程的基礎(chǔ)之后,就可以投身到驅(qū)動的學(xué)習(xí)中了。至于為什么要先學(xué)習(xí)linux系統(tǒng)編程再來學(xué)習(xí)驅(qū)動,因?yàn)樵诘诙诘尿?qū)動視頻里,韋東山老師講解涉及到的應(yīng)用程序比較少,而測試驅(qū)動時,每個應(yīng)用程序的API都要百度的話,不僅沒有效率,還會打斷知識的完整性。所以建議學(xué)好linux系統(tǒng)編程后,可以一邊學(xué)習(xí)韋老師的第二期驅(qū)動,然后自己寫測試程序。
那么驅(qū)動學(xué)習(xí)該學(xué)什么?其實(shí)主要有兩點(diǎn)。
驅(qū)動框架
其實(shí)只要百度一下字符設(shè)備驅(qū)動框架,就能夠發(fā)現(xiàn)其實(shí)其他驅(qū)動都是高度類似的。對于驅(qū)動框架,無需你們?nèi)?chuàng)新,能讓你創(chuàng)新的就不是什么“框架”了,所以不要糾結(jié)自己什么時候能夠?qū)懗龈玫目蚣埽隳茏龅闹挥凶駨膬?nèi)核做好的框架,在這個框架之內(nèi)對自己寫的代碼進(jìn)行有限的“創(chuàng)新”。又如,網(wǎng)卡驅(qū)動,SD卡驅(qū)動等等,這些都是標(biāo)準(zhǔn)化的接口或者協(xié)議,同樣的,不要我們?nèi)?chuàng)新,也不需要去完全了解這些協(xié)議的含義或者實(shí)現(xiàn)方法,應(yīng)該捉住重點(diǎn),分析芯片的特性,對它們進(jìn)行移植,最后測試成功就行~當(dāng)然,你應(yīng)該在這個過程中積累相關(guān)的知識!
內(nèi)核API
這里有一點(diǎn)需要注意,就是API的解釋存在兩種,通常意義上的內(nèi)核API和linux系統(tǒng)編程學(xué)習(xí)建議里談到應(yīng)用API不用,下面來解釋一下兩者的關(guān)系。
簡單來說,應(yīng)用當(dāng)中的API作為一個空殼的指令,實(shí)現(xiàn)其工作細(xì)節(jié)的就是內(nèi)核API,當(dāng)這個“指令”下達(dá)之后,內(nèi)核API就根據(jù)指令的內(nèi)容去執(zhí)行要做的任務(wù),所以內(nèi)核API是真正實(shí)現(xiàn)一個功能的具體執(zhí)行方法。
當(dāng)然,上面的說法只是一種比喻,方便大家能夠快速理解兩種API,在經(jīng)過一段時間的實(shí)踐后,通過驅(qū)動的編寫以及測試,大家就能夠找到自己的方式來更好的進(jìn)行理解。
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電源網(wǎng)。本網(wǎng)站原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請注明出處;本網(wǎng)站轉(zhuǎn)載的內(nèi)容(文章、圖片、視頻)等資料版權(quán)歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認(rèn),避免給雙方造成不必要的經(jīng)濟(jì)損失,請電郵聯(lián)系我們,以便迅速采取適當(dāng)處理措施;歡迎投稿,郵箱∶editor@netbroad.com。