<strike id="xh1ss"><address id="xh1ss"></address></strike>
  1. <legend id="xh1ss"></legend>
  2. 更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    能否零基礎入門嵌入式ARM ?看完你就明白了

    • 發布:嵌入式培訓
    • 來源:達內C語言和嵌入式培訓
    • 時間:2018-04-09 11:35

    由于很多人總問是否可以零基礎入門嵌入式ARM,那今天我就來談談如何入門嵌入式ARM,供大家參考。這里必須先說明,以下的步驟都是針對Linux系統的,并不面向WinCE。也許你會注意到,現在做嵌入式的人中,做Linux研究的人遠比做WinCE的人多,很多產家提供的資料也是以Linux為主。我一直很難理解,其實WinCE的界面比Linux的界面好看多了,使用起來也很方便,更為重要的是,WinCE的開發和Windows下的開發基本一樣,學起來簡單得多,但是學Linux或者使用Linux做嵌入式的人就是遠比WinCE多。這是因為在成本和資源上Linux有著天然的優勢。與此相對應的是,越來越多的電子廠商已經開始使用Linux開發產品。舉個例子,Google近期開發的智能手機操作系統Android其實就是使用linux-2.6.23內核進行改進得到的。

    第一,學習基本的裸機編程

    對于學硬件的人而言,必須先對硬件的基本使用方法有感性的認識,更必須深刻認識該硬件的控制方式,如果一開始就學Linux系統、學移植那么只會馬上就陷入一個很深的漩渦。我在剛剛開始學ARM的時候是選擇ARM7(主意是當時ARM9還很貴),學ARM7的時候還是保持著學51單片機的思維,使用ADS去編程,第一個實驗就是控制led。

    學過一段時間ARM的人都會笑這樣很笨,實際上也不是,我倒是覺得有這個過程會好很多,因為無論做多復雜的系統最終都會落實到這些最底層的硬件控制,因此對這些硬件的控制有了感性的認識就好很多了。

    學習裸機的編程的同時要好好理解這個硬件的構架、控制原理,這些我稱他為理解硬件。所謂的理解硬件就是說,理解這個硬件是怎么組織這么多資源的,這些資源又是怎么由cpu、由編程進行控制的。比如說,s3c2410中有AD轉換器,有GPIO(通用IO口),還有nandflash控制器,這些東西都有一些寄存器來控制,這些寄存器都有一個地址,那么這些地址是什么意思?又怎么通過寄存器來控制這些外圍設備的運轉?還有,norflash內部的每一個單元在這個芯片的內存中都有一個相應的地址單元,那么這些地址與剛剛說的寄存器地址又有什么關系?他們是一樣的嗎?而與norflash相對應的nandflash內部的儲存單元并不是線性排放的,那么s3c2410怎么將nandflash的地址映射在內存空間上進行使用?或者簡單地說應該怎么用nandflash?再有,使用ADS進對ARM9行編程時都需要使用到一個初始化的匯編文件,這個文件究竟有什么用?他里面的代碼是什么意思?不要這個可以嗎?

    諸如此類都是對硬件的理解,理解了這些東西就對硬件有很深的理解了,這對以后更深一步的學習將有很大的幫助,如果跳過這一步,我相信越往后學越會覺得迷茫,越覺得這寫東西深不可測。因為,你的根基沒打好。

    第二,使用linux系統進行一些基本的實驗

    在買一套板子的時候一般會提供一些Linux的試驗例程,這個過程也是很有意義的,也是為進一步的學習積累感性認識,你能想象一個從沒有使用過Linux系統的人能學好Linux的編程嗎?那就按照手冊上的例程做一做里面的實驗,我相信很多高手也都經歷過這個過程。

    第三,研究完整的linux系統的的運行過程

    所謂完整Llinux系統包括哪些部分呢?

    三部分:bootloader、linux kernel(linux內核)、rootfile(根文件系統)。

    那么這3部分是怎么相互協作來構成這個系統的呢?各自有什么用呢?三者有什么聯系?怎么聯系?系統的執行流程又是怎么樣的呢?搞清楚這個問題你對整個系統的運行就很清楚了,對于下一步制作這個Linux系統也就打下了另一個重要的根基。

    第四,開始做系統移植

    上面說到完整的Linux有3部分,而且你也知道了他們之間的關系和作用,那么現在你要做的便是自己動手學會制作這些東西。

    當然我不可能叫你編寫這些代碼,這不現實。事實上這個3者都能在網下載到相應的源代碼,但是這個源代碼不可能下載編譯后就能在你的系統上運行,需要很多的修改,直到它能運行在你的板子上,這個修改的過程就叫移植。在進行移植的過程中你要學的東西很多,要懂的相關知識也很多,在這個過程中如果你很有研究精神的話你必然會想到看源代碼,等你完成了這個過程你會發現你已經算是一個初出茅廬的高手了。

    第五,研究linux驅動程序的編寫

    移植系統并不是最終的目的,最終的目的是開發產品,做項目,這些都要進行驅動程序的開發。

    Linux的驅動程序可以說是五花八門,Linux2.4和Linux2.6的編寫有相當大的區別,就是同為Linux2.6但是不同版本間的驅動程序也有區別,因此編寫Linux的驅動程序變都不是那么容易的事情,對于最新版本的驅動程序的編寫甚至還沒有足夠的參考資料。那么我的建議就是使用、移植一個不算很新的版本內核,這樣到時學驅動的編程就有足夠的資料了。

    第六,研究應用程序的編寫

    做作品做項目除了編寫驅動程序,最后還要編寫應用程序。現在的趨勢是圖形應用程序的開發,而圖形應用程序中用得最多的還是qt/e函數庫。完成這一步你基本就學完了嵌入式Linux的全部內容了。

    問題是學習的最好機會,但學習前一定要規劃好學習內容,有句話說:方向不對,怎么努力都是在逆行。所以,一開始制定好學習的方向,不至于后期把路走偏了。在學習嵌入式Linux的過程中盡量少問人,可以提高自己解決問題的能力,如果你認為自學難度太大,那么來達內,參加嵌入式ARM培訓班,遇見嵌入式ARM高手,從0到1系統學習嵌入式ARM知識。

    免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:如何從單片機開發過度到嵌入式開發?
    下一篇:做完這幾道題,嵌入式學習就算過關了嗎?

    嵌入式培訓主要學習哪些內容?好學嗎?

    大學生參加嵌入式培訓班好就業嗎

    學習嵌入式培訓有必要報班嗎

    嵌入式培訓主要培訓什么

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    黄色一级全祼,欧美一级aa片,一级毛卡片,一级特黄大片,三级片视频 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>