嵌入式要卷成下一個(gè)Java了嗎?
不會(huì)!
說(shuō)不會(huì)也是有自己的原因的
前幾天寫(xiě)了一篇 Linux 和單片機(jī)的文章
單片機(jī)容易,門(mén)檻低,無(wú)非不就是單片機(jī)技術(shù)知識(shí)點(diǎn)比較少,特別是面向過(guò)程式的編程也更容易掌握。嵌入式 Linux 是多任務(wù)式的,多任務(wù)之后就引申了更多的東西出來(lái),技術(shù)更復(fù)雜,既然更復(fù)雜的技術(shù),那就可以解決更復(fù)雜的業(yè)務(wù)需求。
所以的業(yè)務(wù)需求都是向前的,也是被市場(chǎng)引領(lǐng)的,10 年前的中華酷聯(lián),10 年前的塞班手機(jī),還有大街小巷的捷達(dá)。再近一點(diǎn),深圳原來(lái)很多燒油的的士,現(xiàn)在都變成了電動(dòng)汽車(chē)。
時(shí)代改變,業(yè)務(wù)改變,技術(shù)當(dāng)然也需要改變。
那些難以設(shè)計(jì)的GUI,游戲體驗(yàn),屏幕大小,續(xù)航,都需要被淘汰改變。
還有那些不及時(shí)回復(fù)的原廠技術(shù)支持,也會(huì)慢慢被取締,這也是市場(chǎng)帶動(dòng)的,以前外企的芯片有自己的護(hù)城河,如果這些護(hù)城河阻礙了我們科技現(xiàn)代化的發(fā)現(xiàn),就會(huì)被國(guó)產(chǎn)化替代。
這些,都需要嵌入式。
嵌入式說(shuō)起來(lái)很容易,今天在我的技術(shù)群里面,一個(gè)前輩就說(shuō)Linux 設(shè)備驅(qū)動(dòng)很容易,Linux 內(nèi)核模塊也很容易,Linux 內(nèi)核也很容易,還有那個(gè)調(diào)試了幾周都調(diào)不出來(lái)的 codec 驅(qū)動(dòng)也是很容易的。
所以,嵌入式又容易,工作機(jī)會(huì)又多,工作寫(xiě)代碼又少。
簡(jiǎn)直是符合了很多人嚴(yán)重的,錢(qián)多事少二個(gè)基本要素。
說(shuō)到這里,可能很多人就覺(jué)得,嵌入式無(wú)非不就是這樣嗎,那自己是不是也可以跳槽到嵌入式行業(yè)領(lǐng)拿高薪?
但是實(shí)際情況是,我們拿一個(gè) camera 驅(qū)動(dòng)來(lái)說(shuō),你想要調(diào)試 camera 驅(qū)動(dòng),你首先要把SDK 給搞明白吧,你需要對(duì) camera 的硬件原理圖搞清楚吧,camera 需要幾路電壓,你是不是也要知道軟件代碼位置,camera 還還有一個(gè)電機(jī)馬達(dá)驅(qū)動(dòng),你是不是也要調(diào)試這個(gè),camera 肯定涉及到i2c的初始化對(duì)吧,那你是不是也要對(duì)i2c驅(qū)動(dòng)要懂,要知道怎么調(diào)試i2c驅(qū)動(dòng),camera 需要調(diào)試效果,白平衡,曝光,伽馬曲線等等,你是不是也要懂。
那涉及應(yīng)用層,你是不是需要把 v4l2 驅(qū)動(dòng)架構(gòu)搞清楚,知道怎么去調(diào)用它的接口出圖。
好了,這些其實(shí)也不算太難,如果你知道了這些東西,面試的時(shí)候給面試官隨便吹吹,面試官可能也就覺(jué)得你做過(guò) camera 了,然后就讓你去搞了。
那實(shí)際的情況是什么,實(shí)際的情況是,你遇到一個(gè)硬件設(shè)備,你要把模組的圖像給顯示出來(lái),你無(wú)從下手,你需要找sdk,搭建各種環(huán)境,可能你的代碼跑得都正常了,但是就是沒(méi)有數(shù)據(jù)出來(lái),你能怎么辦?
搞嵌入式軟件,有兩個(gè)部分很關(guān)鍵,一個(gè)是測(cè)量,一個(gè)是看日志,測(cè)量可以知道你的硬件是否正常,看日志可以知道你的軟件執(zhí)行是否正常。但是就這兩項(xiàng)技能,很多人都是要好幾年才領(lǐng)悟到的。
畢竟,對(duì)于軟件來(lái)說(shuō),遇到問(wèn)題第一時(shí)間就是群里問(wèn),網(wǎng)上百度,經(jīng)驗(yàn)豐富一些的就知道去找規(guī)格書(shū),找原廠,協(xié)調(diào)fae,一些比較健談的呢,就開(kāi)始拉會(huì),找硬件,找項(xiàng)目經(jīng)理,找采購(gòu)。
直到后來(lái)發(fā)現(xiàn),解決再難的 bug 也不足以讓自己加薪后,也就沒(méi)有再去挑戰(zhàn)的動(dòng)力了。
而這些,我不知道搞 java 的會(huì)不會(huì)同樣遇到,但是對(duì)于做嵌入式來(lái)說(shuō),這些真的是家常便便。
總結(jié)來(lái)說(shuō),嵌入式難就難在各個(gè)硬件平臺(tái)的porting,調(diào)試。
