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