當(dāng)前位置:首頁 > 公眾號精選 > 大魚機(jī)器人
[導(dǎo)讀]關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容俗話說萬事開頭難,剛開始的時候,你是否根本就不知如何開始,上網(wǎng)查資料被一堆堆新名詞搞的找不到北,去圖書館看書也是找不到方向?又是arm,又是linux,又是uboot頭都大了,不知道自己究竟從哪里開始?下面就跟著我學(xué)習(xí)設(shè)計嵌入式工程師的修煉日記吧!簡...



關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容


俗話說萬事開頭難,剛開始的時候,你是否根本就不知如何開始,上網(wǎng)查資料被一堆堆新名詞搞的找不到北,去圖書館看書也是找不到方向?又是arm,又是linux,又是uboot頭都大了,不知道自己究竟從哪里開始?


下面就跟著我學(xué)習(xí)設(shè)計嵌入式工程師的修煉日記吧!
簡單說,從arm基礎(chǔ)知識到裸機(jī)編程,從uCOSII到linux,從linux基礎(chǔ)的命令到shell編程,從u-boot到文件系統(tǒng),最后到現(xiàn)在的linux驅(qū)動程序。從簡單到復(fù)雜,從基礎(chǔ)到高級基本是按照這個來的。

01

第一階段:嵌入式硬件基礎(chǔ)以及裸機(jī)程序開發(fā)


1.知識點(diǎn):
(1) arm處理器基礎(chǔ)知識,工作模式,寄存器,中斷與異常,尋址方式,匯編指令集

(2) 熟悉ADS集成開發(fā)環(huán)境為裸機(jī)程序開發(fā)做準(zhǔn)備

(3)裸機(jī)程序開發(fā):LED,串口,LCD,觸摸屏,NANDFLASH,IIC,IIS,DMA等

2.過程以及目的:
這一階段的學(xué)習(xí)主要是熟悉嵌入式的硬件,為以后的linux驅(qū)動打基礎(chǔ)。因為嵌入式主打處理器架構(gòu)就是arm,所以針對arm來學(xué)習(xí)。首先學(xué)習(xí)基礎(chǔ)知識,然后通過在開發(fā)板上的練習(xí)來掌握。這一階段所用的資料主要有:

(1) 《ARM嵌入式基礎(chǔ)教程》 這本書主要看arm基礎(chǔ)的知識。這本書是講arm7的,但是arm的基礎(chǔ)的指令集以及模型是一樣的。
(2) 《嵌入式linux應(yīng)用開發(fā)完全手冊》 這本書主要看介紹s3c2410接口模塊的部分,實(shí)驗裸機(jī)的時候需要硬件的知識。

3.所用時間:大約兩個月。
02


第二階段:linux基礎(chǔ)以及shell編程


1.知識點(diǎn):

(1) linux基礎(chǔ)知識(2) linux安裝與使用(3) linux常用命令(4) vi使用(5) 簡單shell編程
2.過程以及目的:???
這一階段的學(xué)習(xí)主要是熟悉linux,會安裝linux,了解Linux的基礎(chǔ)知識,會簡單的操作。剛開始安裝linux還是在虛擬機(jī)上安裝比較好,安裝開發(fā)板推薦的Fedora9,按照開發(fā)板配套的說明一步一步的安裝,然后在上面練習(xí)各種命令。

這一階段主要要看《鳥哥的linux私房菜基礎(chǔ)學(xué)習(xí)篇》,這個書有電子版,也不用全看,主要是看前面對Linux基礎(chǔ)知識的描述,以及基本的命令。命令只是了解,那么多記也記不下來,以后用時再查閱。這一階段主要目的是對linux有一個整體的了解,最起碼要知道基礎(chǔ)的一些概念,還有會一些基本的操作。
3.時間:大約一個月。

03


第三階段:linux應(yīng)用程序基礎(chǔ)開發(fā)


1.知識點(diǎn):

? ?(1) GCC,GDB,Make 基礎(chǔ)? ?(2) 文件,時間編程? ?(3) 多進(jìn)程,多線程程序設(shè)計? ?(4) 進(jìn)程間通信
2. 過程以及目的:
這一階段的學(xué)習(xí)主要是了解linux應(yīng)用程序的編寫調(diào)試,也都是基礎(chǔ)知識,主要目的還是熟悉Linux。熟悉其中應(yīng)用程序有關(guān)的一些概念,為以后打基礎(chǔ)。這一階段主要看了《嵌入式Linux應(yīng)用程序開發(fā)標(biāo)準(zhǔn)教程》,這本書對linux上應(yīng)用程序編寫講的很詳細(xì),而且不是很難,那本最經(jīng)典的《UNIX高級環(huán)境編程》講的比較深入,剛開始看有點(diǎn)難,萬事開頭難還是從簡單的開始。學(xué)習(xí)應(yīng)用編程以后也不一定搞應(yīng)用,從事嵌入式linux行業(yè)的人,這是必須的基本技能。


