|
我是怎么自學(xué)嵌入式的
嵌入式的開(kāi)發(fā),既有軟件又有硬件,軟硬結(jié)合得非常深入,可以這么說(shuō),不熟悉電子電路和硬件性能的,又或者不精通編程語(yǔ)言和思想的,都做不好嵌入式開(kāi)發(fā)。
先來(lái)談一下定義,很多人會(huì)把嵌入式和單片機(jī)搞混,但大多時(shí)候,兩者的詞義在某些場(chǎng)景下好像也可以通用。嵌入式的英文是Embedded System,中文應(yīng)該叫嵌入式系統(tǒng)了。
比較完整的解釋是:嵌入式系統(tǒng),是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適用于對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
簡(jiǎn)單總結(jié):支持MMU(Memory Management Unit,內(nèi)存管理單元)的,可以跑Linux,Android等大系統(tǒng),稱之為嵌入式;而不支持MMU的,跑RTOS或FreeRTOS等小系統(tǒng)的稱之為單片機(jī)。
2003年的網(wǎng)購(gòu)環(huán)境,不像現(xiàn)在這么便捷,很多元器件,都要到廣州的賽格電子城去購(gòu)買(mǎi),而線路板畫(huà)好之后,更是一個(gè)麻煩事,很少有工廠會(huì)接打樣的訂單,有也很貴。不像現(xiàn)在,萬(wàn)能的淘寶幾乎可以買(mǎi)到任何電子元器件,線路板畫(huà)好之后,上傳到立創(chuàng)等PCB樣板網(wǎng)站最快24小時(shí)就收到貨了。
我的第一個(gè)正式的單片機(jī)研發(fā)項(xiàng)目,使用飛利浦(現(xiàn)在的NXP)的芯片,記得型號(hào)是LPC908,TSOP8個(gè)腳位,不需要外部晶振,默認(rèn)帶一個(gè)UART,只需要3.3V供電即可。當(dāng)時(shí)這個(gè)項(xiàng)目也非常簡(jiǎn)單,是一個(gè)三星手機(jī)的恢復(fù)出廠值的小設(shè)備,上電啟動(dòng)時(shí),設(shè)置好串口波特率,特定的時(shí)間發(fā)送3次數(shù)據(jù),三星的手機(jī)就恢復(fù)出廠設(shè)置了。當(dāng)時(shí)芯片選型,線路板,指令抓取和單片機(jī)程序都是我一個(gè)人完成。
做嵌入式開(kāi)發(fā)總結(jié)了幾條經(jīng)驗(yàn):
1、做嵌入式開(kāi)發(fā),還是要深入去了解硬件,雖然現(xiàn)在工作的崗位區(qū)分比較明顯,但在我入行的時(shí)候,硬件軟件可沒(méi)有分的這么清。原理圖線路板,有時(shí)間學(xué)畫(huà)一畫(huà),對(duì)自己技術(shù)也是一種提高,對(duì)硬件的理解也有幫助,也不是非要那么精通,但自己親手畫(huà)過(guò)幾個(gè)板子,做過(guò)幾個(gè)項(xiàng)目之后,相信你會(huì)有不同的理解。
2、英語(yǔ)的底子還是要加強(qiáng),做嵌入式開(kāi)發(fā),如果看不懂芯片的Datasheet,那基本沒(méi)辦法工作的。其實(shí)和寫(xiě)代碼編程一樣,只要能看懂,能理解,基本上在工作上應(yīng)該就不會(huì)有障礙了。但是不能逃避,有些同學(xué)用漢化軟件,找中文數(shù)據(jù)手冊(cè),這點(diǎn)我是不贊成的。
3、嵌入式開(kāi)發(fā)從軟件上分為小系統(tǒng)和大系統(tǒng),我是建議都要掌握。從STM32的裸機(jī)系統(tǒng)開(kāi)始,再嘗試跑個(gè)RTOS或國(guó)內(nèi)的RT-Thread,基礎(chǔ)打牢了,再轉(zhuǎn)向Linux的系統(tǒng),這樣就比較完整了。即使是從Linux入門(mén)工作到現(xiàn)在的,我還是建議花點(diǎn)時(shí)間搞搞單片機(jī),買(mǎi)一個(gè)stm32的開(kāi)發(fā)板也很容易,嵌入式硬件基礎(chǔ)要熟悉,而軟件更是要精通。
4、開(kāi)發(fā)工具要熟練,我發(fā)現(xiàn)很多同學(xué)拿個(gè)開(kāi)發(fā)板到手,就直接接電開(kāi)機(jī),我的習(xí)慣的不管啥板子,我都接穩(wěn)壓源開(kāi)機(jī),一來(lái)可以看看工作電流,對(duì)功耗有一個(gè)概念,二來(lái)把短路電流CC設(shè)置小一點(diǎn),也可以防止硬件問(wèn)題燒壞主板。還有萬(wàn)用表,示波器,邏輯分析儀都是必備工具,特別是邏輯分析儀,對(duì)寫(xiě)軟件的工程師來(lái)講簡(jiǎn)直是救命神器。
5、各種軟件IDE開(kāi)發(fā)工具要熟練,很多人不知道keil有單步調(diào)試和斷點(diǎn)調(diào)試的功能,調(diào)試軟件全部用log輸出或者串口打印輸出,開(kāi)發(fā)效率太低下了。除非是linux或者android的開(kāi)發(fā),那確實(shí)沒(méi)法在線調(diào)試或仿真,但涉及算法都可以在VC++上面調(diào)試跑通之后,再移植過(guò)去。最后講一句啰嗦話,搞嵌入式要沉得住心,不要那么浮躁。作為搞技術(shù)和創(chuàng)業(yè)多年的人,在我眼中,做硬件兩三年的同學(xué),才剛?cè)腴T(mén)呢。
想學(xué)習(xí)和交流嵌入式的小伙伴加入上面微信交流群,一起加油吧,后浪們。
|
|