1. 程式人生 > >嵌入式軟體工程師都在開發什麼?

嵌入式軟體工程師都在開發什麼?

  國內嵌入式公司主要有兩種: 偏底層晶片公司,偏應用層業務需求公司。

  實際上大多數公司都是做應用層業務需求;

  比如做人臉識別打卡機的,做GPS導航的,做雲終端裝置的公司等。

  這類的公司,除非已經是非常大規模的,正常是幾十號研發在運作。

  人臉打卡,人臉識別模組是核心,但是硬體和軟體是買的,公司可能製作c++,QT實現上班打卡業務的工作使用場景,資料傳輸,匯出匯入等相關程式設計

  GPS導航的,GPS模組,核心驅動,Linux,WinCE的,都不需要此公司的開發者去做開發。

  雲終端的,核心接入協議可能是買思傑的方案,也有可能買Vmware的方案,再不行的就搞個山寨的spice協議,rdp協議這些免費開源的。

  以上幾個產品,核心模組,買之,介面使用之,大多國外技術。

  硬體方案,要麼開發板生搬硬套要麼外包給硬體廠商。

  那這些公司的開發做什麼呢?

  如果產品UI是的是QT, 那就寫大量的C++程式碼,各種好的軟體框架,各種多執行緒,多程序配合。

  如果UI是GTK,那就寫大量的C程式碼,各種結構體來模擬面向物件的開發思想,當然也可以學習核心開發者寫的牛x框架,比如學習輸入子系統,裝置驅動模型啊,binder驅動模型啊,將核心的程式設計思想靈活運用到應用層程式設計,寫出穩定,拓展性極強的框架就是很牛的人物啦。

  真正涉及到Linux底層開發的偏少,如果一個人真正深入掌握linux核心的程序管理,時間管理,記憶體管理,檔案管理,各種驅動框架等,能在各種硬體平臺做一個實時作業系統的,還懂裸機,寫點啟動程式碼來引導自己的作業系統,那就是大牛中的大牛。

  迴歸到剛進入嵌入式世界探索的孩子們,其實你們目前的水平去分析uboot,分析linux核心原始碼,是一件很egg疼的事情。

  呼叫介面來實現多執行緒,來處理程序通訊,來寫socket程式設計都是難事,甚至還在糾結指標傳參,糾結指標陣列和陣列指標,怎麼能去看uboot,linux核心原始碼呢?

  做技術得一步一個腳印。而很多童鞋們都會被培訓機構設定的課程而煩擾。或許連C和指標,C程式設計都沒懂多少。而在那裡高談大論。不管怎麼樣,只要我們基礎紮實了。才能進一步探究Linux核心框架。