0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

幾個方面給大家描述一下嵌入式學(xué)習(xí)路線

strongerHuang ? 來源:嵌入式藝術(shù) ? 作者:嵌入式藝術(shù) ? 2022-11-18 09:40 ? 次閱讀


一前言

不定期會看到讀者問:

嵌入式要學(xué)習(xí)哪些內(nèi)容?

有沒有推薦的學(xué)習(xí)路線或資料?

······

本文就從下面幾個方面給大家描述一下嵌入式學(xué)習(xí)路線:

嵌入式基礎(chǔ)必備知識

51單片機(jī)

STM32單片機(jī)

小而美的RTOS

ARM+LINUX

在這個快節(jié)奏的時代,能靜下心,耐住性子看看文章,實(shí)屬不易。

二嵌入式基礎(chǔ)必備知識

老子曰:“合抱之木,生于毫末:九層之臺,起于壘土;千里之行,始于足下”,根基的重要性不言而喻。

那么對于嵌入式這條路線而言,如何建立一個穩(wěn)固的根基?

2.1、學(xué)習(xí)內(nèi)容

f4a7aa22-66d7-11ed-8abf-dac502259ad0.png

C語言基礎(chǔ)

該部分,主要包括幾個核心知識點(diǎn):三大語法結(jié)構(gòu)、常用的數(shù)據(jù)類型、函數(shù)、結(jié)構(gòu)體、指針、文件操作等。

硬件基礎(chǔ)知識

該部分,核心知識點(diǎn)在于:電路基礎(chǔ)知識、數(shù)電模電基礎(chǔ)知識、常用的電子元器件等。

數(shù)據(jù)結(jié)構(gòu)

核心知識點(diǎn):數(shù)組、隊(duì)列、鏈表、堆棧、樹、圖、散列表等。

操作系統(tǒng)

核心知識點(diǎn):進(jìn)程管理、內(nèi)存管理、文件管理、輸入輸出管理等。

計(jì)算機(jī)原理

核心知識點(diǎn):數(shù)據(jù)表示和運(yùn)算、存儲系統(tǒng)、指令系統(tǒng)、總線系統(tǒng)、中央處理器、輸入輸出系統(tǒng)等。

2.2、學(xué)習(xí)建議

對于C語言基礎(chǔ)學(xué)習(xí),一定要重點(diǎn)熟練掌握,根基的牢固直接決定了我們的代碼質(zhì)量。

對于硬件基礎(chǔ)學(xué)習(xí),要適當(dāng)了解,要能夠看懂一些簡單的電路結(jié)構(gòu),認(rèn)識常用的電子元器件。

對于數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí),前五個是必備學(xué)習(xí)的,可能在剛開始學(xué)習(xí)的時候,可能會感覺不到作用在哪里,但是隨著接觸到嵌入式底層設(shè)計(jì)以及算法設(shè)計(jì)的時候,才會恍然大悟。

對于操作系統(tǒng)學(xué)習(xí),重點(diǎn)學(xué)習(xí)其思想,對相關(guān)知識點(diǎn)有一個大概的了解,后續(xù)接觸到繼續(xù)重點(diǎn)學(xué)習(xí),這些無論是RTOS,還是Linux,都有涉及到的。

對于計(jì)算機(jī)原理學(xué)習(xí),可以將其看作是嵌入式系統(tǒng)的各個模塊的詳解,會讓你對嵌入式有一個整體的了解,每一個部分都值得深究。

2.3、學(xué)習(xí)資料

C語言基礎(chǔ):推薦經(jīng)典書籍《C語言程序設(shè)計(jì)》(第2版)譚浩強(qiáng)版本。

硬件基礎(chǔ):大學(xué)里面的《數(shù)電模電》書籍所涉及的知識即可。

數(shù)據(jù)結(jié)構(gòu):推薦經(jīng)典書籍《數(shù)據(jù)結(jié)構(gòu)》——嚴(yán)蔚敏版。

操作系統(tǒng)、計(jì)算機(jī)原理:我用的是《王道》的系列叢書,個人感覺不錯。

計(jì)算機(jī)組成、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、數(shù)據(jù)庫是嵌入式或者說計(jì)算機(jī)的入門必讀書籍,并且也被列入高校教材內(nèi),是真正的基礎(chǔ)知識。

以上,不一定是全部看完才能體驗(yàn)編程的樂趣,這個基礎(chǔ)是一個循序漸進(jìn)的過程,也不是一朝一夕就能完成的,可以先有一個大概,后續(xù)做項(xiàng)目時,哪里不懂補(bǔ)哪里!

