0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

工程師:關(guān)于單片機(jī)是否要轉(zhuǎn)嵌入式Linux的觀(guān)點(diǎn)

工程師人生 ? 來(lái)源:面包板社區(qū) ? 作者: 大魚(yú)機(jī)器人 ? 2020-10-18 10:05 ? 次閱讀

看來(lái)讀者圈中做單片機(jī),RTOS的不少。盡管火哥目前從事Linux/Android方面的嵌入式開(kāi)發(fā)工作,但是讀書(shū)的時(shí)候也有5年左右單片機(jī)裸機(jī)和RTOS經(jīng)驗(yàn),之前面試也拿過(guò)一些做單片機(jī)stm32開(kāi)發(fā)的offer,所以今天分享一些關(guān)于單片機(jī)是否要轉(zhuǎn)嵌入式Linux的一些觀(guān)點(diǎn)。

一、你真的決定要轉(zhuǎn)嵌入式Linux嗎?

要不要從單片機(jī)轉(zhuǎn)嵌入式Linux是一個(gè)影響到職業(yè)發(fā)展的嚴(yán)肅決策,火哥不能幫你拿主意,只能幫你列出利弊,你需要根據(jù)自身的各種環(huán)境(比如所在城市Linux嵌入式相關(guān)崗位多嗎?是否決定背井離鄉(xiāng)去北上深發(fā)展等等)做出最有利的決策?;鸶绲挠^(guān)點(diǎn)并不是Linux嵌入式絕對(duì)比單片機(jī)開(kāi)發(fā)職業(yè)發(fā)展好,只是根據(jù)自身的一些經(jīng)歷,給出一些看法。

1. 單片機(jī)開(kāi)發(fā)相對(duì)于Linux嵌入式最大的劣勢(shì)在于基層的打工崗位平均薪資偏低。我想這是大部分單片機(jī)工程師想轉(zhuǎn)嵌入式Linux的最主要的原因。技術(shù)本身各有優(yōu)劣,但是就基層打工而言,在同一座城市,就打工而言,單片機(jī)的薪資比嵌入式Linux低30%到50%。也許很多有會(huì)拿某些做單片機(jī)的高薪的老板(比如野火的火哥,周立功等)或者一些公司高管的薪資和做嵌入式Linux打工的工程師對(duì)比,證明單片機(jī)也可以拿高收入。

但是他們都犯了田忌賽馬的錯(cuò)誤,拿別人的上等馬和你的中等馬對(duì)比,火哥認(rèn)為這種田忌賽馬的比較非常不切實(shí)際,基層打工的就應(yīng)該和基層打工的這個(gè)水平的對(duì)比。目前火哥調(diào)查到情況來(lái)看,在深圳的基層就業(yè)市場(chǎng),單片機(jī)(含RTOS)開(kāi)發(fā)的起步薪資在6K-7K, 一般人到15K就是高薪,很難突破。20K以上的單片機(jī)offer也有,但是很少,最多也見(jiàn)過(guò)25K的單片機(jī)offer,但是那都是有名企,名?;蛘咂渌麡I(yè)務(wù)背景換來(lái)的,一般人真拿不到。嵌入式Linux/Android這塊,薪資相對(duì)高不少,起步價(jià)12K很正常,工作2年一般都能突破15K,3-5年突破20K甚至到25K也是很多的,5年以上去一線(xiàn)土豪大廠(chǎng)(華為、OPPO、VIVO等)可以到30K,如果在手機(jī)大廠(chǎng)做到模塊owner專(zhuān)家,突破40K也是可以有,但是在往上就有點(diǎn)難了。

整體來(lái)看,同檔次的基層打工者,嵌入式Linux薪資比單片機(jī)開(kāi)發(fā)還是高不少,單片機(jī)15K就會(huì)遇到瓶頸,突破20K就很難了,嵌入式Linux突破20K并不是難事,到25K以上才遇到瓶頸。

2. 你所在的城市嵌入式Linux崗位多嗎?我覺(jué)得這是影響你做決定的另一個(gè)大問(wèn)題。我們學(xué)嵌入式Linux這門(mén)技術(shù),絕大部分人是為了從事相關(guān)的工作,而不是陶冶情操。但是根據(jù)火哥統(tǒng)計(jì)來(lái)看,嵌入式Linux的普遍薪資雖然高于單片機(jī),但是就業(yè)崗位并沒(méi)有單片機(jī)那么多。深圳目測(cè)是嵌入式Linux就業(yè)機(jī)會(huì)最多的城市,但是單片機(jī)機(jī)會(huì)看起來(lái)似乎更多,在深圳,單片機(jī)和Linux崗位數(shù)量對(duì)比大概6比4。

從嵌入式Linux城市的崗位數(shù)量來(lái)看,依次是深圳 》 上海 》 北京 》 成都 = 杭州 = 蘇州 》 東莞(華為加持)》= 珠海 》= 南京 = 廣州 = 武漢 = 西安 = 福州 = 廈門(mén) 》 佛山 = 長(zhǎng)沙 = 天津 = 合肥 》 其它,

在其它城市我就很少了解到做嵌入式Linux開(kāi)發(fā)相關(guān)的崗位。所以如果你要考慮轉(zhuǎn)行,首先考慮是否愿意背景離鄉(xiāng)去以上幾個(gè)城市工作。否則哪怕你學(xué)了牛逼的Linux技術(shù),可能也會(huì)在當(dāng)?shù)卣也坏綄?duì)口不得不繼續(xù)從事單片機(jī)開(kāi)發(fā)。

3. 單片機(jī)雖然待遇較低,但是就業(yè)機(jī)會(huì)更多,對(duì)大齡求職者相對(duì)友好。這點(diǎn)其實(shí)并不矛盾,做單片機(jī)各行各業(yè)的小公司特別多 (當(dāng)然像格力,美的這種傳統(tǒng)家電大廠(chǎng)也有,但是華為、商湯等新興高科技大廠(chǎng)很少招單片機(jī)),業(yè)務(wù)多種多樣,需要的人更多,但是一般小廠(chǎng)可能資金并不充裕,給不起人才高價(jià),加上單片機(jī)開(kāi)發(fā)門(mén)檻較低(不考慮產(chǎn)品穩(wěn)定性,EMC等有工作經(jīng)驗(yàn)自然會(huì)知道的概念,僅指學(xué)習(xí)使用單片機(jī)干活編程的培養(yǎng)門(mén)檻), 培養(yǎng)周期比較短(大二學(xué)生一個(gè)暑假的功夫),所以導(dǎo)致中低端能干活的人還是挺多,拉低平均薪資。

但這就像富士康一樣,招人多,但抱怨缺人,老板就是不想把待遇提上去,要控制成本,這是缺人但是待遇低之間一種永遠(yuǎn)存在的矛盾。但是對(duì)大齡求職者來(lái)說(shuō),由于單片機(jī)崗位實(shí)在是多,很多小廠(chǎng)真的很難以高的性?xún)r(jià)比招到優(yōu)秀的人,在小廠(chǎng)也沒(méi)有HR插手做人力資源規(guī)劃,年齡梯隊(duì)建設(shè),反而在年齡上卡的不嚴(yán),大齡求職者只要薪資不挑,也能找到一份工作,所以相對(duì)于做Linux的大廠(chǎng),對(duì)年齡問(wèn)題比較寬容一些(可能由于單片機(jī)有點(diǎn)歷史了,大齡從業(yè)者也多)。

4. 單片機(jī)也有一些較高薪職位。在單片機(jī)工程師眼中,20k以上就算是高薪,以這個(gè)為標(biāo)準(zhǔn),火哥也見(jiàn)過(guò)一些較高薪的職位,但是這里面有些特殊的要求。某家做智能門(mén)鎖STM32 RTOS的公司給火哥開(kāi)過(guò)20K的offer,主要是因?yàn)楣鞠M械募夹g(shù)人員都有985 211以上學(xué)歷背景,這樣溝通起來(lái)可能觀(guān)念比較一致,所以薪資能給到20k。另外還有一家明星獨(dú)角獸創(chuàng)業(yè)公司給過(guò)25K的單片機(jī)offer, 但是前提要求是能在Linux環(huán)境下開(kāi)發(fā)單片機(jī),而且面試難度較高,本來(lái)25K要價(jià)超出他們預(yù)期了,他們不愿意給這么多,后來(lái)火哥吊著他們一個(gè)星期,謊稱(chēng)拿到華為同等價(jià)格的offer,他們才最終答應(yīng)給25K的offer。剩下火哥還了解到有年薪80w的單片機(jī)高級(jí)工程師(掌握某些行業(yè)特殊的認(rèn)證標(biāo)準(zhǔn))。

但是整體來(lái)說(shuō),單片機(jī)較高薪的offer確實(shí)不容易拿到,而且拿到也不僅僅是因?yàn)槟愕膯纹瑱C(jī)技術(shù)好,解bug能力強(qiáng),而是因?yàn)槟愕谋尘埃瑢W(xué)歷,有其它offer抬價(jià),掌握特殊的業(yè)務(wù)競(jìng)爭(zhēng)力等等(關(guān)于嵌入式業(yè)務(wù)競(jìng)爭(zhēng)力可以讀讀火哥上一篇關(guān)于嵌入式競(jìng)爭(zhēng)力的文章),

這些特殊業(yè)務(wù)和文憑,背景都不是能靠當(dāng)下自己砸時(shí)間努力看書(shū)學(xué)習(xí)寫(xiě)代碼就能輕易獲取的。如果能單單靠自己砸時(shí)間努力就能獲取的技術(shù)就不是啥門(mén)檻性的技術(shù)。

列舉了以上這幾點(diǎn),要不要從單片機(jī)開(kāi)發(fā)轉(zhuǎn)嵌入式Linux相信你也應(yīng)該可以下決定了。

