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