1. gzyueqian
      18529173453

      嵌入式開發怎么學習?嵌入式系統的學習誤區

      更新時間: 2019-02-25 14:10:56來源: 嵌入式培訓瀏覽量:4367

              關于嵌入式系統的學習方法,因學習經歷、學習環境、學習目的、已有的知識基礎等不同,可能在學習順序、內容選擇、實踐方式等方面有所不同。但是,應該明 確哪些是必備的基礎知識,哪些應該先學,哪些應該后學;哪些必須通過實踐才能獲得;哪些是與具體芯片無關的通用知識,哪些是與具體芯片或開發環境相關的知識。

              由于微處理器與微控制器種類繁多,也可能由于不同公司、機構出于自身的利益,給出一些誤導性宣傳,特別是我國嵌入式微控制器制造技 術落后,使得人們對微控制器的發展,在認識與理解上存在差異,導致一些初學者進入嵌入式系統的學習誤區,浪費了寶貴的學習時間。下面分析可能存在的幾個誤 區。

              1 操作系統的困惑

              如果說,學習嵌入式系統不是為了開發其應用產品,那 就沒有具體目標,諸如學習方法這樣的問題也就不必談了。實際上,這正是許多人想學,又不知從何開始學習的關鍵問題所在,不知道自己學習的具體目標。于是, 看了一些培訓廣告,看了書店中種類繁多的嵌入式系統書籍,或上網以“嵌入式系統”為關鍵詞進行查詢,就參加培訓或看書,開始“學習起來”。對于有計算機閱 歷的人,往往選擇一個嵌入式操作系統就開始學習了。這有點像“瞎子摸大象”,只了解其一個側面。這樣如何能對嵌入式產品的開發過程有全面了解呢?針對許多 初學者選擇“XXX嵌入式操作系統+XXX處理器”的嵌入式系統入門學習模式,筆者認為是不合適的。筆者的建議是:首先把嵌入式系統軟件與硬件基礎打好 了,再根據實際需要,選擇一種實時操作系統(RTOS)進行學習實踐。要記住:RTOS是開發某些類嵌入式產品的輔助工具,是手段,不是目的;許多類嵌入 式產品,并不需要RTOS。所以,一開始就學習RTOS,并不符合“由淺入深、循序漸進”的學習規律。

              RTOS本身由于種類繁多,實際 使用何種RTOS,一般需要由工作單位確定。基礎階段主要學習RTOS的基本原理與RTOS上的軟件開發方法,而不是學習如何設計RTOS。以開發實際嵌 入式產品為目標的學習者,不要把過多的精力花在設計或移植RTOS上面。正如很多人使用Windows操作系統,而設計 Windows操作系統的只有Microsoft。許多人“研究”Linux,但不使用它,浪費了時間。人的精力是有限的,學習必須有所選擇。

              2 硬件與軟件的困惑

              以MCU為核心的嵌入式技術的知識體系必須通過具體的MCU來體現、實踐。但是,選擇任何型號的MCU,其芯片相關的知識只占知識體系的20%左 右,80%左右是通用的軟件硬件及相關知識。80%的通用知識,必須通過具體實踐才能獲得,所以學習嵌入式技術一般要選擇一個系列的MCU。

              系統含有硬件與軟件兩大部分,它們之間的關系如何?有些學者,僅從電子的角度認識嵌入式系統。認為“嵌入式系統=MCU硬件系統+小程序”。這些學者大 多具有良好的電子技術基礎知識。實際情況是,早期MCU內部RAM小,程序存儲器外接,需要外擴各種I/O,沒有像USB、嵌入式以太網等這樣較復雜的接 口。因此,程序占總設計量比例小于50%,使人們認為嵌入式系統(單片機)是“電子系統”,以硬件為主,程序為輔。但是,隨著MCU制造技術的發展,不 僅.MCU內部RAM越來越大,Flash進入MCU內部改變了傳統的嵌入式系統開發與調試方式,固件程序可以更方便地調試與在線升級,許多情況下與開發 PC機程序的方便程度相差無幾,只不過開發環境與運行環境不是同一載體而已。這使得嵌入式系統的軟件硬件設計方法發生了根本變化。

              有些學者,僅從軟件開發角度認識嵌入式系統,甚至僅從嵌入式操作系統認識嵌入式系統。這些學者大多具有良好的計算機軟件開發基礎知識,認為硬件是生產廠 商的事。他們沒有認識到,嵌入式系統產品的軟件與硬件均是需要開發者設計的。筆者常常接到一些關于嵌入式產品穩定性的咨詢,發現大多數是由于軟件開發者對 底層硬件的基本原理不理解。

              特別是有些功能軟件開發者,過分依賴于底層硬件的驅動軟件,自己對底層驅動原理知之甚少。實際上,一些功能軟件開發者,名義上 在做嵌入式軟件,其實僅僅是使用嵌入式編輯、編譯環境而已,本質與開發通用PC機軟件沒有兩樣。而底層硬件驅動軟件的開發,若不全面考慮高層功能軟件對底 層硬件的可能調用,也會使封裝或參數設計得不合理或不完備,導致高層功能軟件調用困難。可以看出,若把嵌入式系統的開發孤立地分為硬件設計、底層硬件驅動 軟件設計、高層功能軟件設計,那么一旦出現問題,就可能難以定位。實際上,嵌入式系統設計是一個軟件、硬件協同設計工程,不能像通用計算機那樣,軟件、硬 件完全分開來看,而要在一個大的框架內協調工作。

              學習嵌入式系統是以軟件為主還是以硬件為主,或者如何選擇切入點,如何在軟件與 硬件之間取得平衡?對于這個困惑的建議是:要想成為一名真正的嵌入式系統設計師,在初學階段,必須打好嵌入式系統的硬件與軟件基礎。以下是從事嵌入式系統 設計二十多年的美國學者JohnCatsoulis在《Designing Embedded Hardware》一書中關于這個問題的總結:嵌入式系統 與硬件緊密相關,是軟件與硬件的綜合體,沒有對硬件的理解就不可能寫好嵌入式軟件;同樣,沒有對軟件的理解也不可能設計好嵌入式硬件。

              3 片面認識嵌入式系統

              嵌入式系統產品種類繁多,應用領域各異。在第1部分中,把嵌入式系統的應用范圍粗略分為電子系統的智能化與計算機應用的延伸兩大類。從初學者角度,可能 存在分別從這兩個角度片面認識嵌入式系統的問題。

              因此,一些從電子系統智能化角度認識嵌入式系統的學習者,可能會忽視編程結構、編程規范、軟件工程的要 求、操作系統等知識的積累。另一些從計算機應用的延伸角度認識嵌入式系統的學習者,可能會把通用計算機學習過程中的概念與方法生搬硬套到嵌入式系統的實踐 中,忽視嵌入式系統與通用計算機的差異。

              實際上,在嵌入式系統學習與實踐的初始階段,應該充分了解嵌入式系統的特點,根據自身的 已有知識結構,制定適合自身情況的學習計劃。目標應該是打好嵌入式系統的硬件與軟件基礎,通過實踐,為成為良好的嵌入式系統設計師建立起基本知識結構。學 習過程中,具體應用系統可為實踐載體,但不能拘泥于具體系統,應該有一定的抽象與歸納。例如,初學者開發實際控制系統時沒有使用實時操作系統,但不要認為 實時操作系統不需要學習。又例如,初學者可以一個帶有實時操作系統的樣例為藍本進行學習,但不要認為任何嵌入式系統都需要實時操作系統,甚至為一個十分簡 明的實際系統加上不必要的實時操作系統。因此,片面認識嵌入式系統,可能導致學習困惑。應該根據實際項目需要,鍛煉自己分析實際問題、解決問題的能力。這 是一個長期的學習與實踐過程,不能期望通過短期培訓完成整體知識體系的建立,應該重視自身實踐,全面地理解嵌入式系統的知識體系。

              4 入門芯片選擇的困惑

              嵌入式系統的大部分初學者需要選擇一個微控制器(MCU)進行入門級學習,面對眾多廠家生產的微控制器系列,往往不知如何是好。

              首先是關于位數問題,目前主要有8位、16位和32位MCU。不同位數的MCU各有應用領域,這一點與通用微機有很大不同。例如做一個遙控器,不需要使 用 32位MCU,否則MCU芯片價格就已經超過遙控器價格需求。

              對于接觸嵌入式系統的學習者,可以根據自己的知識基礎選擇入門芯片的位數。建議大多 數初學者選擇8位MCU作為快速入門芯片,了解一些匯編與底層硬件知識,之后再選16位或32位芯片進行學習實踐。

              關于芯片選擇 的另一個誤區是認為有“主流芯片”存在,嵌入式系統也可以形成芯片壟斷。這完全是一種誤解,是套用通用計算機系統的思維模式,而忽視了嵌入式系統應用的多 樣性。關于學習芯片選擇還有一個誤區,即誤認為選擇工作頻率高的芯片進行入門學習,更先進。實際上,工作頻率高可能給初學者帶來不少困難。

              實際嵌入式系統設計不是追求芯片位數、工作頻率、操作系統等因素,而是追求穩定可靠、維護、升級、功耗、價格等指標。初學者選擇入門芯片,是通過某 一: MCU作為藍本,獲得嵌入式系統知識體系的通用基礎。其基本原則是:入門時間較短、硬件成本較低,知識要素較多,學習難度較低。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲人成高清在线播放 | 亚洲色婷婷踪合久久二区 | 日本特级婬片中文免费看 | 中文字幕国产综合 | 日本中文字幕免费aⅴ久久 亚洲欧美在线六月综合 | 亚洲AV日韩A∨在线观看 |