二、 單片機(jī)和嵌入式Linux開(kāi)發(fā)到底有什么異同

1. 單片機(jī)轉(zhuǎn)嵌入式Linux保留的優(yōu)勢(shì)主要在于熟練的C語(yǔ)言編程能力以及豐富的底層軟件與硬件接口的調(diào)試經(jīng)驗(yàn)。因?yàn)長(zhǎng)inux內(nèi)核本身就是C語(yǔ)言編寫(xiě)的,Linux底層應(yīng)用程序大部分也是C語(yǔ)言的,一般有單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)的,C語(yǔ)言應(yīng)該不是問(wèn)題,所以在切換的過(guò)程中,不需要考慮語(yǔ)言的切換,當(dāng)然如果沒(méi)有系統(tǒng)學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)(火哥認(rèn)為數(shù)據(jù)結(jié)構(gòu)是熟悉C語(yǔ)言必不可少的內(nèi)容,哪怕單片機(jī)也要懂?dāng)?shù)據(jù)結(jié)構(gòu)),可能需要補(bǔ)補(bǔ),另外有uCOS FreeRTOS這類(lèi)的實(shí)時(shí)操作系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)就更好,至少在看大規(guī)模C語(yǔ)言代碼的時(shí)候不害怕(其實(shí)懂uCOS內(nèi)核也不代表能馬上掌握Linux內(nèi)核,Linux內(nèi)核真的復(fù)雜太多,設(shè)計(jì)理念也很不一樣)。另外豐富的單片機(jī)底層調(diào)試與寄存器配置經(jīng)驗(yàn),可能幫助你在學(xué)習(xí)Linux嵌入式開(kāi)發(fā)的時(shí)候能快速定位底層的一些問(wèn)題,節(jié)約一些時(shí)間。

2. 單片機(jī)轉(zhuǎn)Linux嵌入式需要熟悉一套風(fēng)格迥異的開(kāi)發(fā)環(huán)境。對(duì)于大部分單片機(jī)工程師而言,都是在Windows上用IDE環(huán)境開(kāi)發(fā)單片機(jī)程序?yàn)橹鳎ú慌懦行┕疽呀?jīng)使用Linux開(kāi)發(fā)單片機(jī)了),Ubuntu這類(lèi)Linux系統(tǒng)接觸比較少,所以你們要越過(guò)的第一關(guān)并不是Linux內(nèi)核源碼,而是如何使用Ubuntu這種Linux系統(tǒng)。因?yàn)樵贒ebian Ubuntu CentOS 等各種Linux系統(tǒng)做軟件開(kāi)發(fā),主要都是通過(guò)命令行操作,而不是鼠標(biāo)界面點(diǎn)擊。并且Linux系統(tǒng)里面的應(yīng)用軟件不像Windows里面的IDE這樣給你集成好了,點(diǎn)擊就能用,Linux里面很多Makefile之類(lèi)的編譯腳本以及Samba, SSH Server等各種服務(wù),arm-linux-gcc等各種編譯鏈接工具,就像IDE軟件里面的各個(gè)組件,需要自己重新組裝使用,并且用的時(shí)候可能有各種環(huán)境甚至編譯問(wèn)題(開(kāi)源軟件猛糙快就是這樣),需要自己折騰花費(fèi)不少時(shí)間。

所以對(duì)于Linux入門(mén)者,哪怕你有豐富的單片機(jī)C語(yǔ)言經(jīng)驗(yàn),折騰起來(lái)也挺耗時(shí)間,需要克服心理的障礙。

Linux系統(tǒng)開(kāi)發(fā)環(huán)境就像一匹不聽(tīng)話(huà)的烈馬,馴服他才能發(fā)揮出它的價(jià)值,而Windows系統(tǒng)開(kāi)發(fā)環(huán)境更像一匹聽(tīng)話(huà)的普通馬。

3. 嵌入式Linux開(kāi)發(fā)代碼的掌控程度遠(yuǎn)低于單片機(jī)開(kāi)發(fā),單片機(jī)轉(zhuǎn)Linux需要適應(yīng)如何在這種低掌控度的不安全感中進(jìn)行開(kāi)發(fā)。做單片機(jī)開(kāi)發(fā),包括RTOS, 一般代碼量最多幾萬(wàn)行,哪怕不是每行代碼都讀過(guò),也基本能夠精確掌控每個(gè)模塊,大概哪里出了bug,作為開(kāi)發(fā)者很容易定位。而做嵌入式Linux開(kāi)發(fā),單獨(dú)Linux內(nèi)核就有幾百萬(wàn)甚至上千萬(wàn)行,還不包括各種你不熟悉的應(yīng)用層的開(kāi)源庫(kù),這導(dǎo)致大部分代碼都不可能掌控。嵌入式Linux的開(kāi)發(fā)模式就是在這種大部分代碼都不是你開(kāi)發(fā)的,你也掌控不了大部分代碼的情況下開(kāi)發(fā)驅(qū)動(dòng)或者應(yīng)用,你經(jīng)常會(huì)不熟悉的東西需要各種搜索問(wèn)人,這種開(kāi)發(fā)模式,會(huì)把人置于一種不安之谷當(dāng)中,很多你使用的函數(shù)你并不知道它的實(shí)現(xiàn)細(xì)節(jié),可能工作機(jī)制都只是略懂。在這種模式下開(kāi)發(fā)需要很好的搜索,溝通,團(tuán)隊(duì)協(xié)作能力,不能再像單片機(jī)那樣一個(gè)人全局掌控,蒙著頭開(kāi)發(fā)了,這種不可掌控的不安全感是單片機(jī)工程師往Linux嵌入式工程師發(fā)展過(guò)程中最需要適應(yīng)的。

4. 嵌入式Linux開(kāi)發(fā)需要有大局觀(guān),不用迷失在細(xì)節(jié)的叢林找不到方向和出口。

很多單片機(jī)工程師有個(gè)思維習(xí)慣,編程時(shí)喜歡細(xì)摳到每個(gè)寄存器的工作原理,每個(gè)功能的實(shí)現(xiàn)細(xì)節(jié)邏輯,每個(gè)if else都不放過(guò)。這在Linux嵌入式學(xué)習(xí)中將非常耗費(fèi)時(shí)間,事倍功半的做法。注重細(xì)節(jié)固然好,但是當(dāng)系統(tǒng)龐大到一種程度的時(shí)候,過(guò)于注重細(xì)節(jié)的人,往往很難駕馭這個(gè)系統(tǒng)。我看到很多初學(xué)者,每個(gè)寄存器,鏈接腳本的每種寫(xiě)法都要去糾結(jié)很久,芯片啟動(dòng)方式更上生搬硬套把2440的啟動(dòng)流程作為芯片啟動(dòng)的唯一真理,處處往其他芯片套。殊不知很多東西都是人為約定的一些習(xí)慣性做法,每家公司的芯片有自己的特點(diǎn),流程是死的,人是活的。

掌握大局觀(guān),讓自己迅速熟悉整個(gè)系統(tǒng)的知識(shí),很多細(xì)節(jié)上習(xí)慣性的東西自然而然就明白了,對(duì)整個(gè)系統(tǒng)的掌控力度就高了,遇到具體阻礙你前進(jìn)的細(xì)節(jié)問(wèn)題,再去嘗試處理。掌控并不意味著你知道每行代碼每個(gè)寄存器的意思,但是你能讓整個(gè)系統(tǒng)按照你的想法去運(yùn)行。

三、 單片機(jī)轉(zhuǎn)嵌入式Linux大概需要學(xué)哪些基本的知識(shí)

吹了這么多水,到了真正上干貨的時(shí)候了,從單片機(jī)轉(zhuǎn)Linux嵌入式到底需要學(xué)些啥。如果沒(méi)有這一段,火哥真怕你下定轉(zhuǎn)行決心之后,馬上拿起一本Linux內(nèi)核架構(gòu)與實(shí)現(xiàn)的書(shū),以為像學(xué)uCOS等RTOS系統(tǒng)一樣,都是C語(yǔ)言代碼,然后看得云里霧里,從入門(mén)到放棄。其實(shí)火哥在剛學(xué)習(xí)Linux嵌入式的,也犯過(guò)類(lèi)似的錯(cuò)誤,因而總結(jié)了一些經(jīng)驗(yàn)教訓(xùn)。

1. 你需要花一定時(shí)間熟悉如何使用Linux系統(tǒng)進(jìn)行編程開(kāi)發(fā)。相信很多童鞋都是從小使用Windows電腦長(zhǎng)大的,在學(xué)計(jì)算機(jī)編程之前,應(yīng)該沒(méi)有接觸過(guò)Ubuntu等Linux系統(tǒng),而這個(gè)系統(tǒng)又不像Windows那樣點(diǎn)點(diǎn)鼠標(biāo)就聽(tīng)話(huà),需要各種命令行操作。而且系統(tǒng)里面有各種服務(wù)和應(yīng)用工具需要你自己按照需求去配置。所以學(xué)習(xí)嵌入式Linux開(kāi)發(fā)不是急于鉆進(jìn)Linux內(nèi)核代碼的海洋中,而是先用好Linux系統(tǒng)。你可以參考《鳥(niǎo)哥的Linux私房菜》等Linux系統(tǒng)如何安裝使用等書(shū)籍,學(xué)會(huì)使用命令行。

但是火哥認(rèn)為學(xué)習(xí)要有目標(biāo)性,如果對(duì)著《鳥(niǎo)哥的Linux私房菜》一頁(yè)一頁(yè)每個(gè)命令學(xué)下去,看幾天就會(huì)枯草乏味了,所以火哥建議由單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)的童鞋,第一個(gè)目標(biāo)就是在Linux系統(tǒng)上如何搭建你的單片機(jī)開(kāi)發(fā)板交叉環(huán)境,編譯出一個(gè)裸機(jī)的Led點(diǎn)燈的程序(不需要跑Linux內(nèi)核),并通過(guò)開(kāi)發(fā)板產(chǎn)商提供的工具燒寫(xiě)。

