最近和別人討論什麼是嵌入式,今天有感而發,說說自己的看法
嵌入式與傳統計算機程式設計不同,嵌入式一般包括兩個部分,硬體和軟體,硬體是整個系統的軀體,軟體則是整個系統的靈魂(如果身體是張三的,靈魂是李四的,靈魂絕對不好受,除非張三的軀體夠強大,強大到誰來我都裝的下)硬體上面是作業系統,而軟體跑在作業系統上。嵌入式軟體工程師也不容易啊,作為程式設計師的一種,人家一台電腦走天下,我們的工位上永遠沒乾經過,不是板子就是裝置,還有各種線,串列埠線,網線,電源線,還有好幾個顯示器,頭疼!
首先說一下交叉編譯,
寫嵌入式軟體必然要交叉編譯,即在pc端編譯好你的程式,然後燒到你的板子上執行(此處就會引出另乙個話題,就是編譯環境和執行環境嗎,後文講解),那麼你所用的硬體平台不同,大概率會導致你的交叉編譯工具鏈也不同(如果編譯的交叉工具鏈和執行的鏈結器不搭配,程式會執行不起來),很多人會問,什麼是交叉編譯工具鏈,為什麼需要他呢?
交叉編譯工具鏈詳解:
編譯環境;
編譯環境通俗講就是在什麼地方寫程式,一般就是pc機啦,嵌入式編譯環境一般是linux+gnu(gcc,g++),為什麼是linux,linux開源啊,可以方便的裁剪,你不要的功能都可以拿掉,這對於效能相對pc機較差的開發板來說,不要太適合了,系統太大了佔記憶體那多卡啊,負擔太重了,為啥window不常用呢,因為如果板子上的os是windows,對板子的效能要求就太高了,所以一般輕易不會用,至少我沒見過。
嵌入式 linux是嵌入式作業系統的乙個新成員,其最大的特點是源**公開並且遵循gpl協議,近幾年來已成為研究熱點。目前正在開發的嵌入式系統中,有近50%的專案選擇linux作為嵌入式作業系統。
嵌入式linux 是將日益流行的linux作業系統進行裁剪修改,使之能在嵌入式計算機系統上執行的一種作業系統。嵌入式linux既繼承了internet上無限的開放源**資源,又具有嵌入式作業系統的特性。
嵌入式linux的特點是版權費免費;購買費用媒介成本技術支援全世界的自由軟體開發者提供支援網路特性免費,而且效能優異,軟體移植容易,**開放,有許多應用軟體支援,應用產品開發周期短,新產品上市迅速,因為有許多公開的**可以參考和移植,實時效能rt_linux hardhat linux 等嵌入式linux支援,實時效能穩定性好安全性好
再說執行環境
我相信很多人都遇到過,程式在pc機上執行的飛起,你瞅著它就賞心悅目,但是到板子上,哎呀,就是執行不起來,這個執行環境必須要和編譯環境匹配,不然就太難過了,我經歷過最痛苦的事兒就是交叉編譯程式的依賴庫,編譯好導到板子上,這些執行庫相互依賴,要一絲不苟的按照編譯順序編譯,難啊,他的順序我開始不知道,踩了好多坑,所以在搭建編譯環境的時候,第一,執行環境的鏈結器一定要和程式編譯器匹配,程式執行所需要的依賴庫要編譯好,放到板子裡,不然也不行
初識嵌入式 嵌入式開發概述
1 什麼是嵌入式技術 1 嵌入式軟體與非嵌入式軟體的區別?答 嵌入式軟體是結合作業系統之上做的開發 非嵌入式軟體是做的裸機開發。裸機 沒有作業系統 2 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...
如何學習嵌入式 嵌入式如何入門?
學習嵌入式,該學習什麼基本的知識呢?嵌入式如何入門?其次,應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如程序 執行緒,系統如何來分配資源的,系統如何來管理硬體的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關係,多看看,結合以後的專案經驗...
非嵌入式與嵌入式的區別
非嵌入式是通過軟體控制硬體,軟硬體之間直接聯絡來實現要求。但是一旦硬體發生改變軟體也要改變,為了降低這種偶合度過高的問題,出現了嵌入式。嵌入式在軟體和硬體之間新增了作業系統,軟體通過控制作業系統進而控制硬體,硬體發生改變並不會導致軟體也發生改變,這為軟體開發人員節約了很多時間,並且嵌入式能在已有的硬...