淺談嵌入式
談談嵌入式軟體
來點鋪墊吧
讓我總結嵌入式最大的特點那可能就是就是 “什麼都得知道一點”,我之所以選擇嵌入式軟體行業的原因也也就是這個吧,因為這個行業裡面可能會用到許多知識,不用大學豈不是白學啦!
- 軟體的程式設計知識這就不用多說了吧,一定是要熟練的
- 基本的硬體知識你得了解吧?
- 遇到一些網路問題,比如進行網路通訊的時候需要知道一點網路知識吧?
- 涉及到工作效率的時候你的演算法知識這個時候可能就有用啦!
- 做嵌入式少不了接觸感測器,那麼你的物理知識怎麼樣呢?
- 假如某個板子線路壞啦,你免不了要自己動手焊接電路
- 好多感測器,功能函式的說明書都是英語的,那你的英語…(算了,不提英語,心疼。。。)
是不是被嚇住啦!其實也沒有那麼恐怖的,除了第一點,其他要求都只需要學一點,慢慢慢慢你就會啦。
接下來,我將談談我對嵌入式的理解吧!純粹個人理解。
(如雷雷同純屬巧合,如有錯誤反正我又沒有說我這個一定是正確的)
什麼是嵌入式
如果官方一點的話”嵌入式系統是一種專用的計算機系統,作為裝置或裝置的一部分” 。嵌入式可以有很多理解,如果把抽出來”嵌”理解為動詞的話,那麼,他就是將晶片嵌入到一個裝置裡面。當然也可以將它認為是一個小型的電腦,傳統理解的電腦也可以叫做嵌入式系統,只不過他的外設功能可能會多一點。在我看來將晶片和需要的功能組合起來能夠完成相應的功能就可以稱作嵌入式系統。不過這得看自己的吧,每個人的理解的都不一樣。
晶片
嵌入式無非就是寫程式碼給晶片,讓它去執行相應的程式。如今市面上晶片那麼多到底怎麼選晶片呢?大家最熟悉的可能就是51微控制器了,大學好多都學51微控制器的程式設計,51微控制器是挺不錯的,比較經典,資料又多,學習的人也挺多的,遇到什麼問題上網都能夠很好的找到相應的資料。不過我這兒推薦的是ARM的晶片,相比於51微控制器來說ARM家族更為強大,功能上面比51微控制器多很多,還可以根據需求自己選相應的晶片型別,無論是裸板開發還是linux開發,ARM都有相應的晶片支援。可以滿足更多的場合需求。
語言
嵌入式軟體和好多其它計算機專業有很大的不同,最大的特點可能就是有嵌入式硬體這樣一個東西。所以嵌入式軟體開發有時需要和做硬體的一起工作,也要了解許多硬體的知識。在開發當中考慮的東西會很多,曾經我用C++在VS上面程式設計的時候根本不用考慮太多的記憶體(這是一個壞習慣),不過嵌入式軟體就不一樣啦,你不僅要考慮記憶體大小,同時還要考慮執行效率等,因為嵌入式的晶片的執行效率可用資源大多不如計算機的CPU,甚至遠低於電腦CPU,對於這樣一個小小的東西你還能怎麼樣呢?當然通過努力優化演算法,節約記憶體,用有限的資源去完成相應的功能嘍。
這可能就是好多用底層語言看不起用高層語言的原因吧!(和PHP是最好的語言一樣,這個也不是我說的)不過的確,接觸底層,你才會感覺到資源的可貴,而不是隨隨便便申請一個大的記憶體卻只用來完成相當小的一部分工作。
工作環境
嵌入式軟體工作和普通軟體工程不大一樣,通常不是隨隨便便一臺電腦就行啦,還需要硬體的支援,有時候需要用示波器檢視一下輸出的波形,有時候需要用萬能表測一下電壓電流之類的,有時候有需要自己連線線路。這些都是經常的事情,所以好多搞嵌入式的很少會像搞web,java的一樣回家還敲程式碼。不過對於喜歡動手的來說這也挺好的,工作起來不那麼單一所以也不會無聊。
總結
沒什麼總結!!!
(版權宣告:本文為博主原創文章,未經博主允許不得轉載)