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