這件事情并不難,網(wǎng)上已經(jīng)有很多如何在Linux系統(tǒng)下交叉編譯單片機(jī)程序的文章,尤其是stm32系列的,你可以參考別人的文章做一遍,在這過(guò)程中你將會(huì)熟悉各種常用的命令,shell, arm-linux-gcc交叉編譯工具鏈,Makefile(可以單獨(dú)參考陳皓的文章)等Linux編程環(huán)境相關(guān)的知識(shí),從而開(kāi)始進(jìn)入Linux的世界。

2. 你需要知道嵌入式Linux系統(tǒng)是怎么跑起來(lái)的,一般由哪些組成部分。相信大部分人轉(zhuǎn)行嵌入式Linux開(kāi)發(fā)并不是為了在Linux系統(tǒng)上開(kāi)發(fā)單片機(jī)程序,而是想做Linux驅(qū)動(dòng)或者應(yīng)用開(kāi)發(fā)。在走完入門(mén)第一步之后,就不要太糾結(jié)那些編譯,鏈接腳本那些文件格式怎么寫(xiě),而是盡快把精力專(zhuān)注到Linux系統(tǒng)開(kāi)發(fā)。學(xué)習(xí)嵌入式Linux系統(tǒng)開(kāi)發(fā),首先就得知道一個(gè)Linux系統(tǒng)如何跑起來(lái),如何把一個(gè)Linux系統(tǒng)環(huán)境在開(kāi)發(fā)板上搭起來(lái)。這牽涉到bootrom, bootloader, uboot, dts, Linux內(nèi)核,cmdline, rootfs等一系列組件,以及nand啟動(dòng),nor啟動(dòng)等各種不同的方式,知道一個(gè)Linux嵌入式系統(tǒng)如何工作,再進(jìn)一步修改添加自己的驅(qū)動(dòng)和應(yīng)用。

這里有很多實(shí)踐性的東西,可能需要視頻資料帶你跑一遍,才能快速入門(mén),火哥之前看的是韋東山老師的嵌入式Linux視頻,總共有一二三四期等,有免費(fèi)試看,也有付費(fèi)的,直接X(jué)寶聯(lián)系賣(mài)家可以了解,火哥就不貼廣告鏈接了。另外還有其它視頻,火哥沒(méi)有看過(guò)的,就不隨便推薦了,在嵌入式Linux學(xué)習(xí)這塊,理論性的知識(shí)需要慢慢看書(shū),但是實(shí)踐性的知識(shí)還是需要視頻資料帶你操作快速入門(mén),看書(shū)和實(shí)踐循環(huán)漸進(jìn)。

3. 你可以嘗試做一些簡(jiǎn)單的Linux應(yīng)用和驅(qū)動(dòng)開(kāi)發(fā)了。走完了前面兩個(gè)步驟,相信你對(duì)嵌入式Linux開(kāi)發(fā)有一定專(zhuān)業(yè)性認(rèn)識(shí)了。在嵌入式Linux學(xué)習(xí)這塊,火哥更傾向于在做中學(xué),60%實(shí)踐+40%理論。因?yàn)榍度胧絃inux里面很多系統(tǒng)環(huán)境相關(guān)的東西,并不是書(shū)本上那種嚴(yán)格的理論公式,通過(guò)看書(shū)很難找到規(guī)律,而且在Linux內(nèi)核里面有一整套GNU(GNU是啥意思自己搜)世界的行話(huà),那些寫(xiě)Linux內(nèi)核,驅(qū)動(dòng)書(shū)籍的技術(shù)專(zhuān)家不可能所有行話(huà)都給你解釋?zhuān)性跊](méi)有使用和開(kāi)發(fā)經(jīng)驗(yàn)的前提下就直接打開(kāi)《Unix環(huán)境高級(jí)編程》、《Linux設(shè)備驅(qū)動(dòng)程序》等大牛的經(jīng)典書(shū)籍,容易讓你云里霧里?;鸶缃ㄗh是,跟著一個(gè)視頻教程,比如韋東山老師的嵌入式Linux視頻,從0開(kāi)始寫(xiě)一個(gè)簡(jiǎn)單驅(qū)動(dòng)和應(yīng)用,讓自己寫(xiě)的驅(qū)動(dòng)和應(yīng)用代碼跑起來(lái),點(diǎn)亮1個(gè)Led燈,先不用管Linux驅(qū)動(dòng)中你調(diào)用的那些初始化,注冊(cè)等框架函數(shù)如何實(shí)現(xiàn)。通過(guò)實(shí)踐的過(guò)程,熟悉整個(gè)代碼的運(yùn)行環(huán)境以及Linux開(kāi)發(fā)中的各種行話(huà)(系統(tǒng)調(diào)用,vfs等等)。

這也是讓你一步一步取得學(xué)習(xí)正反饋,提升成就感和學(xué)習(xí)信心的方法。其實(shí)Linux驅(qū)動(dòng)開(kāi)發(fā)本身并不難(難度不會(huì)超過(guò)你復(fù)變函數(shù)課本上的公式),也并不神秘,只不過(guò)它一整套行話(huà)術(shù)語(yǔ),容易讓初學(xué)者云里霧里,熟悉這套行話(huà),擺脫恐懼心理,一個(gè)智商正常的普通本科生應(yīng)該是能夠掌握的。

4. 你需要補(bǔ)充一些計(jì)算機(jī)的理論知識(shí)。據(jù)火哥了解,大部分單片機(jī)工程師都是電子、通信、自動(dòng)化、機(jī)械等專(zhuān)業(yè)出身,很少計(jì)算機(jī)專(zhuān)業(yè)的。這些專(zhuān)業(yè)的童鞋,相對(duì)會(huì)缺乏計(jì)算機(jī)專(zhuān)業(yè)的基本理論知識(shí),如數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),計(jì)算機(jī)組成原理,計(jì)算機(jī)網(wǎng)絡(luò)算法,編譯鏈接的基本原理,數(shù)據(jù)庫(kù)等等。

補(bǔ)充理論知識(shí)是一個(gè)長(zhǎng)期的過(guò)程(可能需要2-3年),并不是要等到計(jì)算機(jī)的專(zhuān)業(yè)理論都學(xué)完才可以去找工作,你可以一邊補(bǔ)充基礎(chǔ)知識(shí)一邊面試一邊找工作,同時(shí)檢驗(yàn)自己的基礎(chǔ)知識(shí)。這些基礎(chǔ)知識(shí)不但能提高你的技術(shù)功底,也能幫你通過(guò)筆試面試,決定你能否在一線(xiàn)城市突破20K的薪水。

在有了計(jì)算機(jī)科班的基礎(chǔ)知識(shí),以及有一定Linux驅(qū)動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)之后,Linux內(nèi)核的學(xué)習(xí)是有必要的,但是入門(mén)的初學(xué)者不用急于進(jìn)入Linux內(nèi)核源碼,內(nèi)核這塊東西還是挺多的挺艱深的,得花時(shí)間邊看書(shū)邊看代碼慢慢啃,沒(méi)法速成,但是Linux內(nèi)核功底還是能夠提高你的薪資競(jìng)爭(zhēng)力。

四、 給有工作經(jīng)驗(yàn)的轉(zhuǎn)行者的建議

1. 有工作的轉(zhuǎn)行者,你的優(yōu)勢(shì)是有保底的工作和收入,劣勢(shì)是沒(méi)有足夠的學(xué)習(xí)時(shí)間自由。有了當(dāng)前的工作飯碗,不用急著找新工作,你可以保持一個(gè)良好的心態(tài),不驕不躁,可以邊學(xué)習(xí)邊騎驢找馬,找到合適的工作。當(dāng)然有工作的人,時(shí)間上并不自由,如果你想學(xué)的新東西和你當(dāng)前工作內(nèi)容并不直接相關(guān),火哥建議你可以先選擇一份加班少的工作,這樣可以騰出下班后的業(yè)余時(shí)間來(lái)學(xué)習(xí)嵌入式Linux的新知識(shí)。

有工作的人,有了一些小積蓄,缺的是時(shí)間,那么在學(xué)習(xí)上可以適當(dāng)買(mǎi)一些性?xún)r(jià)比高的付費(fèi)視頻,加快入門(mén)和學(xué)習(xí)進(jìn)度,節(jié)約寶貴的時(shí)間,這也是用金錢(qián)換時(shí)間。一般情況下,不需要學(xué)精通才出去找工作,學(xué)到可以self correct(這個(gè)詞來(lái)源于一個(gè)TED關(guān)于如何快速自學(xué)的演講), 能夠干一些活的狀態(tài),就可以出去面試找相關(guān)的工作了,Linux嵌入式學(xué)習(xí)以通用基礎(chǔ)知識(shí)為主,驅(qū)動(dòng)里面的音視頻,通信協(xié)議相關(guān)的業(yè)務(wù)上的知識(shí)可以找到相關(guān)的工作再補(bǔ)充。

2. 如何在只有單片機(jī)經(jīng)驗(yàn),沒(méi)有Linux開(kāi)發(fā)經(jīng)驗(yàn)的情況下,如何通過(guò)社招嵌入式Linux開(kāi)發(fā)工作?這個(gè)對(duì)于社招看中相關(guān)工作背景的求職者是個(gè)頭疼的問(wèn)題,火哥有以下幾點(diǎn)建議:

首先,看看公司是否有Linux相關(guān)的部門(mén)和開(kāi)發(fā)計(jì)劃,可以主動(dòng)嘗試內(nèi)部轉(zhuǎn)崗。

