手冊亮點: 01 完全零基礎(chǔ),降低學(xué)習(xí)門檻 02 深入淺出、通俗易懂 03 思路清晰、語言風(fēng)趣 04 配套視頻+詳細(xì)文檔+QQ群答疑 全方位保證學(xué)習(xí)質(zhì)量 05 基礎(chǔ)知識+思路引導(dǎo)的教學(xué)方式 授之以魚更授之以漁 06 本教程包括入門篇、Linux系統(tǒng)/編程篇、Linux驅(qū)動教程,后續(xù)教程編寫遵循由簡至繁,由淺至深的理念,講解方式通俗易懂,非常適合零基礎(chǔ)小伙伴進(jìn)行學(xué)習(xí)。 第一篇 嵌入式Linux入門篇 前言 總領(lǐng)及學(xué)習(xí)指引 01 框架學(xué)習(xí)法 02 嵌入式系統(tǒng)學(xué)習(xí)的框架 03 關(guān)于裸機(jī)程序和仿真 04 基于迅為開發(fā)板的學(xué)習(xí)步驟 第一部分 嵌入式Linux開發(fā)環(huán)境構(gòu)建及基礎(chǔ)知識 第一章 安裝虛擬機(jī)VM軟件 第二章 獲取并安裝Ubuntu操作系統(tǒng) 第三章 Ubuntu系統(tǒng)介紹 3.1 什么是ubuntu?和linux的關(guān)系是什么? 3.2 linux的發(fā)行版有哪些? 3.3 常見的ubuntu分為哪些? 第四章 Ubuntu啟用root用戶 4.1 命令行的組成 4.2 為什么要啟用root用戶? 4.3 啟用root用戶步驟 4.4 退出root用戶 第五章 Ubuntu使用apt-get下載 5.1 使用apt-get 命令之前的檢查 5.2 設(shè)置下載源 5.3 更新下載源 5.4 安裝 vim 軟件 5.5 軟件的更新 5.6 軟件的卸載 第六章 Vim 編輯器的使用 6.1 什么是 vim? 6.2 為什么要學(xué)習(xí) vim 編輯器? 6.3 vi 和 vim 的關(guān)系是什么呢? 6.4 怎么打開 vi 編輯器呢? 6.5 vim 編輯器有三種模式 6.6 vim 編輯器移動光標(biāo) 6.7 vim 編輯器支持快速定位 6.8 vim 編輯器的文本的復(fù)制和粘貼 6.9 vim 編輯器使用快捷鍵來復(fù)制 6.10 vim 編輯器的刪除 6.11 vim 編輯器的撤銷 6.12 vim 編輯器的查找 6.13 vim 編輯器的替換 6.14 vim 編輯器的保存 6.15 vim 編輯器文件的對比 第七章 Linux 常用命令第一部分 7.1 ls 命令 7.2 cd 命令 7.3 pwd 命令 第八章 Linux相對路徑和絕對路徑 8.1 什么是絕對路徑? 8.2 什么是相對路徑? 第九章 Linux 家目錄和根目錄概念 9.1 什么是根目錄? 9.2 什么是家目錄? 第十章 Linux常用命令第二部分 10.1 mkdir 命令 10.2 rmdir 命令 10.3 rm 命令 10.4 touch 命令 10.5 clear 命令 10.6 reset命令 10.7 cp 命令10.8 mv 命令 10.9 tar 命令 10.10 ifconfig 命令 10.11 cat 命令 10.12 reboot 命令 10.13 poweroff 命令 10.14 ipconfig 命令 10.15 ping 命令 第十一章 Linux 幫助手冊講解 11.1 怎么打開幫助手冊 11.2 安裝依賴 11.3 使用手冊查看命令 第十二章 Linux 權(quán)限管理 12.1 為什么要管理 linux 權(quán)限? 12.2 Ubuntu的文件權(quán)限 12.3 chmod 命令 第十三章 Linux連接檔概念 13.1 Linux下的連接檔種類 13.2 什么是 inode 13.3 什么是硬連接 13.4 使用硬連接的優(yōu)缺點是什么? 13.5 什么是軟連接 第十四章 Linux 目錄結(jié)構(gòu)講解 14.1 linux目錄結(jié)構(gòu) 14.2 linux文件層次標(biāo)準(zhǔn) 14.3 linux 根目錄下 第十五章 Linux 文件系統(tǒng)概念 15.1 什么是文件系統(tǒng)? 15.2 linux為什么需要文件系統(tǒng)? 15.3 linux 常見文件系統(tǒng)的類型都有哪些? 15.4 ubuntu的文件系統(tǒng)類型是什么呢? 第十六章 Linux 第一個程序 HelloWorld 16.1 什么是gcc ? 16.2 gcc 的基本用法 16.3 流程 第十七章 Linux 環(huán)境變量講解 17.1 什么是環(huán)境變量? 17.2 常用變量 PATH 17.3 修改ubunu的環(huán)境變量的方法 第十八章 Linux編寫第一個自己的命令 18.1 什么是命令? 18.2 定義一個自己的命令 第十九章 Linux 工具之make 工具和 makefile 文件 19.1 什么是 make 工具? 19.2 怎么調(diào)用make 工具? 19.3 什么是makefile ? 第二十章 makefile 基本語法(上) 20.1 設(shè)置vim首行縮進(jìn) 20.2 Makefile 基本語法 20.3 Makefile 變量和變量賦值 20.4 自動化變量 第二十一章 makefile基本語法(下) 21.1 wildcard 函數(shù) 21.2 notdir 函數(shù) 21.3 dir 函數(shù) 21.4 patsubst 函數(shù) 21.5 foreach 函數(shù) 第二十二章 安裝VMware Tool 工具 第二部分 嵌入式Windows開發(fā)環(huán)境構(gòu)建 第二十三章 安裝 SSH 軟件 第二十四章 安裝 Samba 第二十五章 Source Insight 的安裝和使用 第二十六章 MobaXterm的安裝教程 第三部分 嵌入式平臺入門實操 第二十七章 交叉編譯器的安裝和使用 第二十八章 借助U盤或TF卡拷貝程序到開發(fā)板上 第二十九章 點亮第一個 led燈 29.1 前置知識 29.2 led設(shè)備的控制 29.3 使用c語言調(diào)用shell命令控制led燈 第二篇 Linux系統(tǒng)編程篇 第一部分 Linux下I/O操作 第三十章 文件IO和標(biāo)準(zhǔn)IO 30.1 文件IO open() 30.2 文件IO close() 30.3 文件IO read() 30.3 文件IO write() 30.4綜合練習(xí)(一) 30.5文件IO lseek() 第三十一章 目錄IO 31.6 目錄IO mkdir() 31.7 目錄IO opendir()/closedir() 31.8目錄IO readdir() 31.9綜合練習(xí)(二) 第三十二章 庫的制作與使用 32.1靜態(tài)庫和動態(tài)庫 第二部分 進(jìn)程與進(jìn)程間通信 第三十三章 進(jìn)程基礎(chǔ) 33.1 進(jìn)程創(chuàng)建 33.2 exec函數(shù)族 33.3 ps和kill命令 33.4 孤兒進(jìn)程與僵尸進(jìn)程 33.5 wait()函數(shù) 33.6守護(hù)進(jìn)程 第三十四章 進(jìn)程間通信 34.1 無名管道 34.2 有名管道 34.3 信號發(fā)送 34.4 信號接收 34.5 信號處理 34.6共享內(nèi)存 34.7消息隊列 34.8信號量 第三篇 嵌入式 Linux 驅(qū)動開發(fā)篇 第一部分 Linux 驅(qū)動初探 第三十五章 嵌入式開發(fā)概述及環(huán)境構(gòu)建 35.1嵌入式 linux 開發(fā)介紹 35.2 嵌入式 linux 環(huán)境構(gòu)建 35.2.1 編譯內(nèi)核源碼 35.2.2 windows系統(tǒng) Linux固件燒寫 35.2.3 搭建nfs共享目錄 35.2.4 設(shè)置交叉編譯器 第三十六章 Linux驅(qū)動初探 36.1 linux 設(shè)備驅(qū)動開發(fā)基本概念 36.2 linux設(shè)備驅(qū)動分類及特點 36.3 最簡單的設(shè)備驅(qū)動-helloworld 第二部分 Linux內(nèi)核裁剪與定制 第三十七章 Linux內(nèi)核模塊 37.1 Linux內(nèi)核模塊簡介 37.1.1 內(nèi)核和編譯器路徑 37.1.2 Makefile 和測試驅(qū)動源碼以及編譯 37.2 ch34x驅(qū)動實驗 第三十八章 驅(qū)動模塊編譯進(jìn)內(nèi)核 38.1 圖形化配置內(nèi)核 38.2 內(nèi)核中編譯驅(qū)動 第三部分 Linux 驅(qū)動基礎(chǔ) 第三十九章 Linux Misc驅(qū)動 39.1 misc設(shè)備驅(qū)動簡介 39.2 編寫實驗程序 39.2.1 編寫驅(qū)動例程 39.2.2 編譯驅(qū)動程序 39.2.3 運行測試 第四十章 Linux用戶層和內(nèi)核層 40.1 Linux用戶層和內(nèi)核層交互 40.2 編寫驅(qū)動程序和應(yīng)用程序 40.3 編譯驅(qū)動及運行測試 40.4 應(yīng)用層和內(nèi)核層傳遞數(shù)據(jù) 40.4.1 應(yīng)用層從內(nèi)核層讀數(shù)據(jù) 40.4.2 應(yīng)用層向內(nèi)核層寫數(shù)據(jù) 第四十一章 物理地址與虛擬地址 第四十二章 LED驅(qū)動實驗 42.1 實驗需求分析 42.2 硬件分析 42.2.1 硬件原理圖分析 42.2.2 芯片手冊分析 42.3 編寫LED驅(qū)動 42.4 編寫應(yīng)用程序 42.5 編譯驅(qū)動及運行測試 第四十三章 驅(qū)動模塊傳參 43.1 驅(qū)動模塊傳參簡介 43.2 驅(qū)動模塊傳普通參數(shù) 43.3 驅(qū)動模塊傳數(shù)組 第四十四章 注冊字符設(shè)備號 44.1 字符設(shè)備號簡介 44.1.1 設(shè)備號的組成 44.1.2 設(shè)備號的分配 44.2 編寫驅(qū)動例程 44.3 編譯驅(qū)動及運行測試 44.3.1 靜態(tài)注冊設(shè)備號測試 44.3.2 動態(tài)注冊設(shè)備號測試 第四十五章 注冊字符類設(shè)備 45.1 注冊字符類設(shè)備簡介 45.2 編寫字符設(shè)備驅(qū)動 45.3 編寫應(yīng)用程序 45.4 開發(fā)板實驗 第四十六章 自動創(chuàng)建設(shè)備節(jié)點 46.1 自動創(chuàng)建設(shè)備節(jié)點簡介 46.1.1 創(chuàng)建和刪除類函數(shù) 46.1.2 創(chuàng)建設(shè)備函數(shù) 46.2 創(chuàng)建類函數(shù) 46.3 創(chuàng)建設(shè)備函數(shù) 第四十七章 字符設(shè)備和雜項設(shè)備總結(jié)回顧 第四十八章 Platform 設(shè)備驅(qū)動 48.1 Linux設(shè)備驅(qū)動分層和分離 48.1.1 設(shè)備驅(qū)動的分層思想 48.1.2 主機(jī)驅(qū)動和外設(shè)驅(qū)動分離思想 48.2 Platform 平臺驅(qū)動模型 48.2.1 Platform 設(shè)備 48.2.2 Platform 驅(qū)動 48.2.3 Platform 總線 48.3 實驗程序 48.3.1 編寫device.c 48.3.2 編寫 driver.c 48.3.3 編寫probe 第四十九章 平臺總線總結(jié)回顧 第四部分 Linux驅(qū)動進(jìn)階 第五十章 Linux設(shè)備樹 50.1 設(shè)備樹的由來 50.2 什么是設(shè)備樹? 50.3 DTS 、DTC 和 DTB 50.4 DTS 設(shè)備樹語法結(jié)構(gòu) 50.4.1 dtsi 頭文件 50.4.2 設(shè)備節(jié)點信息 50.4.3 設(shè)備節(jié)點及l(fā)able命名 50.4.4 標(biāo)準(zhǔn)屬性 第五十一章 添加設(shè)備樹節(jié)點 51.1 查看設(shè)備樹節(jié)點方法 51.2 添加自定義節(jié)點 51.3 編譯設(shè)備樹文件 51.4 運行測試 51.4.1 驗證結(jié)論 第五十二章 設(shè)備樹常用of函數(shù) 52.1 設(shè)備樹常用of函數(shù) 52.1.1 查找節(jié)點的of函數(shù) 52.1.2 獲取屬性值的of函數(shù) 52.2 of函數(shù)實驗 52.2.1 查找的節(jié)點 52.2.2 獲取屬性內(nèi)容 52.2.3 獲取reg屬性 52.2.4 獲取status屬性 第五十三章 設(shè)備樹下的platform驅(qū)動 53.1 設(shè)備樹下的Platform設(shè)備 53.2 實驗程序編寫 53.2.1 Platform驅(qū)動程序 53.2.2 獲取資源 53.2.3 獲取節(jié)點屬性 53.2.4 映射物理地址 第五十四章 Pinctrl 子系統(tǒng)和 GPIO 子系統(tǒng) 54.1 Pinctrl子系統(tǒng) 54.1.1 配置pinctrl 54.1.2 調(diào)用 pinctrl 54.2 GPIO子系統(tǒng) 第五十五章 Pinctrl和GPIO子系統(tǒng)實驗 55.1 需求分析 55.2 修改設(shè)備樹文件 55.3 LED驅(qū)動程序編寫 55.4 編寫測試APP 55.5 運行測試 第五十六章 設(shè)備驅(qū)動IO控制 56.1 設(shè)備驅(qū)動IO控制原理 56.2 編寫測試-不傳遞數(shù)據(jù) 56.3 編寫測試-寫數(shù)據(jù) 56.4 編寫測試-讀數(shù)據(jù) 第五十七章 Linux中斷實驗 57.1 Linux中斷簡介 57.1.1 Linux中斷介紹 57.1.2 中斷相關(guān)函數(shù) 57.1.3 中斷上文和中斷下文 57.1.4 設(shè)備樹中的中斷節(jié)點 57.2 實驗程序編寫 57.2.1 修改設(shè)備樹文件 57.2.2 編寫驅(qū)動代碼 57.2.3 運行測試 57.2.4 優(yōu)化方案 第五十八章 中斷下文之tasklet 58.1 中斷下文之tasklet 58.1.1 tasklet的概念 58.1.2 tasklet參考步驟 58.2 實驗程序編寫 58.3 運行測試 第五十九章 等待隊列 59.1 阻塞和非阻塞IO 59.1.1 阻塞與非阻塞簡介 59.1.2 等待隊列 59.1.3 等待隊列頭 59.1.4 等待隊列項 59.1.5 添加/刪除隊列 59.1.6 等待喚醒 59.1.7 等待事件 59.2 編寫驅(qū)動程序 59.3 編寫應(yīng)用程序 59.4 運行測試 59.5 優(yōu)化方案 第六十章 中斷下文之工作隊列 60.1 工作隊列理論基礎(chǔ) 60.2 工作隊列相關(guān)API 60.3 工作隊列實驗 60.3.1 驅(qū)動程序編寫 60.3.2 測試實驗 第六十一章 Linux內(nèi)核定時器 61.1 Linux 內(nèi)核時間管理 61.1.1 內(nèi)核中的時間概念 61.1.2 節(jié)拍率 61.1.3 jiffies 61.2 內(nèi)核定時器簡介 61.3 實驗測試 第六十二章 定時器按鍵消抖實驗 62.1 定時器按鍵消抖簡介 62.2 定時器按鍵消抖實驗 第六十三章 輸入子系統(tǒng)實驗 63.1 Input子系統(tǒng) 63.1.1 Input子系統(tǒng)簡介 63.1.2 Input驅(qū)動程序編寫流程 63.1.3 input_event結(jié)構(gòu)體 63.2編寫實驗程序 第六十四章 Linux I2C驅(qū)動 64.1 Linux I2C 驅(qū)動框架簡介 64.1.1 I2C 總線驅(qū)動 64.1.2 I2C設(shè)備驅(qū)動 64.2 iTOP-RK3568的I2C節(jié)點簡析 64.3 I2C 設(shè)備驅(qū)動編寫流程 64.3.1 設(shè)備信息描述 64.3.2 I2C設(shè)備的數(shù)據(jù)收發(fā)和處理 第六十五章 Linux I2C驅(qū)動實驗 65.1 應(yīng)用程序與I2C通信 65.2 I2C總線實現(xiàn)client設(shè)備 65.2.1 非設(shè)備樹實現(xiàn)i2c 65.2.2 設(shè)備樹實現(xiàn)i2c 65.2.3 修改設(shè)備樹 65.2.4 編寫client.c 65.3 I2C總線實現(xiàn)driver驅(qū)動 65.4 I2C驅(qū)動程序?qū)崿F(xiàn)I2C通信 第六十六章 電容屏觸摸驅(qū)動實驗 66.1 Linux 下電容觸摸屏驅(qū)動框架 66.1.1 多點觸摸協(xié)議詳解 66.1.2 多點電容觸摸驅(qū)動框架 66.2 電容屏觸摸驅(qū)動實驗 66.2.1 硬件原理圖 66.2.2 編寫觸摸驅(qū)動 更多內(nèi)容關(guān)注:迅為電子 iTOP-rk3568開發(fā)板亮點 01 性能強(qiáng) iTOP-3568開發(fā)板采用瑞芯微RK3568處理器,是一款中高端通用型SOC,22nm工藝制程。內(nèi)部集成了四核64位Cortex-A55處理器。主頻高達(dá)2.0Ghz,2GB內(nèi)存,16GB EMMC,RK809動態(tài)調(diào)頻。 02 雙核心架構(gòu)GPU 集成了雙核心架構(gòu)GPU、ARM G522EE,支持OpenGL、ES1.1/2.0/3.2、OpenCL 2.0、Vulkan 1.1 、內(nèi)嵌高性能2D加速硬件。 03 內(nèi)置獨立NPU,算力達(dá)0.8T,可用于輕量級人工智能應(yīng)用。 04 強(qiáng)大的視頻編解碼,高性能VPU支持4K 60幀視頻解碼,多路視頻源同時解碼。H.265/H.264/VP9/VP8視頻解碼和1080p 100fps H.265/H.264/VP9視頻編碼。 05 接口豐富,雙路千兆以太網(wǎng)、SATA3.0、PCIE 3.0、MIPI、EDP、HDMI、MIPI、CAMERA、4G等接口一應(yīng)俱全。 06 支持多系統(tǒng),流暢運行Android11、buildroot+QT、Yocto、Debian系統(tǒng),新增Ubuntu20系統(tǒng) |