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