第二,看看能不能建議公司技術(shù)負(fù)責(zé)人把單片機(jī)開(kāi)發(fā)的環(huán)境遷移到Linux系統(tǒng)上,在Linux系統(tǒng)環(huán)境上開(kāi)發(fā)單片機(jī),這樣至少你在工作中有使用Linux系統(tǒng)的機(jī)會(huì)。

第三,可以先嘗試面一些在Linux環(huán)境下開(kāi)發(fā)單片機(jī)的公司,面試后詢(xún)問(wèn)面試官是否在Linux環(huán)境下開(kāi)發(fā)單片機(jī),如果是,可以先加入用Linux開(kāi)發(fā)單片機(jī)的公司繼續(xù)做一段時(shí)間單片機(jī),順便再工作中熟悉一下Linux.

第四,嘗試一下面試真正做Linux系統(tǒng)開(kāi)發(fā)的公司一些Bootloader或者固件開(kāi)發(fā)相關(guān)的崗位,因?yàn)锽ootloader和存儲(chǔ)控制器,電管管理等固件代碼和單片機(jī)裸機(jī)rtos開(kāi)發(fā)有很多相關(guān)性,甚至ARM SOC里面就有單片機(jī)核以及相關(guān)的固件,用于控制wifi,存儲(chǔ),電源休眠喚醒等相關(guān)的功能,這樣能保證你能夠在新工作中有一定輸出貢獻(xiàn),而不是完全的學(xué)習(xí)者。

第四,嘗試面試一些流動(dòng)性高,離職率高的真正做Linux公司。這樣的公司一個(gè)詞形容:“缺人”?;鸶缰霸谥楹D?a target="_blank">IC原廠(chǎng)工作,由于珠海相關(guān)的從業(yè)者基數(shù)少,應(yīng)屆畢業(yè)生很多也不愿意來(lái)小城市發(fā)展,再加上公司近年業(yè)績(jī)不好,離職率高,導(dǎo)致公司缺人,并且很難招到人,所以后來(lái)放開(kāi)招人標(biāo)準(zhǔn),愿意培養(yǎng)只有單片機(jī)經(jīng)驗(yàn),沒(méi)有Linux經(jīng)驗(yàn)社招者。

當(dāng)然現(xiàn)在火哥在的深圳知名大廠(chǎng),由于從業(yè)人口基數(shù)大,公司品牌和待遇都很有競(jìng)爭(zhēng)力,競(jìng)爭(zhēng)較為激烈,雖然號(hào)稱(chēng)缺人(其實(shí)是招人太挑剔了),但是一般不會(huì)給沒(méi)有Linux經(jīng)驗(yàn)的求職者機(jī)會(huì)。

最后,在學(xué)習(xí)Linux嵌入式的過(guò)程中,遇到的問(wèn)題和寫(xiě)的代碼,最好有技術(shù)博客和GitHub記錄下來(lái),把相關(guān)鏈接貼在簡(jiǎn)歷上,這也是像面試官證明你真的對(duì)嵌入式Linux有一定了解,面試官看完你的博客和GitHub,才能對(duì)你的技術(shù)水平有進(jìn)一步了解,決定是否給你機(jī)會(huì)。

看來(lái)讀者圈中做單片機(jī),RTOS的不少。盡管火哥目前從事Linux/Android方面的嵌入式開(kāi)發(fā)工作,但是讀書(shū)的時(shí)候也有5年左右單片機(jī)裸機(jī)和RTOS經(jīng)驗(yàn),之前面試也拿過(guò)一些做單片機(jī)stm32開(kāi)發(fā)的offer,所以今天分享一些關(guān)于單片機(jī)是否要轉(zhuǎn)嵌入式Linux的一些觀(guān)點(diǎn)。

一、你真的決定要轉(zhuǎn)嵌入式Linux嗎?

要不要從單片機(jī)轉(zhuǎn)嵌入式Linux是一個(gè)影響到職業(yè)發(fā)展的嚴(yán)肅決策,火哥不能幫你拿主意,只能幫你列出利弊,你需要根據(jù)自身的各種環(huán)境(比如所在城市Linux嵌入式相關(guān)崗位多嗎?是否決定背井離鄉(xiāng)去北上深發(fā)展等等)做出最有利的決策。火哥的觀(guān)點(diǎn)并不是Linux嵌入式絕對(duì)比單片機(jī)開(kāi)發(fā)職業(yè)發(fā)展好,只是根據(jù)自身的一些經(jīng)歷,給出一些看法。

1. 單片機(jī)開(kāi)發(fā)相對(duì)于Linux嵌入式最大的劣勢(shì)在于基層的打工崗位平均薪資偏低。我想這是大部分單片機(jī)工程師想轉(zhuǎn)嵌入式Linux的最主要的原因。技術(shù)本身各有優(yōu)劣,但是就基層打工而言,在同一座城市,就打工而言,單片機(jī)的薪資比嵌入式Linux低30%到50%。也許很多有會(huì)拿某些做單片機(jī)的高薪的老板(比如野火的火哥,周立功等)或者一些公司高管的薪資和做嵌入式Linux打工的工程師對(duì)比,證明單片機(jī)也可以拿高收入。

但是他們都犯了田忌賽馬的錯(cuò)誤,拿別人的上等馬和你的中等馬對(duì)比,火哥認(rèn)為這種田忌賽馬的比較非常不切實(shí)際,基層打工的就應(yīng)該和基層打工的這個(gè)水平的對(duì)比。目前火哥調(diào)查到情況來(lái)看,在深圳的基層就業(yè)市場(chǎng),單片機(jī)(含RTOS)開(kāi)發(fā)的起步薪資在6K-7K, 一般人到15K就是高薪,很難突破。20K以上的單片機(jī)offer也有,但是很少,最多也見(jiàn)過(guò)25K的單片機(jī)offer,但是那都是有名企,名校或者其他業(yè)務(wù)背景換來(lái)的,一般人真拿不到。嵌入式Linux/Android這塊,薪資相對(duì)高不少,起步價(jià)12K很正常,工作2年一般都能突破15K,3-5年突破20K甚至到25K也是很多的,5年以上去一線(xiàn)土豪大廠(chǎng)(華為、OPPO、VIVO等)可以到30K,如果在手機(jī)大廠(chǎng)做到模塊owner專(zhuān)家,突破40K也是可以有,但是在往上就有點(diǎn)難了。

整體來(lái)看,同檔次的基層打工者,嵌入式Linux薪資比單片機(jī)開(kāi)發(fā)還是高不少,單片機(jī)15K就會(huì)遇到瓶頸,突破20K就很難了,嵌入式Linux突破20K并不是難事,到25K以上才遇到瓶頸。

2. 你所在的城市嵌入式Linux崗位多嗎?我覺(jué)得這是影響你做決定的另一個(gè)大問(wèn)題。我們學(xué)嵌入式Linux這門(mén)技術(shù),絕大部分人是為了從事相關(guān)的工作,而不是陶冶情操。但是根據(jù)火哥統(tǒng)計(jì)來(lái)看,嵌入式Linux的普遍薪資雖然高于單片機(jī),但是就業(yè)崗位并沒(méi)有單片機(jī)那么多。深圳目測(cè)是嵌入式Linux就業(yè)機(jī)會(huì)最多的城市,但是單片機(jī)機(jī)會(huì)看起來(lái)似乎更多,在深圳,單片機(jī)和Linux崗位數(shù)量對(duì)比大概6比4。

從嵌入式Linux城市的崗位數(shù)量來(lái)看,依次是深圳 》 上海 》 北京 》 成都 = 杭州 = 蘇州 》 東莞(華為加持)》= 珠海 》= 南京 = 廣州 = 武漢 = 西安 = 福州 = 廈門(mén) 》 佛山 = 長(zhǎng)沙 = 天津 = 合肥 》 其它,

在其它城市我就很少了解到做嵌入式Linux開(kāi)發(fā)相關(guān)的崗位。所以如果你要考慮轉(zhuǎn)行,首先考慮是否愿意背景離鄉(xiāng)去以上幾個(gè)城市工作。否則哪怕你學(xué)了牛逼的Linux技術(shù),可能也會(huì)在當(dāng)?shù)卣也坏綄?duì)口不得不繼續(xù)從事單片機(jī)開(kāi)發(fā)。

3. 單片機(jī)雖然待遇較低,但是就業(yè)機(jī)會(huì)更多,對(duì)大齡求職者相對(duì)友好。這點(diǎn)其實(shí)并不矛盾,做單片機(jī)各行各業(yè)的小公司特別多 (當(dāng)然像格力,美的這種傳統(tǒng)家電大廠(chǎng)也有,但是華為、商湯等新興高科技大廠(chǎng)很少招單片機(jī)),業(yè)務(wù)多種多樣,需要的人更多,但是一般小廠(chǎng)可能資金并不充裕,給不起人才高價(jià),加上單片機(jī)開(kāi)發(fā)門(mén)檻較低(不考慮產(chǎn)品穩(wěn)定性,EMC等有工作經(jīng)驗(yàn)自然會(huì)知道的概念,僅指學(xué)習(xí)使用單片機(jī)干活編程的培養(yǎng)門(mén)檻), 培養(yǎng)周期比較短(大二學(xué)生一個(gè)暑假的功夫),所以導(dǎo)致中低端能干活的人還是挺多,拉低平均薪資。