3. 時間:大約一個月

04

第四階段:uCOSII操作系統(tǒng)學(xué)習(xí)


1.知識點(diǎn):

? ?(1)嵌入式實(shí)時操作系統(tǒng)的概念以及基礎(chǔ)知識? ?(2)uCOSII操作系統(tǒng)源代碼閱讀? ?(3)移植uCOSII? ?(4)uCOSII操作系統(tǒng)應(yīng)用編程
2.過程以及目的:
這一階段的學(xué)習(xí)主要是了解嵌入式實(shí)時操作系統(tǒng)的基礎(chǔ),因為uCOSII是開源的,可以研究他的代碼。對操作系統(tǒng)的任務(wù)調(diào)度以及資源管理有直觀的認(rèn)識。并且閱讀他的源碼能夠提高自己的編程能力,規(guī)范自己的編程習(xí)慣。雖然提供了uCOSII的移植版本,但是自己實(shí)際移植一次能夠有更深刻的認(rèn)識。

這個操作系統(tǒng)比較簡單,所以應(yīng)用程序的編寫就很重要,在上面實(shí)現(xiàn)幾個功能還是有助于對系統(tǒng)的理解。這一階段主要看的就是邵貝貝翻譯的uCOSII作者所著的《嵌入式實(shí)時操作系統(tǒng)uCOS-II》,里面對操作系統(tǒng)的源碼有詳細(xì)的分析??赐高@本書后就會對uCOSII有一個深入的了解。
這一階段的主要目的是了解操作系統(tǒng)的知識,比如任務(wù)調(diào)度,并發(fā)與競態(tài)。還有一個目的就是鍛煉自己的編程能力。因為如果看介紹操作系統(tǒng)原理的書會比較枯燥,我感覺閱讀一個操作系統(tǒng)的源碼比看一千本介紹原理的書來的實(shí)惠的多。
3.時間:大約一個月
05

第五階段:bootloader學(xué)習(xí)


1.知識點(diǎn):

? ?(1)bootloader基礎(chǔ)知識? ?(2)u-boot基礎(chǔ)與命令? ?(3)u-boot移植
2.過程以及目的:
bootloader是一個linux嵌入式系統(tǒng)的不可缺少的部分。這一階段的學(xué)習(xí)主要是了解bootloader的作用,以及通用bootloader---u-boot的知識,剛開始學(xué)會用u-boot的各種命令。然后分析u-boot的啟動流程和Makefile以及u-boot加載內(nèi)核過程。

然后按照別人的步驟一步一步的移植內(nèi)核,多做幾遍以熟悉這個過程。然后在熟悉整個u-boot的基礎(chǔ)上,獨(dú)自完成u-boot的移植,并添加自己修改。這一階段主要參考資料就是光盤自帶的u-boot移植參考手冊和一些網(wǎng)絡(luò)上的文章。個人感覺u-boot移植這方面的網(wǎng)絡(luò)資源相當(dāng)?shù)呢S富。
3.時間:大約一個月

06

第六階段:文件系統(tǒng)學(xué)習(xí)


1.知識點(diǎn):

? ?(1)linux文件系統(tǒng)的種類與作用? ?(2)熟悉busybox的使用,以及l(fā)inux系統(tǒng)啟動過程? ?(3)構(gòu)建自己的根文件系統(tǒng)
2.過程以及目的:
文件系統(tǒng)也是一個linux嵌入式系統(tǒng)不可缺少的部分,這一階段的學(xué)習(xí)主要是熟悉根文件系統(tǒng)的作用以及基礎(chǔ)知識,并且自己構(gòu)建自己的根文件系統(tǒng)。這一階段所看的書有《構(gòu)建嵌入式linux系統(tǒng)》,這本書詳細(xì)講解了嵌入式linux的所有元素,包括文件系統(tǒng)。

這里主要看文件系統(tǒng)這塊。我還參考了網(wǎng)上的一些文章。這里首先要熟悉基本的一些Linux文件系統(tǒng),然后學(xué)習(xí)busybox的使用以及l(fā)inux的啟動過程,最后參考別人的一步一步來構(gòu)建自己的文件系統(tǒng)。
3.時間:大約半個月

07


第七階段:嵌入式圖形界面GUI


1.知識點(diǎn):

