从单片机转到嵌入式Linux的跨度大吗?
這是我今天一個(gè)同學(xué)問(wèn)我的
我再零散的說(shuō)一些觀點(diǎn),如果大家有這方面的經(jīng)驗(yàn),也幫忙在文章下留言,謝謝大家。
先說(shuō)共同點(diǎn)
單片機(jī)和嵌入式他們最終都是要跑硬件的,所以你也會(huì)遇到像GPIO口、I2C、串口、SPI、定時(shí)器、看門(mén)狗這些問(wèn)題。
所以如果你學(xué)了單片機(jī),那么你在這些東西上肯定是有積累的。那么這些就是你的優(yōu)勢(shì),如果你讓一個(gè)學(xué)java的去做嵌入式開(kāi)發(fā),我覺(jué)得并不合適,因?yàn)樗赡軐?duì)電子的很多東西不懂,他可能看不懂原理圖,也不會(huì)用示波器萬(wàn)用表,也不知道什么是中斷,中斷向量之類(lèi)的。
但是你如果是單片機(jī)開(kāi)發(fā),這些你都了如指掌,那,這就是優(yōu)勢(shì)。
但是從單片機(jī)開(kāi)發(fā)到嵌入式Linux,我覺(jué)得要先看看多任務(wù)。
如果有了多任務(wù)的概念,那么不管你是做RTOS還是Linux都是合適的。
那差異點(diǎn)在哪里呢?
嵌入式的特點(diǎn)是軟硬件可裁剪,所以從單片機(jī)到嵌入式Linux,你作為軟件開(kāi)發(fā),最大的問(wèn)題就是裁剪,根據(jù)不同的硬件配置做不同的裁剪軟件。
而且,從單片機(jī)到Linux,它的難度可以說(shuō)是指數(shù)級(jí)增加。
你可以用單片機(jī)來(lái)做一個(gè)U盤(pán),嗯,你做出來(lái)了。
然后你到Linux下去看看USB的架構(gòu),嗯,你絕對(duì)是懵逼的,因?yàn)榻^壁是太復(fù)雜了,所以你想在沒(méi)有完全理解的情況下就給這些代碼動(dòng)刀子,你做不到。
我今天和我一個(gè)同事聊天,他跟我說(shuō),以前他做手機(jī)開(kāi)發(fā)的,做那些驅(qū)動(dòng),也就是供應(yīng)商給給代碼,然后推進(jìn)下進(jìn)度就好了。
他說(shuō)的沒(méi)有錯(cuò),很多小廠商就是這么做的,但是難就難在,可能某個(gè)修改就一行代碼,但是你就是不知道在哪里,要是你沒(méi)有經(jīng)驗(yàn),對(duì)架構(gòu)不熟悉,你絕壁要熟悉上一個(gè)星期~,我之前在中興調(diào)一個(gè)馬達(dá)驅(qū)動(dòng),找驅(qū)動(dòng)文件都找了很久,還要理解馬達(dá)的電機(jī)驅(qū)動(dòng)原理,最后去驗(yàn)證對(duì)焦那才是一個(gè)讓我崩潰的事情。
所以,從單片機(jī)到嵌入式Linux,你對(duì)架構(gòu)的掌控是一個(gè)很大的挑戰(zhàn)。
其次是調(diào)試
大的系統(tǒng),要給它開(kāi)刀做手術(shù),可不是一刀子下去一刀子出來(lái)就完事,還是需要針對(duì)性的去做調(diào)試,對(duì)不同的問(wèn)題先有理論基礎(chǔ)再動(dòng)刀子。
哦,你以為嵌入式Linux不寫(xiě)代碼
你需要寫(xiě)C,有時(shí)候因?yàn)槟承﹩?wèn)題,你需要寫(xiě)C++,python,shell~
不寫(xiě)長(zhǎng)了~就這些~
總結(jié)
以上是生活随笔為你收集整理的从单片机转到嵌入式Linux的跨度大吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 植物大战僵尸源代码
- 下一篇: linux 其他常用命令