但這就像富士康一樣,招人多,但抱怨缺人,老板就是不想把待遇提上去,要控制成本,這是缺人但是待遇低之間一種永遠(yuǎn)存在的矛盾。但是對(duì)大齡求職者來(lái)說(shuō),由于單片機(jī)崗位實(shí)在是多,很多小廠(chǎng)真的很難以高的性?xún)r(jià)比招到優(yōu)秀的人,在小廠(chǎng)也沒(méi)有HR插手做人力資源規(guī)劃,年齡梯隊(duì)建設(shè),反而在年齡上卡的不嚴(yán),大齡求職者只要薪資不挑,也能找到一份工作,所以相對(duì)于做Linux的大廠(chǎng),對(duì)年齡問(wèn)題比較寬容一些(可能由于單片機(jī)有點(diǎn)歷史了,大齡從業(yè)者也多)。

4. 單片機(jī)也有一些較高薪職位。在單片機(jī)工程師眼中,20k以上就算是高薪,以這個(gè)為標(biāo)準(zhǔn),火哥也見(jiàn)過(guò)一些較高薪的職位,但是這里面有些特殊的要求。某家做智能門(mén)鎖STM32 RTOS的公司給火哥開(kāi)過(guò)20K的offer,主要是因?yàn)楣鞠M械募夹g(shù)人員都有985 211以上學(xué)歷背景,這樣溝通起來(lái)可能觀(guān)念比較一致,所以薪資能給到20k。另外還有一家明星獨(dú)角獸創(chuàng)業(yè)公司給過(guò)25K的單片機(jī)offer, 但是前提要求是能在Linux環(huán)境下開(kāi)發(fā)單片機(jī),而且面試難度較高,本來(lái)25K要價(jià)超出他們預(yù)期了,他們不愿意給這么多,后來(lái)火哥吊著他們一個(gè)星期,謊稱(chēng)拿到華為同等價(jià)格的offer,他們才最終答應(yīng)給25K的offer。剩下火哥還了解到有年薪80w的單片機(jī)高級(jí)工程師(掌握某些行業(yè)特殊的認(rèn)證標(biāo)準(zhǔn))。

但是整體來(lái)說(shuō),單片機(jī)較高薪的offer確實(shí)不容易拿到,而且拿到也不僅僅是因?yàn)槟愕膯纹瑱C(jī)技術(shù)好,解bug能力強(qiáng),而是因?yàn)槟愕谋尘埃瑢W(xué)歷,有其它offer抬價(jià),掌握特殊的業(yè)務(wù)競(jìng)爭(zhēng)力等等(關(guān)于嵌入式業(yè)務(wù)競(jìng)爭(zhēng)力可以讀讀火哥上一篇關(guān)于嵌入式競(jìng)爭(zhēng)力的文章),

這些特殊業(yè)務(wù)和文憑,背景都不是能靠當(dāng)下自己砸時(shí)間努力看書(shū)學(xué)習(xí)寫(xiě)代碼就能輕易獲取的。如果能單單靠自己砸時(shí)間努力就能獲取的技術(shù)就不是啥門(mén)檻性的技術(shù)。

列舉了以上這幾點(diǎn),要不要從單片機(jī)開(kāi)發(fā)轉(zhuǎn)嵌入式Linux相信你也應(yīng)該可以下決定了。

二、 單片機(jī)和嵌入式Linux開(kāi)發(fā)到底有什么異同

1. 單片機(jī)轉(zhuǎn)嵌入式Linux保留的優(yōu)勢(shì)主要在于熟練的C語(yǔ)言編程能力以及豐富的底層軟件與硬件接口的調(diào)試經(jīng)驗(yàn)。因?yàn)長(zhǎng)inux內(nèi)核本身就是C語(yǔ)言編寫(xiě)的,Linux底層應(yīng)用程序大部分也是C語(yǔ)言的,一般有單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)的,C語(yǔ)言應(yīng)該不是問(wèn)題,所以在切換的過(guò)程中,不需要考慮語(yǔ)言的切換,當(dāng)然如果沒(méi)有系統(tǒng)學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)(火哥認(rèn)為數(shù)據(jù)結(jié)構(gòu)是熟悉C語(yǔ)言必不可少的內(nèi)容,哪怕單片機(jī)也要懂?dāng)?shù)據(jù)結(jié)構(gòu)),可能需要補(bǔ)補(bǔ),另外有uCOS FreeRTOS這類(lèi)的實(shí)時(shí)操作系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)就更好,至少在看大規(guī)模C語(yǔ)言代碼的時(shí)候不害怕(其實(shí)懂uCOS內(nèi)核也不代表能馬上掌握Linux內(nèi)核,Linux內(nèi)核真的復(fù)雜太多,設(shè)計(jì)理念也很不一樣)。另外豐富的單片機(jī)底層調(diào)試與寄存器配置經(jīng)驗(yàn),可能幫助你在學(xué)習(xí)Linux嵌入式開(kāi)發(fā)的時(shí)候能快速定位底層的一些問(wèn)題,節(jié)約一些時(shí)間。

2. 單片機(jī)轉(zhuǎn)Linux嵌入式需要熟悉一套風(fēng)格迥異的開(kāi)發(fā)環(huán)境。對(duì)于大部分單片機(jī)工程師而言,都是在Windows上用IDE環(huán)境開(kāi)發(fā)單片機(jī)程序?yàn)橹鳎ú慌懦行┕疽呀?jīng)使用Linux開(kāi)發(fā)單片機(jī)了),Ubuntu這類(lèi)Linux系統(tǒng)接觸比較少,所以你們要越過(guò)的第一關(guān)并不是Linux內(nèi)核源碼,而是如何使用Ubuntu這種Linux系統(tǒng)。因?yàn)樵贒ebian Ubuntu CentOS 等各種Linux系統(tǒng)做軟件開(kāi)發(fā),主要都是通過(guò)命令行操作,而不是鼠標(biāo)界面點(diǎn)擊。并且Linux系統(tǒng)里面的應(yīng)用軟件不像Windows里面的IDE這樣給你集成好了,點(diǎn)擊就能用,Linux里面很多Makefile之類(lèi)的編譯腳本以及Samba, SSH Server等各種服務(wù),arm-linux-gcc等各種編譯鏈接工具,就像IDE軟件里面的各個(gè)組件,需要自己重新組裝使用,并且用的時(shí)候可能有各種環(huán)境甚至編譯問(wèn)題(開(kāi)源軟件猛糙快就是這樣),需要自己折騰花費(fèi)不少時(shí)間。

所以對(duì)于Linux入門(mén)者,哪怕你有豐富的單片機(jī)C語(yǔ)言經(jīng)驗(yàn),折騰起來(lái)也挺耗時(shí)間,需要克服心理的障礙。

Linux系統(tǒng)開(kāi)發(fā)環(huán)境就像一匹不聽(tīng)話(huà)的烈馬,馴服他才能發(fā)揮出它的價(jià)值,而Windows系統(tǒng)開(kāi)發(fā)環(huán)境更像一匹聽(tīng)話(huà)的普通馬。

3. 嵌入式Linux開(kāi)發(fā)代碼的掌控程度遠(yuǎn)低于單片機(jī)開(kāi)發(fā),單片機(jī)轉(zhuǎn)Linux需要適應(yīng)如何在這種低掌控度的不安全感中進(jìn)行開(kāi)發(fā)。做單片機(jī)開(kāi)發(fā),包括RTOS, 一般代碼量最多幾萬(wàn)行,哪怕不是每行代碼都讀過(guò),也基本能夠精確掌控每個(gè)模塊,大概哪里出了bug,作為開(kāi)發(fā)者很容易定位。而做嵌入式Linux開(kāi)發(fā),單獨(dú)Linux內(nèi)核就有幾百萬(wàn)甚至上千萬(wàn)行,還不包括各種你不熟悉的應(yīng)用層的開(kāi)源庫(kù),這導(dǎo)致大部分代碼都不可能掌控。嵌入式Linux的開(kāi)發(fā)模式就是在這種大部分代碼都不是你開(kāi)發(fā)的,你也掌控不了大部分代碼的情況下開(kāi)發(fā)驅(qū)動(dòng)或者應(yīng)用,你經(jīng)常會(huì)不熟悉的東西需要各種搜索問(wèn)人,這種開(kāi)發(fā)模式,會(huì)把人置于一種不安之谷當(dāng)中,很多你使用的函數(shù)你并不知道它的實(shí)現(xiàn)細(xì)節(jié),可能工作機(jī)制都只是略懂。在這種模式下開(kāi)發(fā)需要很好的搜索,溝通,團(tuán)隊(duì)協(xié)作能力,不能再像單片機(jī)那樣一個(gè)人全局掌控,蒙著頭開(kāi)發(fā)了,這種不可掌控的不安全感是單片機(jī)工程師往Linux嵌入式工程師發(fā)展過(guò)程中最需要適應(yīng)的。

4. 嵌入式Linux開(kāi)發(fā)需要有大局觀(guān),不用迷失在細(xì)節(jié)的叢林找不到方向和出口。

很多單片機(jī)工程師有個(gè)思維習(xí)慣,編程時(shí)喜歡細(xì)摳到每個(gè)寄存器的工作原理,每個(gè)功能的實(shí)現(xiàn)細(xì)節(jié)邏輯,每個(gè)if else都不放過(guò)。這在Linux嵌入式學(xué)習(xí)中將非常耗費(fèi)時(shí)間,事倍功半的做法。注重細(xì)節(jié)固然好,但是當(dāng)系統(tǒng)龐大到一種程度的時(shí)候,過(guò)于注重細(xì)節(jié)的人,往往很難駕馭這個(gè)系統(tǒng)。我看到很多初學(xué)者,每個(gè)寄存器,鏈接腳本的每種寫(xiě)法都要去糾結(jié)很久,芯片啟動(dòng)方式更上生搬硬套把2440的啟動(dòng)流程作為芯片啟動(dòng)的唯一真理,處處往其他芯片套。殊不知很多東西都是人為約定的一些習(xí)慣性做法,每家公司的芯片有自己的特點(diǎn),流程是死的,人是活的。

