紀客老白【每日答疑】白紀龍老師每日8點起更新一題目,歡迎各位關注!

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