{eval=Array;=+count(Array);}
謝謝邀請,作為一名嵌入式開發(fā)工程師,由我來回答這個問題。
STM32軟件工程師和linxu軟件工程師,都是使用C語言進(jìn)行程序開發(fā),但linux可以分為linux驅(qū)動開發(fā)和linux應(yīng)用開發(fā)。
linux開發(fā)比STM32軟件開發(fā)要復(fù)雜,從事linux開發(fā),需要學(xué)習(xí)linxu gcc和shell指令,makefile編程,系統(tǒng)移植,文件系統(tǒng),linux驅(qū)動,QT等等相關(guān)知識,門檻比stm32開發(fā)難度高。需要掌握的知識點更多更復(fù)雜。學(xué)習(xí)難度非常大。
學(xué)習(xí)stm32的工程師,等到工作年限,一定會遇到職業(yè)瓶頸,這個時候,如果你會linux開發(fā),操作系統(tǒng),那么職業(yè)道路將會走的很寬,二則,工作待遇來講,普遍linux開發(fā)會比STM32開發(fā)的福利待遇要好一些。
如果本身有一定的linux系統(tǒng)基礎(chǔ),那么強烈建議選擇linux,因為linux整體工資要比stm32開發(fā)要高。學(xué)完linux后,如果項目需要stm32單片機,那么再去做STM32,會覺得十分簡單。
如果沒有任何的linux基礎(chǔ),公司沒有師傅帶著做linux的話,或者公司對linux項目有較高的要求和時間限制,那么不建議轉(zhuǎn)linux,先將STM32學(xué)好,再過半年一年后,自學(xué)合作參加培訓(xùn)linux。不至于打擊學(xué)習(xí)的自信心,二則對于后續(xù)找工作也有一定的好處,至少有一項技能能夠在畢業(yè)后找到工作。
總之,因為處在即將畢業(yè)的時間點,先要根據(jù)自身條件,結(jié)合自己的興趣愛好,保障畢業(yè)能夠找到好工作為前提
我是科技電小二,一名嵌入式開發(fā)工程師,歡迎點個贊,并加個關(guān)注吧。
我覺得,剛出來實習(xí)的話最好就是能找到一個能讓你成長的平臺。但前提是你現(xiàn)在所擁有的知識和技術(shù)是否能夠讓你所選擇的提供職位的公司能夠錄用你。
STM32與Linux兩者都是屬于嵌入式,而后者比前這更高級,目標(biāo)可以訂在Linux,STM32只是一個過渡,兩者的相關(guān)理論都是有所系系,初始階段可以先通過STM32來搞明白常用的一些外設(shè),STM32搞明白了,自己的編程能力那也就提升了,再入手Linux也就簡單多了,如果你一開始就入手Linux的話估計會比較難而且復(fù)雜。
就我自己來說,剛實習(xí)的時候找了一份搞STM32的硬件開發(fā)工程師的職位,這也是找了一個多月才找到的一份工作,這也是因為我拿出了我畫的不咋地的一份PCB設(shè)計才被錄用下來的。
錄用我的公司是一家小公司,一開始就是做一些設(shè)備的組裝和畫一下PCB這些工作,因為我的C語言編程能力實在是太差了,在大學(xué)學(xué)的是8051的單片機,而且學(xué)的也不怎么樣。所以看到STM32程序項目的程序那么多看明白的就沒幾行。后來我通過stn32開發(fā)板提供的配套視頻教程了解了整個程序項目的結(jié)構(gòu)和作用后,就看得懂了,那時就可以改改程序了。后來來就不單單是搞硬件了,什么都要搞。最后公司所使用的產(chǎn)品性能要升級,就用到了Linux,一開始老板安排工作直接叫我在Linux上用qt開發(fā)一個軟件,當(dāng)時我就愣了一下,因為我都沒搞過C++。而且還說沒完成要追究責(zé)任。沒辦法只能硬著頭皮開干了。用了兩天去了解QT項目工程的結(jié)構(gòu)。最后搞了兩個多月算是完成了,過程中搞過Linux內(nèi)核編譯,底層驅(qū)動移植,驅(qū)動添加等等,感覺在這段時間學(xué)到了很多。
所以說STM32到Linux只是一個過程,是一個由淺入深的過程。如何抉擇先看你自己現(xiàn)在能力在那個階段。
都要會,實際上區(qū)別不是太大的,都能用C。實際上用系統(tǒng)會簡單點,但在對單片機性能要求高,主頻至少幾百兆,裸機只要幾十兆就夠了
學(xué)stm32,后期可以打工,也可以創(chuàng)業(yè)。學(xué)linux,后期以打工為主。如果只要打工,相對來說后者工資較高點,但不絕對。
天下代碼不分家. 如果基于Linux 系統(tǒng)工作環(huán)境,命令行+M0-M3單片機手冊,基于OpenOCD裸機開發(fā)M0/3程序,寫驅(qū)動代碼和GCC makefile,寫匯編啟動代碼,手動編寫GCC鏈接符號表,生成ELF文件刷Flash, 如果能玩任意一款哪怕Openocd不支持的M0/4單片機,基本上Linux和STM之流都可以入門了... 有人說Linux比單片機復(fù)雜,宏觀看是對的,但是拿到一款openocd不支持的單片機直接愣逼,如果真正掌握linux, 開發(fā)單片機完全可以拋棄Windows MDK和IAR開發(fā)環(huán)境,如果不行,說明Linux學(xué)了皮毛
嵌入式軟件開發(fā)領(lǐng)域,主要分為MCU開發(fā)和SOC開發(fā)兩個大類別。具體的細(xì)分情況如下圖所示。其中,MCU開發(fā)主要涉及到一般的RTOS系統(tǒng)開發(fā),而SOC開發(fā)就具體需要Linux操作系統(tǒng)的支持了。
題主上面問題中,STM32屬于MCU開發(fā)的范疇,而嵌入式Linux 開發(fā)是屬于SOC開發(fā)的范疇。兩個領(lǐng)域來說,編程語言都是標(biāo)準(zhǔn)的C語言;MCU與SOC芯片硬件差異有,但是不是影響開發(fā)的因素。兩者主要的區(qū)別在于:Linux操作系統(tǒng)遠(yuǎn)遠(yuǎn)復(fù)雜于STM32上常見的RTOS操作系統(tǒng)。而且,在Linux 開發(fā)領(lǐng)域,還更加細(xì)分為應(yīng)用開發(fā)與BSP驅(qū)動開發(fā)兩個子類別。
所以說,Linux開發(fā)的復(fù)雜度遠(yuǎn)遠(yuǎn)高于STM32上RTOS的軟件開發(fā)。至于如何選擇,需要題主根據(jù)自身的技術(shù)能力(是否有Linux的開發(fā)經(jīng)驗),參考個人的技術(shù)發(fā)展方向(未來從事MCU還是SOC),具體問題具體分析來決定。
根據(jù)答主的嵌入式開發(fā)經(jīng)歷,如果題主對Linux操作系統(tǒng)沒有開發(fā)經(jīng)歷。建議您選擇從STM32的RTOS系統(tǒng)開發(fā)做起,然后擴(kuò)展到嵌入式Linux的應(yīng)用開發(fā),最后在涉足Linux的BSP開發(fā)的技術(shù)發(fā)展道路。這個也是答主,以及很多朋友的常見技術(shù)發(fā)展道路。
以上僅代表個人建議,僅供題主參考。
都可以學(xué),學(xué)到夠用就行,不用太專,后期關(guān)鍵還是要對一個行業(yè)技術(shù)理論以及難點突破點的深度挖掘與突破,然后在這些平臺上實現(xiàn)功能需求。stm32和linux只是一個平臺工具而已,有人用來點燈,有人用來搞人工智能,這就是區(qū)別,雖然大家都會這兩個平臺!
Stm32要會看電路圖,有可能要畫板子,要熟悉各種硬件外設(shè)和軟件庫,linux的話注重軟件開發(fā),跟windows開發(fā)一個套路,如果想了解硬件,那就stm32,否則就干linux
STM32更貼近底層硬件,重點在底層設(shè)備和器件;Linux更貼近應(yīng)用層,重點在驅(qū)動和應(yīng)用
前者開發(fā)所需要的知識偏散偏底層,要做好需要沉下心來積累幾年才行,要求經(jīng)驗; 后者開發(fā)所需的知識面很廣,好在與互聯(lián)網(wǎng)或普通計算機所需的知識高度復(fù)合,因此上手快。
在工作的前期,linux開發(fā)待遇高,后期STM32所代表的高級硬件開發(fā)待遇高,且可遇不可求。
以上
這里不針對樓主所謂哪個平臺,只是想提醒一下在讀書的同學(xué)。實際上一個工程人員的核心競爭力難度不在于平臺,在于基礎(chǔ)知識積累。通信原理,數(shù)字信號處理,微機原理,英語好,理解能力強也是很重要的。
弄Linux大部分功能都是現(xiàn)成的,原廠提供了bsp在上面改就行了。要增加一些什么功能,有非常多的開源代碼直接換個交叉編譯工具就可以移植了。linux只有個芯片手冊就能把系統(tǒng)搭建起來的恐怕鳳毛麟角了。不過linux就業(yè)機會確實比單片機多點,我從事單片機開發(fā),這點有體會。另外就是單片機,這是完全可以靠gcc和makefile搞起來的。但一般都用原廠的sdk,沒必要自己搞。
說了這么多,想表達(dá)的意思是平臺不是問題,入門成本不高。當(dāng)然,硬是要搞得非常徹底,那還是算了吧,估計一般人早晚都會放棄。站在巨人肩膀上做事才會更好。
真正的牛人不是用哪個平臺,而是基礎(chǔ)知識積累怎樣。舉個例子,移植驅(qū)動寫makefile好像逼格很高吧?但一般人依樣畫葫蘆一樣可以搞定。但是,牽涉到基礎(chǔ)理論的代碼,別說寫了,一般人看都看不懂,函數(shù)在那里都不知道怎么用。不相信的同學(xué)可以隨便去看看各種解壓縮算法,各種通信協(xié)議。另外想表述到是英語跟重要,因為99%的有價值的文檔都是英文的。舉個例子,各種標(biāo)準(zhǔn)化組織的spec都是英文的,沒人給你翻譯中文。國內(nèi)的論壇,大部分情況下問題解決了不會說解決方法,國外的就不一樣了,大部分情況下解決了會詳細(xì)解決方法描述。不相信的同學(xué)等你們工作了就會有感觸。
因此,讀書的時候積累好基礎(chǔ)知識,哪個平臺是基本技能,花一年左右時間補短就好了。以后的工作中,基礎(chǔ)知識扎實的同學(xué)肯定能脫穎而出。這也是為什么牛逼企業(yè)招985的多一些。哪個平臺寫代碼是大磚小磚的區(qū)別,而基礎(chǔ)理論知識才是設(shè)計圖紙。
0
回答0
回答5
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答