掌握大局觀(guān),讓自己迅速熟悉整個(gè)系統(tǒng)的知識(shí),很多細(xì)節(jié)上習(xí)慣性的東西自然而然就明白了,對(duì)整個(gè)系統(tǒng)的掌控力度就高了,遇到具體阻礙你前進(jìn)的細(xì)節(jié)問(wèn)題,再去嘗試處理。掌控并不意味著你知道每行代碼每個(gè)寄存器的意思,但是你能讓整個(gè)系統(tǒng)按照你的想法去運(yùn)行。

三、 單片機(jī)轉(zhuǎn)嵌入式Linux大概需要學(xué)哪些基本的知識(shí)

吹了這么多水,到了真正上干貨的時(shí)候了,從單片機(jī)轉(zhuǎn)Linux嵌入式到底需要學(xué)些啥。如果沒(méi)有這一段,火哥真怕你下定轉(zhuǎn)行決心之后,馬上拿起一本Linux內(nèi)核架構(gòu)與實(shí)現(xiàn)的書(shū),以為像學(xué)uCOS等RTOS系統(tǒng)一樣,都是C語(yǔ)言代碼,然后看得云里霧里,從入門(mén)到放棄。其實(shí)火哥在剛學(xué)習(xí)Linux嵌入式的,也犯過(guò)類(lèi)似的錯(cuò)誤,因而總結(jié)了一些經(jīng)驗(yàn)教訓(xùn)。

1. 你需要花一定時(shí)間熟悉如何使用Linux系統(tǒng)進(jìn)行編程開(kāi)發(fā)。相信很多童鞋都是從小使用Windows電腦長(zhǎng)大的,在學(xué)計(jì)算機(jī)編程之前,應(yīng)該沒(méi)有接觸過(guò)Ubuntu等Linux系統(tǒng),而這個(gè)系統(tǒng)又不像Windows那樣點(diǎn)點(diǎn)鼠標(biāo)就聽(tīng)話(huà),需要各種命令行操作。而且系統(tǒng)里面有各種服務(wù)和應(yīng)用工具需要你自己按照需求去配置。所以學(xué)習(xí)嵌入式Linux開(kāi)發(fā)不是急于鉆進(jìn)Linux內(nèi)核代碼的海洋中,而是先用好Linux系統(tǒng)。你可以參考《鳥(niǎo)哥的Linux私房菜》等Linux系統(tǒng)如何安裝使用等書(shū)籍,學(xué)會(huì)使用命令行。

但是火哥認(rèn)為學(xué)習(xí)要有目標(biāo)性,如果對(duì)著《鳥(niǎo)哥的Linux私房菜》一頁(yè)一頁(yè)每個(gè)命令學(xué)下去,看幾天就會(huì)枯草乏味了,所以火哥建議由單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)的童鞋,第一個(gè)目標(biāo)就是在Linux系統(tǒng)上如何搭建你的單片機(jī)開(kāi)發(fā)板交叉環(huán)境,編譯出一個(gè)裸機(jī)的Led點(diǎn)燈的程序(不需要跑Linux內(nèi)核),并通過(guò)開(kāi)發(fā)板產(chǎn)商提供的工具燒寫(xiě)。

這件事情并不難,網(wǎng)上已經(jīng)有很多如何在Linux系統(tǒng)下交叉編譯單片機(jī)程序的文章,尤其是stm32系列的,你可以參考別人的文章做一遍,在這過(guò)程中你將會(huì)熟悉各種常用的命令,shell, arm-linux-gcc交叉編譯工具鏈,Makefile(可以單獨(dú)參考陳皓的文章)等Linux編程環(huán)境相關(guān)的知識(shí),從而開(kāi)始進(jìn)入Linux的世界。

2. 你需要知道嵌入式Linux系統(tǒng)是怎么跑起來(lái)的,一般由哪些組成部分。相信大部分人轉(zhuǎn)行嵌入式Linux開(kāi)發(fā)并不是為了在Linux系統(tǒng)上開(kāi)發(fā)單片機(jī)程序,而是想做Linux驅(qū)動(dòng)或者應(yīng)用開(kāi)發(fā)。在走完入門(mén)第一步之后,就不要太糾結(jié)那些編譯,鏈接腳本那些文件格式怎么寫(xiě),而是盡快把精力專(zhuān)注到Linux系統(tǒng)開(kāi)發(fā)。學(xué)習(xí)嵌入式Linux系統(tǒng)開(kāi)發(fā),首先就得知道一個(gè)Linux系統(tǒng)如何跑起來(lái),如何把一個(gè)Linux系統(tǒng)環(huán)境在開(kāi)發(fā)板上搭起來(lái)。這牽涉到bootrom, bootloader, uboot, dts, Linux內(nèi)核,cmdline, rootfs等一系列組件,以及nand啟動(dòng),nor啟動(dòng)等各種不同的方式,知道一個(gè)Linux嵌入式系統(tǒng)如何工作,再進(jìn)一步修改添加自己的驅(qū)動(dòng)和應(yīng)用。

這里有很多實(shí)踐性的東西,可能需要視頻資料帶你跑一遍,才能快速入門(mén),火哥之前看的是韋東山老師的嵌入式Linux視頻,總共有一二三四期等,有免費(fèi)試看,也有付費(fèi)的,直接X(jué)寶聯(lián)系賣(mài)家可以了解,火哥就不貼廣告鏈接了。另外還有其它視頻,火哥沒(méi)有看過(guò)的,就不隨便推薦了,在嵌入式Linux學(xué)習(xí)這塊,理論性的知識(shí)需要慢慢看書(shū),但是實(shí)踐性的知識(shí)還是需要視頻資料帶你操作快速入門(mén),看書(shū)和實(shí)踐循環(huán)漸進(jìn)。

3. 你可以嘗試做一些簡(jiǎn)單的Linux應(yīng)用和驅(qū)動(dòng)開(kāi)發(fā)了。走完了前面兩個(gè)步驟,相信你對(duì)嵌入式Linux開(kāi)發(fā)有一定專(zhuān)業(yè)性認(rèn)識(shí)了。在嵌入式Linux學(xué)習(xí)這塊,火哥更傾向于在做中學(xué),60%實(shí)踐+40%理論。因?yàn)榍度胧絃inux里面很多系統(tǒng)環(huán)境相關(guān)的東西,并不是書(shū)本上那種嚴(yán)格的理論公式,通過(guò)看書(shū)很難找到規(guī)律,而且在Linux內(nèi)核里面有一整套GNU(GNU是啥意思自己搜)世界的行話(huà),那些寫(xiě)Linux內(nèi)核,驅(qū)動(dòng)書(shū)籍的技術(shù)專(zhuān)家不可能所有行話(huà)都給你解釋?zhuān)性跊](méi)有使用和開(kāi)發(fā)經(jīng)驗(yàn)的前提下就直接打開(kāi)《Unix環(huán)境高級(jí)編程》、《Linux設(shè)備驅(qū)動(dòng)程序》等大牛的經(jīng)典書(shū)籍,容易讓你云里霧里。火哥建議是,跟著一個(gè)視頻教程,比如韋東山老師的嵌入式Linux視頻,從0開(kāi)始寫(xiě)一個(gè)簡(jiǎn)單驅(qū)動(dòng)和應(yīng)用,讓自己寫(xiě)的驅(qū)動(dòng)和應(yīng)用代碼跑起來(lái),點(diǎn)亮1個(gè)Led燈,先不用管Linux驅(qū)動(dòng)中你調(diào)用的那些初始化,注冊(cè)等框架函數(shù)如何實(shí)現(xiàn)。通過(guò)實(shí)踐的過(guò)程,熟悉整個(gè)代碼的運(yùn)行環(huán)境以及Linux開(kāi)發(fā)中的各種行話(huà)(系統(tǒng)調(diào)用,vfs等等)。

這也是讓你一步一步取得學(xué)習(xí)正反饋,提升成就感和學(xué)習(xí)信心的方法。其實(shí)Linux驅(qū)動(dòng)開(kāi)發(fā)本身并不難(難度不會(huì)超過(guò)你復(fù)變函數(shù)課本上的公式),也并不神秘,只不過(guò)它一整套行話(huà)術(shù)語(yǔ),容易讓初學(xué)者云里霧里,熟悉這套行話(huà),擺脫恐懼心理,一個(gè)智商正常的普通本科生應(yīng)該是能夠掌握的。

4. 你需要補(bǔ)充一些計(jì)算機(jī)的理論知識(shí)。據(jù)火哥了解,大部分單片機(jī)工程師都是電子、通信、自動(dòng)化、機(jī)械等專(zhuān)業(yè)出身,很少計(jì)算機(jī)專(zhuān)業(yè)的。這些專(zhuān)業(yè)的童鞋,相對(duì)會(huì)缺乏計(jì)算機(jī)專(zhuān)業(yè)的基本理論知識(shí),如數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),計(jì)算機(jī)組成原理,計(jì)算機(jī)網(wǎng)絡(luò),算法,編譯鏈接的基本原理,數(shù)據(jù)庫(kù)等等。

補(bǔ)充理論知識(shí)是一個(gè)長(zhǎng)期的過(guò)程(可能需要2-3年),并不是要等到計(jì)算機(jī)的專(zhuān)業(yè)理論都學(xué)完才可以去找工作,你可以一邊補(bǔ)充基礎(chǔ)知識(shí)一邊面試一邊找工作,同時(shí)檢驗(yàn)自己的基礎(chǔ)知識(shí)。這些基礎(chǔ)知識(shí)不但能提高你的技術(shù)功底,也能幫你通過(guò)筆試面試,決定你能否在一線(xiàn)城市突破20K的薪水。