這里涉及到一個重要的學(xué)習(xí)方法:項(xiàng)目導(dǎo)向的學(xué)習(xí)法。

三嵌入式入門篇——51單片機(jī)

f4b5e236-66d7-11ed-8abf-dac502259ad0.png

在上面的基礎(chǔ)知識進(jìn)行熟悉之后(C語言基礎(chǔ)、計(jì)算機(jī)組成、硬件基礎(chǔ)必備),我們準(zhǔn)備叩開嵌入式世界的大門。

入門篇,依舊推薦51單片機(jī),當(dāng)然有人會說,直接上STM32豈不更好?

我的看法:建議新手還是以51單片機(jī)來入門,因?yàn)镾TM32體系架構(gòu)比51大很多,對于新手剛開始可能會不太容易適應(yīng)。

3.1、學(xué)習(xí)內(nèi)容

f4fe0f52-66d7-11ed-8abf-dac502259ad0.png

該部分,主要在最小嵌入式系統(tǒng)中,實(shí)現(xiàn)各種有趣的實(shí)驗(yàn)。通過51單片機(jī)的學(xué)習(xí),我們要做到:

軟件類:

主要知識點(diǎn)有:認(rèn)識單片機(jī)、熟悉邏輯運(yùn)算、點(diǎn)亮一顆LED燈、按鍵檢測、串口通信、定時器、中斷等。

硬件類:

主要知識點(diǎn)有:電阻元器件了解,基本模塊電路了解,時鐘電路,嘗試?yán)L制51單片機(jī)原理圖和PCB

3.2、學(xué)習(xí)建議

對于軟件類,我們主要做到:認(rèn)識單片機(jī),熟悉單片機(jī)的GPIO的輸入、輸出操作,串口通信協(xié)議掌握等,這些部分都是任何一款嵌入式設(shè)備的必備技能。

對于硬件類:我們主要做到:能看懂電路圖,熟悉一些簡單模塊的設(shè)計(jì)電路,了解Altium Designer的使用方法。

3.3、學(xué)習(xí)資料

51單片機(jī):郭天祥的51單片機(jī)教程,經(jīng)典著作,經(jīng)久不衰,強(qiáng)烈推薦。

莊子說:“水之積也不厚,則其負(fù)大舟也無力。“

該部分,是嵌入式領(lǐng)域的基石,只有將基礎(chǔ)打牢,才能負(fù)得起Linux泰坦號。

四STM32進(jìn)階篇

STM32是C51的進(jìn)階版,擁有C51的基礎(chǔ)知識,開發(fā)STM32會得心應(yīng)手。

STM32的系統(tǒng)架構(gòu)以及硬件設(shè)計(jì)相比于C51來說,都是上升了一個維度的,這也是為什么我推薦入門學(xué)習(xí)C51的原因。

以STM32F407平臺為基礎(chǔ),去學(xué)習(xí)目前嵌入式主流的一些技術(shù),探尋底層的原理,做到不同平臺,都能夠得心應(yīng)手。

4.1、學(xué)習(xí)內(nèi)容

f5111e76-66d7-11ed-8abf-dac502259ad0.png

基礎(chǔ)練習(xí)

該部分,主要練習(xí):點(diǎn)亮LED燈、GPIO的輸入輸出操作、中斷操作、UART通信、IIC通信等

進(jìn)階練習(xí)

該部分,主要練習(xí):DMA通信、SPI通信、CAN通信、LCD顯示屏,ADC

高階練習(xí)

該部分,主要學(xué)習(xí):STM32時鐘架構(gòu)、總線架構(gòu)、電源管理、代碼框架、SDIO通信、USB通信等。

4.2、學(xué)習(xí)建議

對于基礎(chǔ)練習(xí),主要目的是為了方便讓我們從C51到STM32環(huán)境的過渡。

對于進(jìn)階練習(xí),主要練習(xí)一些通信類相關(guān)的協(xié)議,可以結(jié)合一些傳感器進(jìn)行開發(fā)。

對于高階練習(xí),主要目的是為了熟悉單片機(jī)的設(shè)計(jì)架構(gòu),編程的框架,以及一些更復(fù)雜的通信技術(shù)。

另外,STM32會有寄存器和庫函數(shù)兩個版本,建議交叉學(xué)習(xí),理解會更加深刻。

4.3、學(xué)習(xí)資料

STM32單片機(jī):推薦正點(diǎn)原子、野火的STM32F103或者STM32F407系列。