? ?(1)嵌入式圖形界面GUI的種類與特點(diǎn)? ?(2)minigui 基礎(chǔ)知識? ?(3)minigui 移植與程序編寫
2.過程以及目的:
嵌入式圖形界面GUI作為嵌入式上層系統(tǒng)的東西也是需要了解的,這里我只學(xué)習(xí)了minigui,因為QT是需要C 的知識,而我沒有學(xué)過C ,所以只看了minigui的相關(guān)知識。這個階段的目的主要是熟悉一下嵌入式圖形接界面的開發(fā)流程,因為以后也不打算搞應(yīng)用。

只是熟悉一下嵌入式組成的一些方面。這里只要將minigui移植到板子上能跑hello程序就可以了。其他的也不用深入了解。通過移植minigui對linux上運(yùn)行的軟件以及函數(shù)庫,程序運(yùn)行原理,編譯器都會有一個新的認(rèn)識。
3 時間:大約半個月

08


第八階段:linux驅(qū)動程序基礎(chǔ)知識


1.知識點(diǎn):

(1)看完《LINUX設(shè)備驅(qū)動程序》除了網(wǎng)絡(luò)驅(qū)動程序,tty驅(qū)動程序,塊驅(qū)動程序這幾章不看,其他的都要看完。
(2)實(shí)驗書中所有例程,要仔細(xì)分析結(jié)果,理解相關(guān)知識點(diǎn)。(3)就算是例子,程序編程習(xí)慣一定要統(tǒng)一,文檔一定要規(guī)范。
2.過程以及目的
這一階段的目的就是為了linux驅(qū)動打基礎(chǔ),《LINUX設(shè)備驅(qū)動程序》(第三版)也就是大家所說的ldd3,是最經(jīng)典的一本講linux驅(qū)動的書,一定要看而且多看幾遍。第一次看很難看進(jìn)去,感覺講的晦澀難懂。但是多看幾遍就會由豁然開朗的感覺??赐炅藭缓缶褪菍?shí)驗書中的例子。
?3.時間:大約兩個月

09


第九階段:linux驅(qū)動實(shí)戰(zhàn)


1. 知識點(diǎn):

? ?(1)通過led驅(qū)動理解雜項字符設(shè)備的注冊與實(shí)現(xiàn),并掌握MINI2440的IO操作過程。? ?(2)通過button驅(qū)動程序掌握基本的中斷實(shí)現(xiàn)方法。? ?(3)掌握PWM驅(qū)動程序。? ?(4)通過觸摸屏驅(qū)動程序掌握input設(shè)備模型的實(shí)現(xiàn)。? ?(5)掌握ADC驅(qū)動程序的設(shè)計? ?(6)掌握看門狗,rtc驅(qū)動程序的設(shè)計? ?(7)通過LCD驅(qū)動程序分析platform設(shè)備模型的實(shí)現(xiàn)。
2.過程以及目的:
這一階段的學(xué)習(xí)主要是掌握實(shí)際的簡單的驅(qū)動程序的實(shí)現(xiàn)與ldd3中的差別,并且分析一些linux子系統(tǒng)。通過這一階段的學(xué)習(xí),能夠?qū)inux驅(qū)動程序有更深入的認(rèn)識。并且鍛煉自己閱讀海量代碼的能力。這一階段主要工作就是看代碼,實(shí)驗,看代碼,實(shí)驗,通過現(xiàn)象學(xué)習(xí)知識。

3. 時間:大約一個月

10

第十階段:深入理解linux內(nèi)核與USB子系統(tǒng)的研究


?前九個階段完成了,自己感覺嵌入式Linux應(yīng)該應(yīng)該算是入門了。所以要開始計劃第十個階段了。這一階段基本上要確定自己未來的發(fā)展方向了。因為現(xiàn)在嵌入式系統(tǒng)的標(biāo)準(zhǔn)接口都有USB,所以學(xué)會USB的相關(guān)知識是很有競爭力的。搞驅(qū)動的人對內(nèi)核應(yīng)該有一定的了解,所以《深入理解Linux內(nèi)核》還是必須的。
這一階段主要是學(xué)習(xí)USB協(xié)議,閱讀linux USB子系統(tǒng)全部的代碼,通過閱讀代碼加深對USB的理解,隨后就是熟悉各種USB類協(xié)議,編寫和移植USB驅(qū)動了。USB是我確定的方向,因為我想搞什么東西都要專一,什么都搞,什么也搞不好。所以我決定學(xué)習(xí)USB。決定以后從事嵌入式有關(guān)USB方面的工作。這一階段的學(xué)習(xí)正在進(jìn)行中,現(xiàn)在正在linux USB子系統(tǒng)浩瀚的代碼中漫游。

-END-

點(diǎn)擊關(guān)注下方公眾號,一起學(xué)習(xí)嵌入式。

嵌入式干貨。" data-from="0">

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