在有了計(jì)算機(jī)科班的基礎(chǔ)知識(shí),以及有一定Linux驅(qū)動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)之后,Linux內(nèi)核的學(xué)習(xí)是有必要的,但是入門(mén)的初學(xué)者不用急于進(jìn)入Linux內(nèi)核源碼,內(nèi)核這塊東西還是挺多的挺艱深的,得花時(shí)間邊看書(shū)邊看代碼慢慢啃,沒(méi)法速成,但是Linux內(nèi)核功底還是能夠提高你的薪資競(jìng)爭(zhēng)力。

四、 給有工作經(jīng)驗(yàn)的轉(zhuǎn)行者的建議

1. 有工作的轉(zhuǎn)行者,你的優(yōu)勢(shì)是有保底的工作和收入,劣勢(shì)是沒(méi)有足夠的學(xué)習(xí)時(shí)間自由。有了當(dāng)前的工作飯碗,不用急著找新工作,你可以保持一個(gè)良好的心態(tài),不驕不躁,可以邊學(xué)習(xí)邊騎驢找馬,找到合適的工作。當(dāng)然有工作的人,時(shí)間上并不自由,如果你想學(xué)的新東西和你當(dāng)前工作內(nèi)容并不直接相關(guān),火哥建議你可以先選擇一份加班少的工作,這樣可以騰出下班后的業(yè)余時(shí)間來(lái)學(xué)習(xí)嵌入式Linux的新知識(shí)。

有工作的人,有了一些小積蓄,缺的是時(shí)間,那么在學(xué)習(xí)上可以適當(dāng)買(mǎi)一些性?xún)r(jià)比高的付費(fèi)視頻,加快入門(mén)和學(xué)習(xí)進(jìn)度,節(jié)約寶貴的時(shí)間,這也是用金錢(qián)換時(shí)間。一般情況下,不需要學(xué)精通才出去找工作,學(xué)到可以self correct(這個(gè)詞來(lái)源于一個(gè)TED關(guān)于如何快速自學(xué)的演講), 能夠干一些活的狀態(tài),就可以出去面試找相關(guān)的工作了,Linux嵌入式學(xué)習(xí)以通用基礎(chǔ)知識(shí)為主,驅(qū)動(dòng)里面的音視頻,通信協(xié)議相關(guān)的業(yè)務(wù)上的知識(shí)可以找到相關(guān)的工作再補(bǔ)充。

2. 如何在只有單片機(jī)經(jīng)驗(yàn),沒(méi)有Linux開(kāi)發(fā)經(jīng)驗(yàn)的情況下,如何通過(guò)社招嵌入式Linux開(kāi)發(fā)工作?這個(gè)對(duì)于社招看中相關(guān)工作背景的求職者是個(gè)頭疼的問(wèn)題,火哥有以下幾點(diǎn)建議:

首先,看看公司是否有Linux相關(guān)的部門(mén)和開(kāi)發(fā)計(jì)劃,可以主動(dòng)嘗試內(nèi)部轉(zhuǎn)崗。

第二,看看能不能建議公司技術(shù)負(fù)責(zé)人把單片機(jī)開(kāi)發(fā)的環(huán)境遷移到Linux系統(tǒng)上,在Linux系統(tǒng)環(huán)境上開(kāi)發(fā)單片機(jī),這樣至少你在工作中有使用Linux系統(tǒng)的機(jī)會(huì)。

第三,可以先嘗試面一些在Linux環(huán)境下開(kāi)發(fā)單片機(jī)的公司,面試后詢(xún)問(wèn)面試官是否在Linux環(huán)境下開(kāi)發(fā)單片機(jī),如果是,可以先加入用Linux開(kāi)發(fā)單片機(jī)的公司繼續(xù)做一段時(shí)間單片機(jī),順便再工作中熟悉一下Linux.

第四,嘗試一下面試真正做Linux系統(tǒng)開(kāi)發(fā)的公司一些Bootloader或者固件開(kāi)發(fā)相關(guān)的崗位,因?yàn)锽ootloader和存儲(chǔ)控制器,電管管理等固件代碼和單片機(jī)裸機(jī)rtos開(kāi)發(fā)有很多相關(guān)性,甚至ARM SOC里面就有單片機(jī)核以及相關(guān)的固件,用于控制wifi,存儲(chǔ),電源休眠喚醒等相關(guān)的功能,這樣能保證你能夠在新工作中有一定輸出貢獻(xiàn),而不是完全的學(xué)習(xí)者。

第四,嘗試面試一些流動(dòng)性高,離職率高的真正做Linux公司。這樣的公司一個(gè)詞形容:“缺人”。火哥之前在珠海某IC原廠(chǎng)工作,由于珠海相關(guān)的從業(yè)者基數(shù)少,應(yīng)屆畢業(yè)生很多也不愿意來(lái)小城市發(fā)展,再加上公司近年業(yè)績(jī)不好,離職率高,導(dǎo)致公司缺人,并且很難招到人,所以后來(lái)放開(kāi)招人標(biāo)準(zhǔn),愿意培養(yǎng)只有單片機(jī)經(jīng)驗(yàn),沒(méi)有Linux經(jīng)驗(yàn)社招者。

當(dāng)然現(xiàn)在火哥在的深圳知名大廠(chǎng),由于從業(yè)人口基數(shù)大,公司品牌和待遇都很有競(jìng)爭(zhēng)力,競(jìng)爭(zhēng)較為激烈,雖然號(hào)稱(chēng)缺人(其實(shí)是招人太挑剔了),但是一般不會(huì)給沒(méi)有Linux經(jīng)驗(yàn)的求職者機(jī)會(huì)。

最后,在學(xué)習(xí)Linux嵌入式的過(guò)程中,遇到的問(wèn)題和寫(xiě)的代碼,最好有技術(shù)博客和GitHub記錄下來(lái),把相關(guān)鏈接貼在簡(jiǎn)歷上,這也是像面試官證明你真的對(duì)嵌入式Linux有一定了解,面試官看完你的博客和GitHub,才能對(duì)你的技術(shù)水平有進(jìn)一步了解,決定是否給你機(jī)會(huì)。

五、 給在校生轉(zhuǎn)行者的建議

對(duì)在校生來(lái)說(shuō),你多的是時(shí)間上的自由,缺的是金錢(qián)以及沒(méi)有一份保底的工作。

當(dāng)然時(shí)間這東西就像衛(wèi)生紙,看起來(lái)多,但是用著用著就沒(méi)有了,所以即使有充裕的時(shí)間,也要好好規(guī)劃,盡量多學(xué)一些東西。

在校生既然缺錢(qián),火哥就不建議花好幾萬(wàn)培訓(xùn)費(fèi)去參加線(xiàn)下的嵌入式培訓(xùn),實(shí)際上培訓(xùn)的內(nèi)容都是嵌入式入門(mén)級(jí)知識(shí),質(zhì)量上可能還比不過(guò)幾百塊的韋東山嵌入式Linux視頻。而且視頻教程在時(shí)間上可能比培訓(xùn)更加靈活。

在校生的優(yōu)勢(shì)在于大家都沒(méi)有行業(yè)相關(guān)經(jīng)驗(yàn),校招的時(shí)候,不會(huì)考察你行業(yè)相關(guān)的知識(shí),而更加注重計(jì)算機(jī)基礎(chǔ)知識(shí)的考察(火哥甚至是憑著操作系統(tǒng),C語(yǔ)言,數(shù)據(jù)結(jié)構(gòu)的筆試成績(jī),基本沒(méi)有Linux開(kāi)發(fā)經(jīng)驗(yàn)的情況下拿到IC原廠(chǎng)Linux的offer, 當(dāng)然校招之后還有大半年,買(mǎi)了韋東山付費(fèi)視頻狂補(bǔ)相關(guān)知識(shí)),所以在校生應(yīng)該乘著寶貴的時(shí)間,把火哥上一節(jié)提到的第4點(diǎn)基礎(chǔ)知識(shí)打牢固,這樣工作之后就可以專(zhuān)注業(yè)務(wù)知識(shí)學(xué)習(xí),更快升職加薪,不用因?yàn)榛A(chǔ)知識(shí)不牢,回爐重造。

另外,在校生可能有各種單片機(jī)嵌入式的競(jìng)賽,在競(jìng)賽過(guò)程中,可能可以拿到很多獎(jiǎng),得到老師同學(xué)的夸贊。但是切記戒驕戒躁,不要因?yàn)楸绕胀ǖ耐瑢W(xué)多掌握2個(gè)技術(shù)就自以為了不起(你們以后面試的競(jìng)爭(zhēng)對(duì)手根本不是這些完全沒(méi)有技術(shù)同學(xué)),不要因?yàn)閹讉€(gè)獎(jiǎng)狀就飄了,而不能靜下心來(lái)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理等基礎(chǔ)知識(shí)。

如果不是在知名期刊發(fā)表高水平論文,或者國(guó)際上認(rèn)可的ACM, Kaggle, ISLVRC圖像競(jìng)賽中拿到那種高質(zhì)量有分?jǐn)?shù)和名次比賽結(jié)果的獎(jiǎng),其它國(guó)內(nèi)競(jìng)賽的獎(jiǎng)在面試與實(shí)際工作中并沒(méi)有太多說(shuō)服力,面試官反而喜歡基本功扎實(shí),可塑性強(qiáng)的學(xué)生,而不是國(guó)內(nèi)各種獎(jiǎng)一堆,結(jié)果時(shí)間復(fù)雜度,鏈表堆棧,mmu虛擬地址空間等概念一問(wèn)三不知的學(xué)生。

對(duì)在校生來(lái)說(shuō),你多的是時(shí)間上的自由,缺的是金錢(qián)以及沒(méi)有一份保底的工作。

當(dāng)然時(shí)間這東西就像衛(wèi)生紙,看起來(lái)多,但是用著用著就沒(méi)有了,所以即使有充裕的時(shí)間,也要好好規(guī)劃,盡量多學(xué)一些東西。

