這段時間總有很多學習嵌入式的消費者來詢問:嵌入式軟件開發(fā)好?還是硬件開發(fā)好?其實在
智能硬件開發(fā)小編看來,想要成為一名優(yōu)秀的嵌入式開發(fā)者最好是軟硬兼修。
據小編表示“嵌入式軟件工程師,兩手都要硬!”嵌入式軟件編程顯然不同于PC軟件開發(fā),它和硬件密切相關。想寫好嵌入式軟件代碼,就必須了解清楚所使用MCU的硬件特性、各個外圍電路和接口電路的原理。不僅要深挖細究MCU內核架構的知識,是否支持浮點處理器/DSP,是否支持協(xié)處理器、指令數據緩存。
還要了解MCU的編程模型、各種存儲器的地址空間分配及其訪問效率如何,在MCU之外,還必須了解各種電路知識,什么地方需要上下拉,什么地方需要加濾波電路,什么地方必須隔離,哪里必須加抑制器件,等等不一而足。
軟硬結合,可以更好地實現用戶需求
比如輸入捕捉,如果是通過上升沿或者下降沿捕捉,加了不合適的濾波電容會造成對沿的破壞,不加濾波電容就會受困于各種空間干擾產生的雜波。
倘若硬件工程師搬來的是加了不合適電容的電路,搞得沿之間位寬失真,便會出現數據不正常的偶發(fā)故障,倘若硬件工程師搬來的是不加電容的電路,搞得軟件工程師必須進行軟件濾波,把代碼搞得又復雜又難解,你說這怨誰來著?
方便定位Bug
鉆研硬件電路可以幫助軟件工程師提出更多解決問題的思路,發(fā)現導致Bug的更多可能性。一般來說,當遇到Bug時,對硬件一知半解的軟件工程師只在代碼層面上打轉轉,基本不會在硬件方面提出問題,最終為了迎合蹩腳的硬件設計出別扭無比的代碼,卻不曾想,只要稍稍改變一下硬件設計,就可以輕松且優(yōu)雅地完成代碼設計。
技多不壓身
當我們對硬件電路設計起了懷疑,倘若自己悄沒聲地拿起烙鐵飛個線、換個元件,驗證了自己的思路,這時直起腰版、拿著板子理直氣壯地去找硬件工程師,豈不是順順利利,又送順水人情?
倘若直接拿著板子,心底發(fā)虛面上露怯地去找硬件工程師理論,一場唇槍舌戰(zhàn)在所難免,腥風血雨不說,到頭來硬件工程師硬著頭皮給你調調電路,真是解決了問題還好說,若是自己思路錯了,那不是自找苦吃?上個班,掙點錢養(yǎng)家糊口而已,當個老好人,和同事其樂融融多好,吵來吵去,搞得那么辛苦,何必來著?
但是實際中嵌入式開發(fā)需要的知識體系和技能,80%其實跟硬件平臺無沒有無關系的。比如計算機系統(tǒng)原理、編程技能、程序的編譯鏈接、你對Linux內核的理解、設備模型、驅動架構、項目管理等等。
結語:嵌入式學習偏軟還是偏硬?就找工作而言,主要看大家是編程能力強,還是硬件操作能力強,但就個人提升而言,軟硬兼修,一定會讓你走向更廣闊的的舞臺!
本文由安徽海鴻計算機技術有限公司原創(chuàng),轉載時請注名
嵌入式開發(fā)網址:
http://www.sxytw.cn/