關(guān)注「嵌入式大雜燴」,選擇「星標(biāo)公眾號」一起進(jìn)步!
來源 | 網(wǎng)絡(luò)
大家好,我是ZhengN。最近有小伙伴問了嵌入式入門學(xué)習(xí)的問題。這里找了一篇相關(guān)的。我之前也是大致按照這些內(nèi)容進(jìn)行入門學(xué)習(xí),大家可以借鑒借鑒。
本公眾號雖然起名為嵌入式大雜燴,但是基本圍繞著嵌入式重點(diǎn)知識展開分享,以下也列舉了一些相關(guān)的推文。
后續(xù)仍然會圍繞著這些做更多地學(xué)習(xí)分享:
1、C語言
嵌入式Linux工程師的學(xué)習(xí)需要具備一定的C語言基礎(chǔ),C語言是嵌入式領(lǐng)域最重要也是最主要的編程語言,通過大量編程實(shí)例重點(diǎn)理解C語言的基礎(chǔ)編程以及高級編程知識。
包括:基本數(shù)據(jù)類型、數(shù)組、指針、結(jié)構(gòu)體、鏈表、文件操作、隊(duì)列、棧等。
干貨 | 結(jié)構(gòu)體、聯(lián)合體嵌套使用的一些實(shí)用操作
C語言、嵌入式重點(diǎn)知識:回調(diào)函數(shù)
C語言 | 聯(lián)合體的使用
C語言 | 指針總結(jié)
2、單片機(jī)基礎(chǔ)
單片機(jī)屬于嵌入式的范疇,通過單片機(jī)的學(xué)習(xí)體驗(yàn)軟硬結(jié)合的開發(fā)方法。學(xué)習(xí)通過軟件來控制硬件。
買一塊單片機(jī)開發(fā)板,從點(diǎn)燈、按鍵、串口、定時器、中斷等知識入手,熟悉芯片的一些常用外設(shè)。
長文 | 整理了STM32中的一些C語言知識點(diǎn)
在SRAM、FLASH中調(diào)試代碼的配置方法(附詳細(xì)步驟)
學(xué)習(xí)STM32的一些經(jīng)驗(yàn)分享
3、Linux基礎(chǔ)
Linux操作系統(tǒng)的概念、安裝方法,詳細(xì)了解Linux下的目錄結(jié)構(gòu)、基本命令、編輯器VI ,編譯器GCC,調(diào)試器GDB和 Make 項(xiàng)目管理工具, Shell Makefile腳本編寫等知識,嵌入式開發(fā)環(huán)境的搭建。
手把手教你使用VSCode gdb gdbserver調(diào)試ARM程序
GDB調(diào)試器原來那么簡單
干貨 | 淺析gcc、arm-linux-gcc和arm-elf-gcc的關(guān)系
看看內(nèi)核的Makefile、Kconfig和.config文件有什么關(guān)聯(lián)
4、Linux系統(tǒng)編程
重點(diǎn)學(xué)習(xí)標(biāo)準(zhǔn)I/O庫,Linux多任務(wù)編程中的多進(jìn)程和多線程,以及進(jìn)程間通信(pipe、FIFO、消息隊(duì)列、共享內(nèi)存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應(yīng)用開發(fā)的理解和代碼調(diào)試的能力。
多線程的使用
Linux 內(nèi)核如何描述一個進(jìn)程?
mqtt應(yīng)用于進(jìn)程間通信
5、Linux網(wǎng)絡(luò)編程
計(jì)算機(jī)網(wǎng)絡(luò)在嵌入式Linux系統(tǒng)應(yīng)用開發(fā)過程中使用非常廣泛,通過Linux網(wǎng)絡(luò)發(fā)展、TCP/IP協(xié)議、socket編程、TCP網(wǎng)絡(luò)編程、UDP網(wǎng)絡(luò)編程、Web編程開發(fā)等方面入手,全面了解Linux網(wǎng)絡(luò)應(yīng)用程序開發(fā)。
重點(diǎn)學(xué)習(xí)網(wǎng)絡(luò)編程相關(guān)API,熟練TCP協(xié)議服務(wù)器的編程方法和并發(fā)服務(wù)器的實(shí)現(xiàn),了解HTTP協(xié)議及其實(shí)現(xiàn)方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構(gòu)網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計(jì)。
【socket筆記】TCP、UDP通信總結(jié)
基于Linux、C、JSON、Socket的編程實(shí)例
一些不可不知的計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)
6、數(shù)據(jù)結(jié)構(gòu)與算法
數(shù)據(jù)結(jié)構(gòu)及算法在嵌入式底層驅(qū)動、通信協(xié)議、及各種引擎開發(fā)中會得到大量應(yīng)用,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。
此階段的學(xué)習(xí)要重點(diǎn)理解數(shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ)內(nèi)容,包括順序表、鏈表、隊(duì)列、棧、樹、圖、哈希表、各種查找排序算法等應(yīng)用及其C語言實(shí)現(xiàn)過程。
雙鏈表的操作示例(附代碼)
【RT-Thread】對象容器與雙鏈表
【數(shù)據(jù)結(jié)構(gòu)筆記】單鏈表
【數(shù)據(jù)結(jié)構(gòu)筆記】頭插法與尾插法創(chuàng)建單鏈表
7、C 、QT
C 是Linux應(yīng)用開發(fā)主要語言之一,本階段重點(diǎn)掌握面向?qū)ο缶幊痰幕舅枷胍约癈 的重要內(nèi)容。圖形界面編程是嵌入式開發(fā)中非常重要的一個環(huán)節(jié)。
由于QT具有跨平臺、面向?qū)ο蟆⒇S富API、支持2D/3D渲染、支持XML、多國語等強(qiáng)大功能,在嵌入式領(lǐng)域的GUI開發(fā)中得到了廣范的應(yīng)用,在本階段通過基于QT圖形庫的學(xué)習(xí)使學(xué)員可以熟練編寫GUI程序,并移植QT應(yīng)用程序到Cortex-A8平臺。
包括IDE使用、QT部件及布局管理器、信息與槽機(jī)制的應(yīng)用、鼠標(biāo)、鍵盤及繪圖事件處理及文件處理的應(yīng)用。
易懂 | 手把手教你編寫一個基于QT的上位機(jī)
QT | 用QT寫一個程序啟動器玩一玩?
QT Creator平臺運(yùn)行LVGL模擬器
QT | 用QT寫一個程序啟動器玩一玩?
8、ARM-Linux 平臺學(xué)習(xí)
以一款A(yù)RM微處理器為例,閱讀芯片手冊,掌握系統(tǒng)資源、時鐘控制器、電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平臺搭建做好準(zhǔn)備。
Linux平臺包括內(nèi)核裁減、內(nèi)核移植、交叉編譯、GNU工具使用、內(nèi)核調(diào)試、Bootloader介紹、制作與原理分析、根文件系統(tǒng)制作以及向內(nèi)核中添加自己的模塊,并在實(shí)驗(yàn)平臺上運(yùn)行自己制作的Linux系統(tǒng),集成部署Linux系統(tǒng)整個流程。
實(shí)用 | 如何遠(yuǎn)程登錄開發(fā)板?
實(shí)用 | 10分鐘教你搭建一個嵌入式web服務(wù)器
干貨 | 淺析程序開機(jī)自啟動
【Linux筆記】LED驅(qū)動實(shí)驗(yàn)(總線設(shè)備驅(qū)動模型)
【Linux筆記】設(shè)備樹實(shí)例分析
【Linux筆記】設(shè)備樹基礎(chǔ)知識
【Linux筆記】掛載網(wǎng)絡(luò)文件系統(tǒng)
以上就是本次的分享。嵌入式的內(nèi)容當(dāng)然不僅限于列舉的這些知識,如嵌入式AI、物聯(lián)網(wǎng)技術(shù)、通信技術(shù)~但以上的列舉的內(nèi)容都是嵌入式入門的重中之重。嵌入式有很多路子可選,入門之后,自然知道該怎么走。
本文部分內(nèi)容來源網(wǎng)絡(luò),僅供參考學(xué)習(xí)。如涉及作品版權(quán)問題,請聯(lián)系我進(jìn)行刪除。
往期推薦:
往期推薦
分享一個適用于
嵌入式的CPP開源項(xiàng)目
串口發(fā)送有幾種寫法?
基于硬件 SPI 的數(shù)據(jù)抽象實(shí)例(附代碼)
自定義協(xié)議解析組包中,大小端問題如何處理?