在校生既然缺錢(qián),火哥就不建議花好幾萬(wàn)培訓(xùn)費(fèi)去參加線(xiàn)下的嵌入式培訓(xùn),實(shí)際上培訓(xùn)的內(nèi)容都是嵌入式入門(mén)級(jí)知識(shí),質(zhì)量上可能還比不過(guò)幾百塊的韋東山嵌入式Linux視頻。而且視頻教程在時(shí)間上可能比培訓(xùn)更加靈活。

在校生的優(yōu)勢(shì)在于大家都沒(méi)有行業(yè)相關(guān)經(jīng)驗(yàn),校招的時(shí)候,不會(huì)考察你行業(yè)相關(guān)的知識(shí),而更加注重計(jì)算機(jī)基礎(chǔ)知識(shí)的考察(火哥甚至是憑著操作系統(tǒng),C語(yǔ)言,數(shù)據(jù)結(jié)構(gòu)的筆試成績(jī),基本沒(méi)有Linux開(kāi)發(fā)經(jīng)驗(yàn)的情況下拿到IC原廠(chǎng)Linux的offer, 當(dāng)然校招之后還有大半年,買(mǎi)了韋東山付費(fèi)視頻狂補(bǔ)相關(guān)知識(shí)),所以在校生應(yīng)該乘著寶貴的時(shí)間,把火哥上一節(jié)提到的第4點(diǎn)基礎(chǔ)知識(shí)打牢固,這樣工作之后就可以專(zhuān)注業(yè)務(wù)知識(shí)學(xué)習(xí),更快升職加薪,不用因?yàn)榛A(chǔ)知識(shí)不牢,回爐重造。

另外,在校生可能有各種單片機(jī)嵌入式的競(jìng)賽,在競(jìng)賽過(guò)程中,可能可以拿到很多獎(jiǎng),得到老師同學(xué)的夸贊。但是切記戒驕戒躁,不要因?yàn)楸绕胀ǖ耐瑢W(xué)多掌握2個(gè)技術(shù)就自以為了不起(你們以后面試的競(jìng)爭(zhēng)對(duì)手根本不是這些完全沒(méi)有技術(shù)同學(xué)),不要因?yàn)閹讉€(gè)獎(jiǎng)狀就飄了,而不能靜下心來(lái)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理等基礎(chǔ)知識(shí)。

如果不是在知名期刊發(fā)表高水平論文,或者國(guó)際上認(rèn)可的ACM, Kaggle, ISLVRC圖像競(jìng)賽中拿到那種高質(zhì)量有分?jǐn)?shù)和名次比賽結(jié)果的獎(jiǎng),其它國(guó)內(nèi)競(jìng)賽的獎(jiǎng)在面試與實(shí)際工作中并沒(méi)有太多說(shuō)服力,面試官反而喜歡基本功扎實(shí),可塑性強(qiáng)的學(xué)生,而不是國(guó)內(nèi)各種獎(jiǎng)一堆,結(jié)果時(shí)間復(fù)雜度,鏈表堆棧,mmu虛擬地址空間等概念一問(wèn)三不知的學(xué)生。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6027

    文章

    44459

    瀏覽量

    631260
  • 嵌入式
    +關(guān)注

    關(guān)注

    5054

    文章

    18920

    瀏覽量

    301050
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1563

    瀏覽量

    68386
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11182

    瀏覽量

    208546
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    目前深圳嵌入式單片機(jī)就業(yè)環(huán)境如何?

    深圳作為中國(guó)的科技創(chuàng)新中心之一,在嵌入式單片機(jī)領(lǐng)域的就業(yè)環(huán)境相對(duì)較好,以下是對(duì)該就業(yè)環(huán)境的詳細(xì)分析:
    的頭像 發(fā)表于 10-09 11:51 ?336次閱讀
    目前深圳<b class='flag-5'>嵌入式</b><b class='flag-5'>單片機(jī)</b>就業(yè)環(huán)境如何?

    從菜鳥(niǎo)到大牛!嵌入式完整學(xué)習(xí)路線(xiàn):STM32單片機(jī)-RTOS-Linux

    ?嵌入式linux”的順序幫助您從入門(mén)到進(jìn)階,掌握嵌入式開(kāi)發(fā)的精髓。第一階段單片機(jī)單片機(jī)嵌入式
    的頭像 發(fā)表于 07-23 16:11 ?3039次閱讀
    從菜鳥(niǎo)到大牛!<b class='flag-5'>嵌入式</b>完整學(xué)習(xí)路線(xiàn):STM32<b class='flag-5'>單片機(jī)</b>-RTOS-<b class='flag-5'>Linux</b>

    嵌入式軟件工程師如何提升自己?

    嵌入式軟件工程師如何提升自己? 作為一名嵌入式軟件工程師,在這個(gè)充滿(mǎn)機(jī)遇和挑戰(zhàn)的領(lǐng)域里,如何提升自己顯得非常重要,它決定了你未來(lái)的發(fā)展方向和成就。接下來(lái),我們一起探討一下。 1.奠定扎
    發(fā)表于 06-12 11:20

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件
    發(fā)表于 05-16 11:00

    嵌入式微處理器是單片機(jī)

    嵌入式微處理器不是單片機(jī)。雖然兩者都是嵌入式系統(tǒng)中的核心組成部分,但它們?cè)谀承┓矫娲嬖诿黠@的區(qū)別。
    的頭像 發(fā)表于 03-29 11:40 ?654次閱讀

    嵌入式工程師需要掌握哪些技術(shù)?

    嵌入式工程師需要掌握哪些技術(shù)? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域中的重要組成部分,它們存在于我們生活的方方面面,從智能手機(jī)到汽車(chē)控制系統(tǒng),從家電到醫(yī)療設(shè)備。因此,對(duì)于那些想要進(jìn)入嵌入式行業(yè)的
    發(fā)表于 03-04 16:38

    嵌入式人工智能的就業(yè)方向有哪些?

    的發(fā)展方向有很多,門(mén)檻高低不一樣。下面給大家列舉一些相應(yīng)崗位所需具備的技能: 一:嵌入式Linux,C語(yǔ)言開(kāi)發(fā)工程師,Linux軟件開(kāi)發(fā)工程師
    發(fā)表于 02-26 10:17

    一名嵌入式工程師的漲薪經(jīng)歷

    的計(jì)算機(jī)課程(匯編原理,計(jì)算機(jī)組成原理,操作系統(tǒng),C語(yǔ)言等) 三、學(xué)習(xí)嵌入式項(xiàng)目(來(lái)源于實(shí)驗(yàn)室項(xiàng)目,自己想到的項(xiàng)目以及各種比賽) ? ? 關(guān)于如何學(xué)習(xí)嵌入式軟件開(kāi)發(fā): ? (1)學(xué)習(xí)51單片機(jī)
    的頭像 發(fā)表于 01-05 08:39 ?392次閱讀

    【2023電子工程師大會(huì)】單片機(jī)/RTOS/Linux全棧工程師

    【2023電子工程師大會(huì)】單片機(jī)/RTOS/Linux全棧工程師修煉之路ppt
    發(fā)表于 01-03 16:31 ?40次下載

    嵌入式軟件工程師常用的

    最近我換工作了,看見(jiàn)不同嵌入式軟件工程師用的平臺(tái)都不一樣,所以我整理了一下。PlatformIO:多平臺(tái)支持:PlatformIO支持多種嵌入式平臺(tái),包括Arduino、ESP8266、ESP32
    的頭像 發(fā)表于 12-24 08:00 ?597次閱讀
    <b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>工程師</b>常用的

    嵌入式硬件和軟件哪個(gè)好?

    ,他的領(lǐng)域是比較廣泛的,在一些消費(fèi)電子,通訊設(shè)備等這些方面。因?yàn)轭I(lǐng)域大,相對(duì)而言就業(yè)領(lǐng)域也是比較大的,人才需求量也是一樣。嵌入式軟件工程師相對(duì)于硬件工程師來(lái)說(shuō),人才需求比硬件工程師
    發(fā)表于 12-05 15:17

    面試開(kāi)發(fā)工程師怎么聊?#單片機(jī) #嵌入式 #物聯(lián)網(wǎng) #電子信息工程

    單片機(jī)嵌入式編程
    jf_55975348
    發(fā)布于 :2023年11月18日 00:31:46

    如何成為一名優(yōu)秀的嵌入式工程師?

    了解到最新的技術(shù)和趨勢(shì),同時(shí)也可以提高自己的編程水平。 成為一名優(yōu)秀的嵌入式工程師,需要不斷學(xué)習(xí)和實(shí)踐,掌握C語(yǔ)言的基礎(chǔ)知識(shí),同時(shí)也要關(guān)注嵌入式的發(fā)展和變化,不斷提高自己的編程水平。
    發(fā)表于 11-07 15:36

    涼了!嵌入式真的卷成下一個(gè)Java了嗎?

    通常來(lái)說(shuō)嵌入式軟件,主流的有單片機(jī)開(kāi)發(fā),Linux開(kāi)發(fā),這些就需要在硬件實(shí)體上進(jìn)行操作,特別是單片機(jī)開(kāi)發(fā)和Linux驅(qū)動(dòng)的開(kāi)發(fā),就經(jīng)常
    的頭像 發(fā)表于 11-03 15:52 ?864次閱讀
    涼了!<b class='flag-5'>嵌入式</b>真的<b class='flag-5'>要</b>卷成下一個(gè)Java了嗎?

    單片機(jī)嵌入式系統(tǒng)有什么區(qū)別?

    單片機(jī)嵌入式系統(tǒng)有啥區(qū)別?
    發(fā)表于 11-01 06:45