入門向導:ARM與嵌入式linux

由於(yu) 很多人總問這個(ge) 問題,所以這裏做一個(ge) 總結文檔供大家參考。這裏必須先說明,以下的步驟都是針對Linux係統的,並不麵向WinCE。也許你會(hui) 注意到,現在做嵌入式的人中,做linux研究的人遠比做WinCE的人多,很多產(chan) 家提供的資料也是以linux為(wei) 主。我一直很難理解,其實WinCE的 界麵比linux的界麵好看多了,使用起來也很方便,更為(wei) 重要的是,WinCE的開發和Windows下的開發基本一樣,學起來簡單得多,但是學 linux或者使用linux做嵌入式的人就是遠比WinCE多。在和很多工作的人交流時我了解到,他們(men) 公司從(cong) 沒考慮使用WinCE,因為(wei) 成本高,都是使 用linux進行開發。我讀研究生的的實驗室中也沒有使用WinCE的,大都研究linux,也有少部分項目使用vxwork,但是就沒有聽說過使用 WinCE的,原因就是開源!當然現在WinCE6.0聽說也開源,不過在成本和資源上linux已經有了無人能擋的優(you) 勢。與(yu) 此相對應的是,越來越多的電 子廠商已經開始使用linux開發產(chan) 品。舉(ju) 個(ge) 例子,Google開發的智能手機操作係統androids其實就是使用linux-2.6.23內(nei) 核進行改進 得到的。
第一、學習(xi) 基本的裸機編程
對於(yu) 學硬件的人而言,必須先對硬件的基本使用方法有感性的認識,更必須深刻認識該硬件的控製方式,如果一開始就學linux係統、學移植那麽(me) 隻會(hui) 馬上就陷 入一個(ge) 很深的漩渦。我在剛剛開始學ARM的時候是選擇ARM7(主意是當時ARM9還很貴),學ARM7的時候還是保持著學51單片機的思維,使用ADS 去編程,第一個(ge) 實驗就是控製led。學過一段時間ARM的人都會(hui) 笑這樣很笨,實際上也不是,我倒是覺得有這個(ge) 過程會(hui) 好很多,因為(wei) 無論做多複雜的係統最終都 會(hui) 落實到這些最底層的硬件控製,因此對這些硬件的控製有了感性的認識就好很多了。
學習(xi) 裸機的編程的同時要好好理解這個(ge) 硬件的構架、控製原理,這些我稱他為(wei) 理解硬件。所謂的理解硬件就是說,理解這個(ge) 硬件是怎麽(me) 組織這麽(me) 多資源的,這 些資源又是怎麽(me) 由cpu、由編程進行控製的。比如說,s3c2410中有AD轉換器,有GPIO(通用IO口),還有nandflash控製器,這些東(dong) 西 都有一些寄存器來控製,這些寄存器都有一個(ge) 地址,那麽(me) 這些地址是什麽(me) 意思?又怎麽(me) 通過寄存器來控製這些外圍設備的運轉?還有,norflash內(nei) 部的每一 個(ge) 單元在這個(ge) 芯片的內(nei) 存中都有一個(ge) 相應的地址單元,那麽(me) 這些地址與(yu) 剛剛說的寄存器地址又有什麽(me) 關(guan) 係?他們(men) 是一樣的嗎?而與(yu) norflash相對應的 nandflash內(nei) 部的儲(chu) 存單元並不是線性排放的,那麽(me) s3c2410怎麽(me) 將nandflash的地址映射在內(nei) 存空間上進行使用?或者簡單地說應該怎麽(me) 用nandflash?再有,使用ADS進對ARM9行編程時都需要使用到一個(ge) 初始化的匯編文件,這個(ge) 文件究竟有什麽(me) 用?他裏麵的代碼是什麽(me) 意思?不要這 個(ge) 可以嗎?
諸如此類都是對硬件的理解,理解了這些東(dong) 西就對硬件有很深的理解了,這對以後更深一步的學習(xi) 將有很大的幫助,如果跳過這一步,我相信越往後學越會(hui) 覺得迷茫,越覺得這寫(xie) 東(dong) 西深不可測。因為(wei) ,你的根基沒打好。
不過先聲明一下,本人並沒有使用ADS對ARM9進行編程,我是學完ARM7後直接就使用ARM9學linux係統的,因此涉及使用ADS對ARM9進行編程的問題我很難回答^_^,自己去研究研究吧。
對於(yu) 這部分不久將提供一份教程,這個(ge) 教程中的例程並不是我為(wei) 我們(men) 所代理的板子寫(xie) 的,是我在我們(men) 學院實驗室拿的,英培特為(wei) 他們(men) 自己 的實驗箱寫(xie) 的,不過很有借鑒意義(yi) ,可以作為(wei) 一份有價(jia) 值的參考。
第二、使用linux係統進行一些基本的實驗
在買(mai) 一套板子的時候一般會(hui) 提供一些linux的試驗例程,好好做一段時間這個(ge) 吧,這個(ge) 過程也是很有意義(yi) 的,也是為(wei) 進一步的學習(xi) 積累感性認識,你能想 象一個(ge) 從(cong) 沒有使用過linux係統的人能學好linux的編程嗎?好好按照手冊(ce) 上的例程做一做裏麵的實驗,雖然有點娃娃學走路,有點弱智,但是我想很多高 手都會(hui) 經曆這個(ge) 過程。
在這方麵我們(men) 深藍科技目前沒有計劃提供相應的例程,主要是開發板的提供商會(hui) 提供很豐(feng) 富的例程,我們(men) 不做重複工作,隻提供他們(men) 沒有的、最有價(jia) 值的東(dong) 西給大家。
第三、研究完整的linux係統的的運行過程
所謂完整的linux係統包括哪些部分呢?
三部分:bootloader、linux kernel(linux內(nei) 核)、rootfile(根文件係統)。
那麽(me) 這3部分是怎麽(me) 相互協作來構成這個(ge) 係統的呢?各自有什麽(me) 用呢?三者有什麽(me) 聯係?怎麽(me) 聯係?係統的執行流程又是怎麽(me) 樣的呢?搞清楚這個(ge) 問題你對整 個(ge) 係統的運行就很清楚了,對於(yu) 下一步製作這個(ge) linux係統就打下了另一個(ge) 重要的根基。介紹這方麵的資料網上可以挖掘到幾噸,自己好好研究吧。
第四、開始做係統移植
上麵說到完整的linux有3部分,而且你也知道了他們(men) 之間的關(guan) 係和作用,那麽(me) 現在你要做的便是自己動手學會(hui) 製作這些東(dong) 西。
當然我不可能叫你編寫(xie) 這些代碼,這不實現。事實上這個(ge) 3者都能在網下載到相應的源代碼,但是這個(ge) 源代碼不可能下載編譯後就能在你的係統上運行,需要 很多的修改,直到他能運行在你的板子上,這個(ge) 修改的過程就叫移植。在進行移植的過程中你要學的東(dong) 西很多,要懂的相關(guan) 知識也很多,等你完成了這個(ge) 過程你會(hui) 發 現你已經算是一個(ge) 初出茅廬的高手了。
在這個(ge) 過程中如果你很有研究精神的話你必然會(hui) 想到看源代碼。很多書(shu) 介紹你怎麽(me) 閱讀linux源代碼,我不提倡無目的地去看linux源代碼,用許三 多的話說,這沒有意義(yi) 。等你在做移植的時候你覺得你必須去看源代碼時再去找基本好書(shu) 看看,這裏我推薦一本好書(shu) 倪繼利的《linux內(nei) 核的分析與(yu) 編程》,這 是一本針對linux-2.6.11內(nei) 核的書(shu) ,說得很深,建議先提高自己的C語言編程水平再去看。
至於(yu) 每個(ge) 部分的移植網上也可以找到好多噸的資料,自己研究研究吧,不過要提醒的是,很多介紹自己經驗的東(dong) 西都或多或少有所保留,你按照他說的去做總 有一些問題,但是他不會(hui) 告訴你怎麽(me) 解決(jue) ,這時就要靠自己,如果自己都靠不住就找我一起研究研究吧,我也不能保證能解決(jue) 你的問題,因為(wei) 我未必遇到過你的問 題,不過我相信能給你一點建議,也許有助你解決(jue) 問題。
這一步的最終目的是,從(cong) 源代碼的官方主頁上(都是外國的,悲哀)下載標準的源代碼包,然後進行修改,最終運行在板子上。
盜用阿基米德的一句話:“給我一根網線,我能將linux搞定”。 