兩家的學(xué)習(xí)資料都非常豐富,既有詳細(xì)的文檔說明,也有完整的學(xué)習(xí)視頻教程,非常適合新手入門學(xué)習(xí)。

俗話說:“有道無術(shù),術(shù)尚可求,有術(shù)無道,止于術(shù)”。要明白道和術(shù)的區(qū)別,不要本末倒置。

五小而美的RTOS

RTOS,實(shí)時操作系統(tǒng),可以理解為STM32與Linux之間的橋梁,由于其實(shí)現(xiàn)思想大都取之于Linux,所以也稱之為精簡版的Linux。

我們常用的有實(shí)時操作系統(tǒng)有:UCOS,VxWork,FreeRtos,近些年RT-Thread也異軍突起。

學(xué)習(xí)這些簡單的嵌入式系統(tǒng),一來能夠幫助我們?yōu)閷W(xué)習(xí)Linux操作系統(tǒng)打下基礎(chǔ),二來也能夠擴(kuò)寬我們的職業(yè)道路。

前面也說過了,無論是UCOS、FreeRtos、Rt-thread,其內(nèi)部的設(shè)計(jì)思想大同小異,下面主要以Ucos為例。

5.1、學(xué)習(xí)內(nèi)容

f5205d64-66d7-11ed-8abf-dac502259ad0.png

實(shí)時系統(tǒng)學(xué)習(xí)

該部分,主要學(xué)習(xí):移植Ucos系統(tǒng)、多任務(wù)管理、調(diào)度算法、消息隊(duì)列、信號量互斥量、事件、內(nèi)存管理等。

5.2、學(xué)習(xí)建議

對于實(shí)時系統(tǒng)學(xué)習(xí),除了上述的那些核心知識點(diǎn)外,還要結(jié)合2.1 基礎(chǔ)必備知識的操作系統(tǒng)書籍加深理解。

5.3、學(xué)習(xí)資料

RTOS的學(xué)習(xí):依舊推薦正點(diǎn)原子,野火,因?yàn)檫@些實(shí)時操作系統(tǒng)開發(fā),可以基于STM32開發(fā)板,同時也有非常詳細(xì)的文檔和視頻教學(xué)。

六ARM+Linux篇

學(xué)習(xí)完RTOS后,基本嵌入式所涉及的技術(shù)已經(jīng)掌握一半了,你也可以獨(dú)立完成一些小的項(xiàng)目,也可以找到一個不錯的工作,但是一定不要自我滿足,有機(jī)會一定要接觸Linux。

還是那句話:ARM+Linux,也是最為復(fù)雜的東西,如果你不去接觸Linux,你永遠(yuǎn)不知道嵌入式的魅力。

Linux開發(fā)又分為驅(qū)動開發(fā),內(nèi)核開發(fā),應(yīng)用開發(fā),每一個方向都需要幾年甚至幾十年的積累。

作為初學(xué)者,我們要做的就是宏觀了解,擴(kuò)大我們的知識面,然后去選擇自己感興趣的方面。

6.1、學(xué)習(xí)內(nèi)容

f57920c0-66d7-11ed-8abf-dac502259ad0.png

Linux基礎(chǔ)篇

該部分主要學(xué)習(xí):Linux常用命令、VIM學(xué)習(xí)、Linux的Shell編程、Gcc編譯、Makefile等。

驅(qū)動篇

該部分主要學(xué)習(xí):內(nèi)核模塊編譯原理、字符設(shè)備驅(qū)動框架、平臺設(shè)備驅(qū)動、設(shè)備樹、Pinctrl子系統(tǒng)、I2C子系統(tǒng)、中斷子系統(tǒng)、塊設(shè)備驅(qū)動框架、Bootloader等

內(nèi)核篇

該部分主要學(xué)習(xí):系統(tǒng)調(diào)用、存儲管理、進(jìn)程管理、內(nèi)存管理、文件管理等。

應(yīng)用篇

該部分主要學(xué)習(xí):QT編程、TCP/IP協(xié)議、HTTP協(xié)議等。

6.2、學(xué)習(xí)建議

對于基礎(chǔ)學(xué)習(xí),剛接觸到Linux,一般比較難上手,與之前的單片機(jī)完全不同,需要一個熟悉環(huán)境的過程。

對于驅(qū)動學(xué)習(xí),重要在于明白“如何在Linux環(huán)境下編寫驅(qū)動程序”,驅(qū)動的底層原理還是那樣,加了一層層的框架,需要我們?nèi)ナ煜ぁ?/p>

對于內(nèi)核學(xué)習(xí),上述也是系統(tǒng)的幾大核心特色,重點(diǎn)在于"如何使Linux性能最優(yōu)"

