問:白老師您好!我是一名電子工程師,單片機(jī)軟硬件都做,已經(jīng)做了快十年了,我有必要學(xué)習(xí)linux開發(fā)嗎?個人覺得,只有把單片機(jī),該會的都會了,Linux這種重量級的系統(tǒng)開發(fā)就沒必要折騰。如果對單片機(jī)已經(jīng)做了很熟了,有必要往Linux開發(fā)上走嗎?往Linux上走的意義是什么?
(1)像我們同學(xué)的這種情況非常具有代表性,也就是很多人軟硬件都做,而且都還做的不錯,就覺得自己遇到了瓶頸,就在想我要不要學(xué)習(xí)linux (2)針對于要不要學(xué)習(xí)Linux的問題我們要做具體情況具體分析,首先像我們同學(xué)這種情況,軟硬件都做,而且都做的還不錯,然后你在自己的行業(yè)做了快10年,那么其一你對自己的職業(yè)規(guī)劃應(yīng)該非常清晰了,其二你在這個行業(yè)應(yīng)該已經(jīng)積累了一些資源和人脈,其三你在公司應(yīng)職位給方面應(yīng)該已經(jīng)不錯了,甚至有可能在做技術(shù)管理相關(guān)的崗位,如果是這種情況我個人覺得完全沒有必要再去學(xué)習(xí)Linux (3)如果是你對技術(shù)很癡迷,你的目的就是往技術(shù)專家的路線走,那么Linux很有必要去學(xué)習(xí)一下,但是linux得學(xué)習(xí)是一個漫長的過程,我們要有正確的的學(xué)習(xí)路線:針對于我們軟硬件都做的同學(xué),首先我們可以學(xué)習(xí)STM32的標(biāo)準(zhǔn)庫,我們這里重點(diǎn)學(xué)習(xí)如何進(jìn)行軟件架構(gòu)的設(shè)計(jì)-->然后進(jìn)行HAL庫的學(xué)習(xí),進(jìn)一步熟悉軟件架構(gòu)設(shè)計(jì)技巧,并且逐步開始熟悉操作系統(tǒng)其編程風(fēng)格,因?yàn)樵贖AL庫引入了句柄結(jié)構(gòu)-->實(shí)時操作系統(tǒng)RTOS的學(xué)習(xí),主要學(xué)習(xí)對多任務(wù)的調(diào)度機(jī)制,以及其他操作系統(tǒng)的關(guān)鍵技術(shù)-->然后才是Linux,但是Linux得學(xué)習(xí)又是一個漫長的過程,一般都是首先學(xué)習(xí)uboot,類似于我們stm32里面的bootloader,重點(diǎn)學(xué)習(xí)如何初始化各種底層硬件,uboot命令等,最重要的是學(xué)會其向載入os傳遞參數(shù)的機(jī)制,也就是我們著名的ATAG參數(shù)法以及設(shè)備樹法等-->linux.內(nèi)核的學(xué)習(xí)-->linux.驅(qū)動學(xué)習(xí)又是一大難關(guān),對于各種驅(qū)動模式的學(xué)習(xí)是一個非常痛苦的過程,對于你的軟件架構(gòu)能力底層的C語言能力是一個非常大的考驗(yàn),但是你完成了那絕對是一個質(zhì)的飛躍-->基于linux的應(yīng)用開發(fā)如Qt使用C++進(jìn)行開發(fā) (4)對于我們剛剛開始以及職場生涯的同學(xué),那么我個人建議在有時間有精力的情況下還是要好好學(xué)習(xí)一下linux的,至于說具體的學(xué)習(xí)路線如上 (5)那我們?yōu)槭裁匆獙W(xué)習(xí)Linux呢?其主要是大勢所趨,未來我們很多的產(chǎn)品是基于AI智能,基于5g,基于智能制造,基于工業(yè)4.0……等等等等,其要求是邊緣的計(jì)算能力等非常高,一般情況下我們滿足這樣性能需求的Mcu或者微處理器其大多都是基于Linux系統(tǒng)的,所以這就驅(qū)使我們必須哪怕沒有掌握至少也是熟悉的;另外我們以后人生的選擇也可以更多
|