嵌入式軟件開發(fā)學(xué)習(xí)路線(嵌入式軟件開發(fā)基礎(chǔ)知識(shí))
今天給各位分享嵌入式軟件開發(fā)學(xué)習(xí)路線的知識(shí),其中也會(huì)對(duì)嵌入式軟件開發(fā)基礎(chǔ)知識(shí)進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
有沒有嵌入式開發(fā)的學(xué)習(xí)路線,越詳細(xì)越好
一、學(xué)習(xí)路徑
萬丈高樓平地起,不管多優(yōu)秀的工程師都是從小白開始的。一條清晰合理的學(xué)習(xí)路線能幫助小白們高效率的完成基礎(chǔ)知識(shí)的儲(chǔ)備工作,注意這里是知識(shí)的儲(chǔ)備過程,而經(jīng)驗(yàn)是從實(shí)踐中得到的。學(xué)習(xí)路徑是多種多樣的,不同能力和不同基礎(chǔ)的人有不太相同的路徑,這里分享我自己的學(xué)習(xí)路徑,供大家參考。
1.了解計(jì)算機(jī)原理,操作系統(tǒng)基礎(chǔ)知識(shí)。了解硬盤,內(nèi)存和CPU的關(guān)系,程序是如何加載到內(nèi)存運(yùn)行的,了解操作系統(tǒng)進(jìn)程切換和時(shí)間片的概念。
2.學(xué)習(xí)C語言,掌握編譯器基本知識(shí),能編寫簡單的程序。學(xué)習(xí)硬件相關(guān)知識(shí)。
3.購買洞洞板或者面包板,配合stm32等單片機(jī)核心板及相應(yīng)教材,實(shí)踐IO操作,中斷,定時(shí)器,ADC,UART通信,IIC通信,SPI通信,CAN通信等基本功能。在此過程中不斷鞏固提升C語言編程水平。
4.掌握了某一種單片機(jī)的基本編程和控制后,可以進(jìn)軍嵌入式操作系統(tǒng)的學(xué)習(xí)。在此期間可以繼續(xù)使用STM32核心板,加購LCD串口液晶顯示屏,不需要買帶字庫的顯示屏,簡單實(shí)用的串口顯示屏就可以。然后可以從Free RTOS開始學(xué)習(xí),這個(gè)操作系統(tǒng)代碼少,概念清晰,易于學(xué)習(xí)操作系統(tǒng)的原理,也易于移植,基本上可以參考官網(wǎng)以及網(wǎng)絡(luò)上的資料順利的將操作系統(tǒng)移植到STM32核心板。通過FreeRTOS,可以學(xué)習(xí)嵌入式操作系統(tǒng)的基本原理,并可以編寫LCD驅(qū)動(dòng)程序來感受硬件驅(qū)動(dòng)程序的概念。
5.學(xué)習(xí)嵌入式Linux操作系統(tǒng),購買ARM9或以上版本的主控的開發(fā)板,要求開發(fā)板上至少有串口和網(wǎng)口。學(xué)習(xí)板級(jí)支持包的開發(fā),交叉編譯,GDB調(diào)試,UBOOT移植,內(nèi)核移植,根文件系統(tǒng)制作,設(shè)備樹,驅(qū)動(dòng)程序編寫,網(wǎng)絡(luò)編程相關(guān)知識(shí)。
6.學(xué)習(xí)物聯(lián)網(wǎng)相關(guān)模塊的使用,可以購買ESP32核心板進(jìn)行wifi,藍(lán)牙的模塊控制學(xué)習(xí),購買其他模塊實(shí)現(xiàn)其他小項(xiàng)目的練習(xí)。
通過上面的一番閉關(guān)修煉,你已經(jīng)學(xué)習(xí)了嵌入式開發(fā)的主要知識(shí)架構(gòu),接下來就要多做小項(xiàng)目,多練習(xí)排錯(cuò),才能不斷積累經(jīng)驗(yàn)。
二、學(xué)習(xí)方法
1.先整再零:
對(duì)于一個(gè)實(shí)例項(xiàng)目,先從整體出發(fā),保證調(diào)通,能正常運(yùn)行,出現(xiàn)預(yù)期結(jié)果。遇到模糊的問題先跳過,整體有了一定認(rèn)識(shí)后再對(duì)個(gè)別細(xì)節(jié)進(jìn)行深入了解,但不能跳過深入了解細(xì)節(jié)的環(huán)節(jié)。
2.邊學(xué)邊練:
開發(fā)是一類實(shí)踐性很強(qiáng)的技能,嵌入式開發(fā)要與硬件打交道,就需要更多的動(dòng)手操作和觀察。
學(xué)習(xí)某一方向的嵌入式開發(fā)知識(shí)時(shí),需要給自己的學(xué)習(xí)進(jìn)行必要的“投資”,購買面包板、洞洞板、萬用表、調(diào)溫烙鐵套裝、各種器件、芯片,以至開發(fā)板。以上材料不需要一次性都買齊,可以按照當(dāng)前學(xué)習(xí)的內(nèi)容分階段購買,經(jīng)濟(jì)條件有限的同學(xué)也不用擔(dān)心,以上材料的開銷除開發(fā)板之外都不貴,可網(wǎng)絡(luò)購買。對(duì)于開發(fā)板,可以買學(xué)長學(xué)姐的二手板卡,能過測(cè)試就證明板卡是OK的。
有了學(xué)習(xí)材料,就要學(xué)以致用,例如今天學(xué)習(xí)了三極管做開關(guān),就可以自己動(dòng)手畫畫電路圖,然后在洞洞板上實(shí)踐一下,通過實(shí)際操作,加深印象的同時(shí),也能驗(yàn)證自己的設(shè)計(jì)方案。
3.勤于思考和提問,網(wǎng)絡(luò)如此發(fā)達(dá),提問的能力和技巧我就不再贅述了。
三、技能提升建議
如果你進(jìn)入的是一家規(guī)模較小的公司,那么你可能有機(jī)會(huì)接觸各類技術(shù)。這是絕佳的鍛煉機(jī)會(huì),要注意不要特別深入某一方向而不關(guān)注其他技術(shù),要知道大牛需要的是多方位的技能。
大公司的話,往往分工比較細(xì)致而明確,那就需要在完成自己工作的同時(shí)多關(guān)注項(xiàng)目組中其他同事遇到的問題,能協(xié)助解決最好,不能解決的要關(guān)注解決的情況和方法,多蹭經(jīng)驗(yàn)。幫助別人的同時(shí)就是在幫助自己提高,多花時(shí)間處理實(shí)際問題是難得的經(jīng)驗(yàn)。
不管在哪種場(chǎng)合工作,一定注意經(jīng)驗(yàn)的積累,好記不如帶墨,要用文字將經(jīng)驗(yàn)記錄下來,將遇到的問題詳細(xì)描述清楚,沒事的時(shí)候翻看一下,工作時(shí)間長了,你會(huì)發(fā)現(xiàn)這是一筆難得的財(cái)富。
限于篇幅,這里就不再多講技術(shù)的細(xì)節(jié)了,希望各位讀者在技術(shù)成長的過程當(dāng)中都能有自己清晰的學(xué)習(xí)路徑,安排好自己的學(xué)習(xí)計(jì)劃,穩(wěn)扎穩(wěn)打!
學(xué)嵌入式需要什么基礎(chǔ)
學(xué)嵌入式需要以下基礎(chǔ)知識(shí)。
目的:能看懂硬件工作原理,但重點(diǎn)在嵌入式軟件,特別是操作系統(tǒng)級(jí)軟件,那將是我的優(yōu)勢(shì)。
科目:數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)。
匯編語言、C/C++、編譯原理、離散數(shù)學(xué)。
數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)、軟件工程、網(wǎng)絡(luò)、數(shù)據(jù)庫。
方法:雖科目眾多,但都是較簡單的基礎(chǔ),且大部分已掌握。不一定全學(xué),可根據(jù)需要選修。
主攻書籍:the c++ programming language(一直沒時(shí)間讀)、數(shù)據(jù)結(jié)構(gòu)-C2。
嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃
ARM+LINUX路線,主攻嵌入式Linux操作系統(tǒng)及其上應(yīng)用軟件開發(fā)目標(biāo):
(1) 掌握主流嵌入式微處理器的結(jié)構(gòu)與原理(初步定為arm9)
(2) 必須掌握一個(gè)嵌入式操作系統(tǒng) (初步定為uclinux或linux,版本待定)
(3) 必須熟悉嵌入式軟件開發(fā)流程并至少做一個(gè)嵌入式軟件項(xiàng)目。
從事嵌入式軟件開發(fā)的好處是:
(1)目前國內(nèi)外這方面的人都很稀缺。這一領(lǐng)域入門門檻較高,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,大多數(shù)人無條件接觸。
(2)與企業(yè)計(jì)算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強(qiáng)度通常低一些(但收入不低)。
(3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,嵌入式不像應(yīng)用軟件那樣容易被盜版。硬件設(shè)計(jì)一般都是請(qǐng)其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計(jì)軟件就變成自己的產(chǎn)品了。
(4)興趣所在,這是最主要的。
嵌入式軟件工程師需要學(xué)什么?
嵌入式軟件工程師需要具備簡單的硬件電路設(shè)計(jì)能力。
需要懂得C語言和一些簡單的匯編語言編程;能夠閱讀一般嵌入式系統(tǒng)的原理圖;至少熟悉一種嵌入式系統(tǒng)的軟件開發(fā)環(huán)境;熟悉一種嵌入式系統(tǒng)軟件的開發(fā)過程;必要硬件基礎(chǔ)知識(shí);理解常見的嵌入式操作系統(tǒng)的工作原理。
需要懂得:(1)懂得C語言和一些簡單的匯編語言編程。
(2)能夠閱讀一般嵌入式系統(tǒng)的原理圖。
(3)至少熟悉一種嵌入式系統(tǒng)的軟件開發(fā)環(huán)境。
(4)熟悉一種嵌入式系統(tǒng)軟件的開發(fā)過程,如:單片機(jī)系統(tǒng)、DSP系統(tǒng)、ARM系統(tǒng)或其它的一些潛入式系統(tǒng)。
(5)理解常見的嵌入式操作系統(tǒng)的工作原理,理解線程、進(jìn)程、信號(hào)量、消息機(jī)制、同步與互拆、并發(fā)控制等軟件編程時(shí)用到的概念。
(6)必要硬件基礎(chǔ)知識(shí)。
嵌入式軟件開發(fā)學(xué)習(xí)路線的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于嵌入式軟件開發(fā)基礎(chǔ)知識(shí)、嵌入式軟件開發(fā)學(xué)習(xí)路線的信息別忘了在本站進(jìn)行查找喔。