本文鏈接:https://www.kjddy.com/Read/79.html 轉載需授權!

  • 工地鋼筋除鏽采用激光除鏽機效率高

    工地鋼筋除鏽采用激光除鏽機效率高

    工地鋼筋生鏽了怎麽(me) 辦?用傳(chuan) 統的方法效率慢,可以試試我們(men) 的激光除鏽機;工地鋼筋除鏽采用激光除鏽機具有多方麵的優(you) 勢和特點,以下是詳細介紹:優(you) 勢效果除鏽效果好:激光除鏽機通過高能激光束照射鋼筋表麵,使鏽跡迅...

    閱讀學習2024-12-23
  • 激光清洗機為什麽不傷手?

    激光清洗機為什麽不傷手?

    激光清洗機為(wei) 什麽(me) 不傷(shang) 手?其實有的會(hui) 傷(shang) 手,激光器分為(wei) 連續激光器和脈衝(chong) 激光器,激光清洗機一般采用的為(wei) 脈衝(chong) 激光器,這個(ge) 大多數不傷(shang) 手。(激光除鏽機之所以能夠在不傷(shang) 害手的情況下進行除鏽工作,主要基於(yu) 以下幾個(ge) 原因...

    閱讀學習2024-12-12
  • 未來激光除鏽機出口趨勢會是怎樣的?

    未來激光除鏽機出口趨勢會是怎樣的?

    市場需求持續增長:製造業(ye) 升級推動需求:隨著全球製造業(ye) 的不斷升級,對表麵處理質量和效率的要求將越來越高,激光除鏽機作為(wei) 一種高效、環保的表麵處理設備,將受到更多企業(ye) 的青睞。例如,在汽車製造、航空航天、電子...

    閱讀學習2024-12-09
  • 激光除鏽機出口對上下遊相關行業會產生哪些影響?

    激光除鏽機出口對上下遊相關行業會產生哪些影響?

    對上遊行業(ye) 的影響:推動原材料供應行業(ye) 發展:激光除鏽機的生產(chan) 需要大量的原材料,如激光器、光學元件、電子元件、機械零部件等。隨著激光除鏽機出口規模的擴大,對這些原材料的需求也會(hui) 相應增加,從(cong) 而推動上遊原材料...

    閱讀學習2024-12-09
  • 激光除鏽機出口怎麽樣?

    激光除鏽機出口怎麽樣?

    激光除鏽機出口呈現出以下特點和趨勢:市場需求方麵需求增長明顯:隨著全球製造業(ye) 的發展以及對除鏽技術的環保性、精確性要求的提高,激光除鏽機在國際市場上的需求呈增長態勢。2023年全球激光束除鏽工具收入大...

    閱讀學習2024-12-09
  • 6000 瓦激光除鏽機價格大揭秘

    6000 瓦激光除鏽機價格大揭秘

    自從(cong) 2024年11月深圳睿法公司推出可支持6000瓦激光器功率輸出的激光清洗係統後,6000瓦激光除鏽機價(jia) 格一直受廣大用關(guan) 注,關(guan) 於(yu) 6000瓦激光除鏽機多少錢一台?我們(men) 可以從(cong) 其主要核心零部件的售價(jia) 核算...

    閱讀學習2024-12-02
  • 6000瓦激光除鏽機多少錢一台?

    6000瓦激光除鏽機多少錢一台?

    相比較於(yu) 以往的1500/2000/3000瓦激光功率,6000瓦激光除鏽機於(yu) 2024年11月問世,除鏽槍頭、係統由深圳睿法智能科技研發生產(chan) ,水冷機還是由國內(nei) 一線品牌特域公司提供,搭載6000瓦高功率連...

    閱讀學習2024-11-29
  • 3000瓦激光除鏽機報價和詳細資料(pdf版)下載

    3000瓦激光除鏽機報價和詳細資料(pdf版)下載

    3000瓦激光除鏽機-浪起.pdf附件中是3000瓦激光除鏽機報價(jia) 和詳細資料(pdf版)。需要的用戶可以自行下載,如需了解更多請聯係我們(men) 。為(wei) 了滿足更多的應用場景,我們(men) 推薦更高功率的6000瓦激光除鏽機...

    閱讀學習2024-11-27
  • 2000瓦激光除鏽機報價和詳細資料(pdf版)下載

    2000瓦激光除鏽機報價和詳細資料(pdf版)下載

    2000瓦激光除鏽機.pdf附件中是2000瓦激光除鏽機報價(jia) 和詳細資料(pdf版)。需要的用戶可以自行下載,如需了解更多請聯係我們(men) 。為(wei) 了滿足更多的應用場景,我們(men) 推薦更高功率的3000瓦激光除鏽機,從(cong) 性...

    閱讀學習2024-11-27
  • 1500瓦激光除鏽機報價和詳細資料(pdf版)下載

    1500瓦激光除鏽機報價和詳細資料(pdf版)下載

    1500瓦激光除鏽機.pdf附件中是1500瓦激光除鏽機報價(jia) 和詳細資料(pdf版)。需要的用戶可以自行下載,如需了解更多請聯係我們(men) 。為(wei) 了滿足更多的應用場景,我們(men) 推薦更高功率的激光除鏽機,從(cong) 性能和效率上...

    閱讀學習2024-11-27

猜你還喜歡這些...