微信公眾號(hào) | strongerHuang
“嵌入式驅(qū)動(dòng)和應(yīng)用,哪個(gè)更難?哪個(gè)更鍛煉自己?”類(lèi)似的問(wèn)題經(jīng)常有網(wǎng)友拿來(lái)討論和交流。
我在嵌入式這行搞開(kāi)發(fā)10年有余了,算不上經(jīng)驗(yàn)豐富,但站在過(guò)來(lái)人的角度,只想說(shuō):驅(qū)動(dòng)和應(yīng)用相輔相成,沒(méi)有誰(shuí)更難一說(shuō),做好了,都難!
現(xiàn)在的嵌入式比20年前的要求更高,軟硬件、應(yīng)用場(chǎng)景也更復(fù)雜了,除了驅(qū)動(dòng)層和應(yīng)用層,中間層也是重要的一層。
當(dāng)然,在不同場(chǎng)景下分層也有不同的講究,比如RT-Thread(Smart版本)的軟件架構(gòu):
暫不說(shuō)20年前,就是10年前搞嵌入式開(kāi)發(fā),大部分中小公司對(duì)嵌入式開(kāi)發(fā)的崗位要求都不算高,你懂一些基本原理,哪怕沒(méi)有獨(dú)立開(kāi)發(fā)過(guò)項(xiàng)目,都能找到一個(gè)開(kāi)發(fā)(研發(fā))的工作。
而現(xiàn)在呢,你學(xué)了RTOS、Linux、各種協(xié)議棧,獨(dú)立開(kāi)發(fā)過(guò)項(xiàng)目,可能還找不到一個(gè)合適的研發(fā)工作。
10年前做項(xiàng)目,對(duì)驅(qū)動(dòng)層、應(yīng)用層的要求相對(duì)不高,那個(gè)時(shí)候不管是寫(xiě)驅(qū)動(dòng),還是做應(yīng)用都不是很難。
如果你還在維護(hù)10年的老代碼,可能會(huì)看到網(wǎng)上傳言的“屎山代碼”,那就是因?yàn)楫?dāng)時(shí)的要求不高,導(dǎo)致屎山代碼遺留至今(當(dāng)然,10年也有很多優(yōu)秀的代碼)。
放眼望去,為什么現(xiàn)在“更難”了呢?答案是:時(shí)代不同了。
其實(shí),難都是相對(duì)的,早些年網(wǎng)絡(luò)資源不像現(xiàn)在這么豐富,買(mǎi)開(kāi)發(fā)板模塊那些也不方便,要踩各種坑才能入門(mén)。
而現(xiàn)在,只要你有學(xué)習(xí)的心,入門(mén)是一件很輕松的事,至少點(diǎn)個(gè)燈是隨隨便便的事。只能說(shuō),每個(gè)時(shí)期有每個(gè)時(shí)期的難!
驅(qū)動(dòng)和應(yīng)用,哪個(gè)更難?哪個(gè)更鍛煉自己?兩個(gè)不同層進(jìn)行比較,沒(méi)有可比性,就好比當(dāng)老板累,還是當(dāng)員工累,沒(méi)有標(biāo)準(zhǔn)答案。
作為一名合作的嵌入式工程師,不管是做驅(qū)動(dòng)還是應(yīng)用,你不能局限于你那一層。
做驅(qū)動(dòng)的要了解應(yīng)用層業(yè)務(wù)邏輯實(shí)現(xiàn)的一些基本原理,而做應(yīng)用層開(kāi)發(fā),也要了解底層驅(qū)動(dòng)是如何實(shí)現(xiàn)的。不要求深入了解,但要了解大概原理。
如果只考慮自己那一層,寫(xiě)出來(lái)的代碼,多半是不合格的,你看看那些互相甩鍋的工程師,可能就是這么導(dǎo)致的。
再回來(lái)說(shuō)下,哪個(gè)更鍛煉自己?道理還是一樣,兩個(gè)都挺鍛煉人的。
如今搞嵌入式,要求更高了,兩個(gè)方向你都需要掌握,但是,你需要側(cè)重一方,其他作為“選修課”,及格就行。
最后,時(shí)代在不斷變化,我們普通人不能改變世界,就要順應(yīng)時(shí)代的變化而變化。