當前位置:
首頁 > 最新 > 嵌入式軟體開發的發展路線

嵌入式軟體開發的發展路線

經常有朋友問嵌入式軟體開發都涉及哪些方面,學起來難不難,將來可以做什麼工作,有沒有前途......據此,根據我過往經歷,對嵌入式從業路線做一個簡單的歸納,希望能對那些迷茫的小夥伴有一些幫助。

嵌入式開發門檻高,涉及的知識面廣,既要求懂硬體,又必須能寫軟體,而軟硬體涉及的知識體系卻又是異常的龐大;並且學習這些短期內看不到成績,需要堅持數年,執著在一個領域深耕。

具備基本的電路知識,了解常用元器件、晶元,能看懂原理圖,作為嵌入式軟體開發人員也必須懂一些硬體設計方面的知識;

具備一定的MCU設計與應用能力,從單片機到ARM再到DSP,能夠根據客戶要求設計產品;掌握至少一種單片機的編程與使用,比如常見的STM32,後期可以涉獵FPGA;

學習C語言,掌握基本的數據類型、指針、結構體等;了解基本的MCU外圍模塊,SPI、I2C、UART、GPIO、ADC、PWM、Timer、FLASH等原理,能根據硬體原理以及晶元手冊編寫裸機設備驅動程序;掌握常用工業通訊協議比如CAN、Modbus等;

學習至少一種操作系統,包括但不限於uCOS、FreeRTOS、RT-Thread、Vxworks等,並且一定要學習嵌入式linux的使用與編程,搞明白多任務調度、信號量、郵箱等的原理與使用;

學習linux平台下的設備驅動程序設計,掌握字元設備、塊設備、網路設備的驅動框架,並能夠熟練設計這些設備驅動,比如ADC、UART、SPI、GPIO、Camera等等,視頻驅動框架一定要搞懂V4L2;

學習GUI設計,具備基本的嵌入式產品GUI設計能力,可以學習Qt,它的跨平台特性很適合嵌入式開發;當然也可以轉到App設計開發;

學習多線程編程,搞明白線程池原理並應用到實際產品中;具備高並發網路通信編程能力,熟練掌握epoll以及libevent的使用和設計;

掌握至少一種資料庫編程能力,嵌入式可以學習SQlite;

掌握C/C++編程語言,可以設計linux平台下的應用程序以及後台服務程序,並涉獵其他編程語言,可以學習Python;

修鍊內功,學好數學,學習各種編程演算法,掌握常用數據結構以及演算法的原理和實現,鏈表、隊列、排序、查找等;掌握常用濾波演算法及其實現,比如一階互補濾波、卡爾曼濾波等;掌握PID原理與演算法實現;

以上即是嵌入式軟體開發的路線,當然不一定適合每個人,但總體來講掌握這些對以後的進一步發展有很大幫助。

嵌入式軟體開發人員的從業範圍也是異常的龐大,小到家用電器,大到工業航天設備等都有嵌入式的存在。比如手機、電視、冰箱,比如太空梭、通信衛星、人工智慧、無人機、移動機器人、無人駕駛、激光雷達、智慧醫療、醫療儀器、可穿戴設備、物聯網等,也包括一些工業嵌入式產品,比如電力設備、新能源設備、汽車、發電、通訊等等,可以說只要需要微處理器的地方都離不開嵌入式。

對於嵌入式軟體開發來講,懂得必須要多,但更要專;要做T字形人才,在一個領域深耕,才能有好的發展,切勿淺嘗輒止,好高騖遠。

要找到自己的興趣點,喜歡無人機,那就在飛行控制演算法方面做深入研究;

喜歡圖像處理,那就在圖像處理演算法方面多深入研究;

喜歡人工智慧,那就在機器學習、深度學習方面做深入研究;

喜歡汽車電子,那就在汽車領域深入研究;

總之,嵌入式不是一蹴而就,需要數年的堅持與執著,要想在嵌入式任何一個領域精進,都不是一件容易的事。

選一個方向,沉下心來,做就是了。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 尚程功夫 的精彩文章:

樹莓派3B安裝ROS-Indigo

TAG:尚程功夫 |