新人怎麼學嵌入式》
三、驅動:
驅動包含兩部分:硬體本身的操作、驅動程式的框架。
又是硬體,還是要看得懂原理圖、讀得懂晶元手冊,多練吧。
說到驅動框架,有一些書介紹一下。ldd3,即
也就限於介紹概念了。我基本上是入門之前用它來熟悉一下概念,入門後就扔掉了。
驅動方面比較全的介紹,應該是宋寶華的
要想深入了解某一塊,
時,就去翻一下它。任何一部分,這書都可以講上2、3百頁,非常詳細。並且是以某個目標來帶你分析核心原始碼。它以linux 2.4為例,
但是原理相通,同樣適用於其它版本的linux。
每乙個驅動都是現場編寫:
1. 用繪圖板畫圖講解──相當於學校裡老師在黑板上畫圖講解,很直觀
絕對不是對著ppt念。
2. 用source insight當場寫程式,從第1行開始寫,每一課都是這樣。我講了20多個驅動,就寫了20多個程式。
3. 寫完就編譯、測試。
4. 很全面,字元裝置驅動、塊裝置、網絡卡驅動3大類齊全,硬體介紹、驅動框架分析、測試3大類齊全。
當場測試,除我之外!也沒看到哪個培訓機構講完這些內容──因為時間不夠,講完起碼要乙個月,但是這部分基本只有2周授課時間。
把你手上的開發板所涉及的硬體,都去嘗試寫乙個驅動吧。有問題就先"痛苦地思考",思考的過程中你會把很多不相關的知識
串聯起來,最終貫通。
四、根檔案系統:
大家有沒有想過這2個問題:
1. 對於linux做出來的產品,有些用作監控、有些做手機、有些做平板。那麼核心啟動後,掛載根檔案系統後,應該啟動哪乙個應用程式呢?
答:核心不知道也不管應該啟動哪乙個使用者程式。它只啟動init這乙個應用程式,它對應/sbin/init。
顯然,這個應用程式就要讀取配置檔案,根據配置檔案去啟動使用者程式(監控、手冊介面、平板介面等等)
這個問題提示我們,檔案系統的內容是有一些約定的,比如要有/sbin/init,要有配置檔案
2. 你寫的hello,world程式,有沒有想過裡面用到的printf是誰實現的?
答:這個函式不是你實現的,是庫函式實現的。它執行時,得找到庫。
這個問題提示我們,檔案系統裡還要有庫。
簡單的自問自答到這裡,要想深入了解,可以看一下busybox的init.c,就可以知道init程序做的事情了。
當然,也可以看《嵌入式linux應用開發完全手冊》裡構建根檔案系統那章。
說一下我的學習經歷吧。
1. 我在學校時讀的是物理電子專業,其實課程裡沒有教怎麼設計電路,只是教了些電子電路方面的知識。pcb的設計
是在實驗室裡自學的,只設計過2層板,現在忘記得差不多了。但是保留了看原理圖、看晶元手冊的能力。
2. 選修了軟體學位,對軟體設計挺感興趣,但是也只是學了c語言、資料庫而已。憑著興趣做了不少競賽題。沒能力去
參加競賽,但是把c語言練得很紮實。
3. 在實驗室、在第1家公司,就是設計些簡單的pci卡,寫一下windows的驅動程式
4. 在第2家公司,用51微控制器做車載**,開始走上純軟體的道路。
5. 開始感到微控制器的不足,辭職半年閉門學linux,從red hat怎麼操作開始。步驟就是先看
再自己寫裸板程式操作硬體,接著到分析u-boot。同時看
在寫裸板時,建議各位加強對中斷的理解,核心就是用中斷來完成各種功能的。
6. 分析完u-boot,就開始進行簡單的驅動程式設計了,這時候,能力還很弱。
7. 開始去中興上班,工作2年,編寫各類驅動、解決各類問題(驅動問題、幫助定位應用問題),能力得到煅煉。
總結一下:
1. 硬體方面的書: 微機原理、數位電路,高校裡的教材。畢業多年,忘名了。
2. linux方面的書:
《嵌入式linux應用開發完全手冊》
嵌入式培訓怎麼學?嵌入式工作的優勢
嵌入式發展前景怎樣不說別的就說嵌入式人才的需求程度,就現在而言人才是非常稀缺的,不管什麼職業從業人員少身價自然就高。據了解,初入門的嵌入式開發人員年薪一般都能達到4 9萬元,有3年以上經驗的人員年薪都在10萬元以上,有10年工作經驗的高階嵌入式工程師年薪在30萬元左右。不僅薪水不菲,嵌入式人才的工作...
關於嵌入式怎麼學?別學偏了
嗯,這應該是個古老的話題了。很多年以前,86年吧,我剛開始接觸電腦的時候,曾經疑惑過,什麼叫做電腦高手。那個時侯,能把電腦玩的很熟練,就叫高手了。可是,玩了半天,發現自己還是不會程式設計序。後來才發現,玩電腦,和寫程式,根本就是兩碼事,二者之間沒有任何必然的關係。當然,電腦玩的熟練,對於快速理解和學...
嵌入式培訓學校怎麼選?嵌入式培訓學什麼
嵌入式系統是當前熱門 具發展前景的it應用領域之一,很多數字包括手機 電子字典 可視 數字相機 數字攝像機 機頂盒 智慧型玩具醫療儀器和航空航天裝置等都是典型的嵌入式系統。目前嵌入式人才匱乏,一些權威部門統計,我國目前嵌入式軟體人才缺口每年為50萬人左右,嵌入式人才供給一直處於供不應求的狀態,所以很...