新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 柳暗花明:淺談嵌入式ARM開發的前世今生

        柳暗花明:淺談嵌入式ARM開發的前世今生

        —— 淺談嵌入式ARM開發的前世今生
        作者:Machinnneee 時間:2014-06-18 來源:電子產品世界 收藏

          在這個科技高度發達的今天,相信很多在校學生停留在51單片機上的種種應用開發,做一個小玩意,獲得個好名次,這在無形中增加了對單片機的理解和認識,對以后的工作奠定雄厚的基礎:匯編語言的使用,可以讓你在 Bootloader的開發上如魚得水;各種外圍器件的使用,可以讓你在應用開發中如沐春風。但是,如果僅僅停留在這個階段,或者說停留在低端單片機的開發應用上,拿到手的“金子”也有限,這就需要你踏入更加廣闊的電子領域---開發?,F在最流行的是“+”構架,如果在這條路上你走的比較遠,那么,這對你的生活質量的提高也大有幫助。

        本文引用地址:http://www.104case.com/article/248483.htm

          由于“+”構架的開發范圍很廣,如果想全部掌握,需要懂使用、Linux內核、Linux驅動、匯編語言、C語言、C++、PCB制作、硬件電路設計……,我一直以為貪多未必是好事,所以建議進行ARM的開發 分為兩個方向:一、偏向硬件,二、偏向軟件。

          首先來說下偏向硬件。在這個方面,要從硬件設計入手。

          第一、設計最小系統板:由于ARM的啟動方式和單片機有很大差異,建議搞一個Flash,SRAM或SDRAM、CPU、JTAG、和復位信號的小系統板,留出擴展接口。這時,你可以參考一些成熟的設計,來進行設計,像EEPW論壇中STM32等等都可以。如果使最小系統能夠正常運行,你就是很厲害的,畢竟在這方面硬件設計會有一些難點,比如內存等、長線等等。

          第二、 寫啟動代碼,ARM啟動會使用Bootloader,這時可以參考一些Bootloader介紹,自己琢磨寫出簡單的Bootloader,完成一小任務,這會使你的信心大大增強。在設計Bootloader時,你的匯編功底會讓你左右逢源。

          第三、仔細研究你所用的芯片的資料,畫外接板,進行功能的擴展,將你之前的單片機資源可以搬到這里,通過寫相關的裸板程序,可以實現從單片機向嵌入式ARM方向的轉變。

          第四、多學習針對該芯片的DEMO板原理圖。先將原理圖消化,對該芯片的設計做到心中有數,對常用設計達到隨手畫出。

          第五、學習多層板的繪制和布局、走線等。布線時要先布數據地址線,和需要保證的高速線;當涉及的CPU速度達到很高或者信號的頻率很高時, PCB板上的走線都要看成傳輸線。傳輸線有其特征阻抗做好阻抗匹配和防干擾處理。在設計四層板時,通常外層走信號線,中間兩層分別為電源和地平面,這樣一方面隔離了兩個信號層,更重要的是外層的走線與它們所靠近的平面形成稱為"微帶"(Microstrip) 的傳輸線,它的阻抗比較固定性能得到保障。

          如果板子資源比較多,需要用6-10層板進行繪制,那么相應的層有推薦設計,可以參考http://forum.eepw.com.cn/thread/233107/1【PCB資料分享】四層六層板設計。

          如果你能完成以上五個基本的步驟,那么你已經踏入了嵌入式開發的硬件世界,以后的發展,就考自己的修養了。

          說完硬件,理所當然的要說說偏向軟件方面了。

          據我所知,偏向軟件的嵌入式開發可以分為以下三個方面:Bootloader設計,嵌入式驅動開發和嵌入式應用開發。如果嵌入式跑現在流行的安卓系統,也可以把安卓開發分配到嵌入式應用開發吧。

          首先說下Bootloader開發,前面說道,嵌入式的啟動和單片機的啟動有所不同,需要有個Bootloader引導,在Bootloader中實現一些硬件的初識和引導嵌入式進入Linux系統或者C語言Main函數,總而言之,這個Bootloader是個很重要的內容,如果想在這方面進行發展,需要有雄厚的匯編語言設計功底,需要對ARM內核的工作機制非常了解,相比硬件設計來說這個有點難度,畢竟有些玩意是需要自己慢慢琢磨的。

          現在我們常聽說的就是嵌入式驅動開發,工資待遇也是杠杠的!相信很多人也想從事這方面的工作或者正在向這方面前進。那么恭喜你,只要有足夠的毅力,月薪幾W的工作就在你面前,但是在這之前,需要經歷層層的磨練:Linux內核機制,Shell編程、Makefile規則,硬件數據手冊和電路連接Linux驅動工作流程,簡單應用程序的編寫(一次測試驅動)……不過有牛人說過,在嵌入式驅動開發的路上,要么登上山頂,要么滾進深淵。據我所知,在一家公司里,做驅動開發的經常是做應用開發的1/5---1/8,足見其功能。

          對于應用開發,相信大家都很愿意去做,只要活得驅動的接口函數,明白其中道理,有足夠的時間編寫、調試、完善和優化代碼,你就是一名優秀的嵌入式應用開發工程師。不過基于Linux的圖形界面開發,現在變得火熱:像QT編程了、安卓開發了等待都脫離了Linux的形式,但是,這又給碼農們有了新的發展空間,據我所知,工資待遇也是很客觀的

          最后用一個圖片來總結下嵌入式開發的前世今生吧:

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        51單片機相關文章:51單片機教程


        c語言相關文章:c語言教程


        linux相關文章:linux教程


        c++相關文章:c++教程




        關鍵詞: ARM Linux 嵌入式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 疏勒县| 密云县| 保靖县| 辉县市| 巨野县| 略阳县| 光泽县| 吉安市| 盐津县| 黔南| 新安县| 东方市| 文昌市| 日土县| 韩城市| 天镇县| 西盟| 永昌县| 安宁市| 宁陕县| 保靖县| 朝阳县| 历史| 察雅县| 汨罗市| 绥棱县| 同德县| 襄樊市| 左权县| 富宁县| 乐清市| 潼关县| 沽源县| 衡阳县| 论坛| 潞城市| 龙泉市| 云浮市| 申扎县| 子长县| 永川市|