當前位置:編程學習大全網 - 源碼下載 - 嵌入式linux開發

嵌入式linux開發

嵌入式系統是壹個很廣泛的概念,對它的定義也很多,我覺得理解嵌入式系統關鍵抓住下面幾點:

1。嵌入式系統是相對於PC平臺而言的,嵌入式了使用的平臺壹般是針對ARM,PPC,DSP等非PC平臺的,所以使用的編譯和調試工具不是VC6.0,而是不同的平臺需要專門的編譯開發工具,交叉編譯是嵌入式特有的概念;

2。嵌入式系統往往指帶有操作系統的系統,以前簡單的系統可以直接在裸機(如51單片機)上開發,而現在OS成為嵌入式的壹個基本特征,已經有各種實時內核或者全功能的OS,因此對程序員要求較高

3。嵌入式系統往往包括軟件和硬件兩個部分,軟件開發人員往往也需要知道硬件的知識,只有知道硬件的特性才能開發出高性能的程序。另外不想在PC上開發,驅動程序都已經有了,在嵌入式系統中由於所接的外設復雜,很多時候需要自己編寫驅動程序,結果是在程序開發之前壹般需要看硬件手冊。

從上面的特點看出嵌入式開發與PC上的程序開發是不同的,在PC上開發主要是應用程序的開發,側重想法,而嵌入式開發則要考慮軟硬件各個方面而且通常要購買昂貴的開發板和仿真器,因此起點相對較高。

我接觸嵌入式是在大四的時候,當時已經學習了微機原理、單片機和DSP等課程,我壹直希望能做出壹個完整的系統,所以我第壹次明白嵌入式系統是什麽的時候就對它產生了濃厚的興趣,然而興趣是高,缺乏人指導,我依然還是菜鳥壹個,認識到實踐和長時間積累相當重要。我都是在課余自學嵌入式,嵌入式學習之路走得很艱難,其中積累了點點經驗,總結如下:

1。嵌入式從何學起?

這是壹個初學者很想知道的問題,然而又是很難回答的問題,我初學時也是壹樣的。學習嵌入式不能著急,我覺得最重要的還是打好基礎,從簡單的做起。

其中的基本功主要有:

微機原理和接口要很熟悉,至少知道壹門匯編語言,不是要妳去記指令,而是要弄清楚處理器執行的過程和常用的指令執行的操作;

熟悉常用的體系結構。ARM架構處理器應用越來越廣泛,值得研究壹下,當然還有很多的體系架構,開發時再看硬件手冊這個過程就是訓練自己閱讀手冊和查詢手冊的能力,手冊很長,往往只要知道個大概,細節需要在使用時查詢;

C語言編程:C語言大家都會用,我知道在學校學習時都是基於PC,基本不會用C語言程序訪問寄存器或者外設,而在嵌入式開發時妳會發現有很多地方需要小心,舉個例子壹般中斷服務程序需要訪問的全局變量需要用volatile申明;

有了上面的基本功就可以開始最簡單的嵌入式開發之路了。

2。不帶OS的嵌入式開發

先不要急著看什麽操作系統原理,那些東西如果沒有開發經驗的話不可能看得很明白的,首先還是找到嵌入式開發的感性認識。我推薦從51單片機開發開始,因為51單片機便宜而且網上有很多現成的代碼可以參考,先編寫壹些簡單的匯編語言程序,然後學習C51進行c語言編程這個過程關鍵是熟悉交叉編譯和開發流程,熟悉訪問硬件的方法,學習編寫中斷服務程序。另外,這個時期可以學習嵌入式c編程的註意事項《c與c++嵌入式系統編程》《C陷阱與缺陷》是不錯的書,值得看看。

3。帶OS的編程

壹旦運行了OS,編程難度加大了,思維和編程方法與不帶OS的大不壹樣,這個轉變是很艱難的。學習操作系統的原理是必須的,只有很好地認識了操作系統才可能進壹步在OS上編程,比如進程、調度、同步和互斥、優先級翻轉等。OS分成簡單的實時內核和復雜的全功能OS,uCOSII是典型的實時內核,linux是典型的全功能的OS,不同的OS滿足不同需求,要根據自己的設計來選擇合適的OS。嵌入式很多處理要求是實時的,需要保證性,編寫程序和選擇OS要特別註意。推薦從uCOS入手,因為可以獲得源碼,而且網上有很多的資料,已經被移植到很多平臺。到了這個時候估計自己可以自學了,要多做幾個項目,在項目中摸索,要知道編寫程序容易,但是要編寫穩定可靠的程序絕非易事,有很多書值得壹看。我目前也是在學習linux,開始編寫驅動程序了,我想這還是壹個開始,以後要學的東西還很多啊^_^

以上說得很簡單,實際操作起來則需要付出很多努力,需要學習很多東西,這裏只是給出學習的大概步驟,給初學者壹個整體概念,希望仍在困惑中的人少走壹些彎路.

  • 上一篇:營銷郵件怎樣發送及怎樣做,怎樣用qq郵箱發
  • 下一篇:C#應該如何?net程序員在Zhaopin.com上寫簡歷?
  • copyright 2024編程學習大全網