嵌入式軟件工程師都在開發什麽?
國內嵌入式公司主要有兩種: 偏底層芯片公司,偏應用層業務需求公司。
實際上大多數公司都是做應用層業務需求;
比如做人臉識別打卡機的,做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內核框架。
嵌入式軟件工程師都在開發什麽?