對于應(yīng)用學(xué)習(xí),上述的幾個方面也是基礎(chǔ),重點(diǎn)還在于開發(fā)什么應(yīng)用,去學(xué)習(xí)哪方面的知識,沒有定論。

對于Linux,有句老話“學(xué)習(xí)Linux,3年才算入門,5年才勉強(qiáng)算Linux工程師,對于不太熟悉的領(lǐng)域,博主也不敢妄加斷言?!?/p>

6.3、學(xué)習(xí)資料

對于基礎(chǔ)學(xué)習(xí),推薦《鳥哥的Linux私房菜》,《Unix環(huán)境高級編程》等入門書籍。

對于驅(qū)動開發(fā),推薦《Linux設(shè)備驅(qū)動開發(fā)詳解》,Linux內(nèi)核源碼詳解等。

對于內(nèi)核學(xué)習(xí),推薦《Linux Shell腳本攻略》、《深入理解Linux內(nèi)核》等。

對于應(yīng)用開發(fā),推薦《嵌入式Linux應(yīng)用開發(fā)完全手冊》、《Unix網(wǎng)絡(luò)編程》等。

另外,推薦正點(diǎn)原子,野火,韋東山三個Linux開發(fā)教程,韋老師的課程好評居多,但還是看哪個更適合自己。

七總結(jié)

全文整體的學(xué)習(xí)路線:嵌入式基礎(chǔ)學(xué)習(xí)->51單片機(jī)->STM32單片機(jī)->RTOS篇->ARM+Linux

每一個部分,也都從學(xué)習(xí)內(nèi)容,學(xué)習(xí)建議,學(xué)習(xí)資料三個方面來展開,層層深入,步步指引。

文章既是我的學(xué)習(xí)歷程,又結(jié)合了一些大佬的學(xué)習(xí)分享,不斷調(diào)整總結(jié)出來的,如有異同,歡迎留言討論。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:嵌入式要學(xué)習(xí)哪些內(nèi)容?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    哪些專業(yè)適合學(xué)習(xí)嵌入式開發(fā)?

    哪些專業(yè)適合學(xué)習(xí)嵌入式開發(fā)? 在傳統(tǒng)行業(yè)不斷被取代的當(dāng)下,對于大學(xué)生、從業(yè)者而言,選擇個熱門主流的職業(yè)方向,是未來發(fā)展的關(guān)鍵因素之。 嵌入式
    發(fā)表于 01-03 13:44

    新手怎么學(xué)嵌入式?

    新手怎么學(xué)嵌入式? 在科技飛速發(fā)展的今天,嵌入式技術(shù)已經(jīng)滲透到我們生活的各個角落,從智能手機(jī)到智能家居,從汽車電子到醫(yī)療設(shè)備。對于新手而言,嵌入式技術(shù)就像是座充滿神秘和機(jī)遇的寶藏,等
    發(fā)表于 12-12 10:51

    嵌入式職業(yè)規(guī)劃雜談 如何學(xué)習(xí)與職業(yè)規(guī)劃

    ---本章為初學(xué)者介紹可能的職業(yè)發(fā)展路線,讓初學(xué)者對整個行業(yè)有所了解,對自身發(fā)展有所參考。 如何學(xué)習(xí)與職業(yè)規(guī)劃 仔細(xì)觀察一下周圍的電子設(shè)備,比如包里的手機(jī),戴著的手環(huán),開著的空調(diào);家里的洗衣機(jī)
    的頭像 發(fā)表于 11-25 09:53 ?293次閱讀
    <b class='flag-5'>嵌入式</b>職業(yè)規(guī)劃雜談 如何<b class='flag-5'>學(xué)習(xí)</b>與職業(yè)規(guī)劃

    零基礎(chǔ)嵌入式開發(fā)學(xué)習(xí)路線

    嵌入式開發(fā)”沒有接觸過的同學(xué)可能會不明覺厲,但是只要你了解了,感興趣并且有個正確的學(xué)習(xí)路線的話,零基礎(chǔ)也能入門。
    發(fā)表于 10-25 15:55

    嵌入式學(xué)習(xí)建議

    對廣大渴望學(xué)習(xí)嵌入式系統(tǒng)的學(xué)子提出幾點(diǎn)基礎(chǔ)階段的學(xué)習(xí)建議: ①嵌入式系統(tǒng)軟件硬件密切相關(guān),定要打好軟硬件基礎(chǔ)。其實(shí),只要找到正確的方法,
    發(fā)表于 10-22 11:41

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第7-8章學(xué)習(xí)心得

    這是本很好的學(xué)習(xí)嵌入式的書籍。 在深入學(xué)習(xí)嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用》的第7-8章后,我對
    發(fā)表于 10-09 18:50

    嵌入式linux開發(fā)的基本步驟有哪些?

    之前,首先需要選擇合適的硬件平臺。硬件選擇需要考慮以下幾個方面: 1.1 處理器 嵌入式Linux開發(fā)需要個處理器,常見的處理器有ARM、MIPS、PowerPC等。選擇處理器時,需
    的頭像 發(fā)表于 09-02 09:11 ?589次閱讀

    AI普及嵌入式設(shè)計(jì)人員帶來新挑戰(zhàn)

    探討了人工智能(AI)的普及嵌入式設(shè)計(jì)人員帶來的新挑戰(zhàn)。在創(chuàng)建“邊緣機(jī)器學(xué)習(xí)(ML)”應(yīng)用時,設(shè)計(jì)人員必須確保其能有效運(yùn)行,同時最大限度地降低處理器和存儲開銷,以及物聯(lián)網(wǎng)(IoT)設(shè)備的功耗
    發(fā)表于 08-22 14:20 ?709次閱讀
    AI普及<b class='flag-5'>給</b><b class='flag-5'>嵌入式</b>設(shè)計(jì)人員帶來新挑戰(zhàn)

    嵌入式工控體機(jī)的安裝方法和使用注意事項(xiàng)?

    客戶咨詢嵌入式工控體機(jī)的安裝問題和維護(hù)問題,本文中為大家介紹一下嵌入式工控體機(jī)的安裝方法和使
    的頭像 發(fā)表于 08-04 11:12 ?1292次閱讀

    從菜鳥到大牛!嵌入式完整學(xué)習(xí)路線:STM32單片機(jī)-RTOS-Linux

    ?嵌入式系統(tǒng)是許多現(xiàn)代電子設(shè)備和智能系統(tǒng)的核心,掌握嵌入式系統(tǒng),意味著能夠設(shè)計(jì)和開發(fā)更加智能化的產(chǎn)品。本文為所有想進(jìn)入嵌入式領(lǐng)域的初學(xué)者提供個完整系統(tǒng)
    的頭像 發(fā)表于 07-23 16:11 ?4462次閱讀
    從菜鳥到大牛!<b class='flag-5'>嵌入式</b>完整<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>路線</b>:STM32單片機(jī)-RTOS-Linux

    深度學(xué)習(xí)算法在嵌入式平臺上的部署

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)算法在各個領(lǐng)域的應(yīng)用日益廣泛。然而,將深度學(xué)習(xí)算法部署到資源受限的嵌入式平臺上,仍然是個具有挑戰(zhàn)性的任務(wù)。本文將從
    的頭像 發(fā)表于 07-15 10:03 ?1622次閱讀

    嵌入式人工智能的就業(yè)方向有哪些?

    的發(fā)展方向有很多,門檻高低不樣。下面大家列舉些相應(yīng)崗位所需具備的技能: 嵌入式Linu
    發(fā)表于 02-26 10:17

    嵌入式軟件設(shè)計(jì)的原則分享

    嵌入式軟件開發(fā)如果具有更好的閱讀性、擴(kuò)展性以及維護(hù)性,就需要考慮很多因素。今天大家分享幾個嵌入式軟件設(shè)計(jì)的原則。
    發(fā)表于 02-25 10:54 ?737次閱讀
    <b class='flag-5'>嵌入式</b>軟件設(shè)計(jì)的原則分享

    大家講講嵌入式系統(tǒng)中I2C總線的時序

    I2C總線在嵌入式系統(tǒng)中很常見,今天就來給大家講講I2C總線的時序。
    的頭像 發(fā)表于 02-23 09:47 ?1732次閱讀
    <b class='flag-5'>給</b><b class='flag-5'>大家</b>講講<b class='flag-5'>嵌入式</b>系統(tǒng)中I2C總線的時序

    嵌入式學(xué)習(xí)步驟

    開發(fā)板上測試固件以及在實(shí)際設(shè)備上進(jìn)行測試。 嵌入式系統(tǒng)的多樣化發(fā)展,它將更為廣泛地應(yīng)用于各個領(lǐng)域,實(shí)現(xiàn)智能化、網(wǎng)絡(luò)化、自動化的目標(biāo)。同時,隨著人工智能和機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,嵌入式系統(tǒng)的智能化程度也將得到進(jìn)
    發(fā)表于 02-02 15:24