教程更新 | RK3568驅(qū)動指南第六篇-平臺總線

《iTOP-RK3568開發(fā)板驅(qū)動開發(fā)指南》更新,本次更新內(nèi)容對應的是驅(qū)動(第六期_平臺總線_全新升級)視頻,后續(xù)資料會不斷更新,不斷完善,幫助用戶快速入門,大大提升研發(fā)速度。

教程概覽
文檔教程更新至第六篇
第1篇 驅(qū)動基礎篇
第2篇 字符設備基礎
第3篇 并發(fā)與競爭
第4篇 高級字符設備進階
第5篇 中斷
第6篇 平臺總線
未完待續(xù),持續(xù)更新中...
視頻教程更新至十一期
第一期_驅(qū)動基礎
第二期_字符設備基礎
第三期_并發(fā)與競爭
第四期_高級字符設備進階
第五期_中斷
第六期_平臺總線
第七期_設備樹
第八期_設備樹插件
第九期_設備模型
第十期_熱插拔
第十一期_pinctrl子系統(tǒng)
未完待續(xù),持續(xù)更新中...
更新內(nèi)容
◆教程更新
《iTOP-RK3568開發(fā)板驅(qū)動開發(fā)指南》V1.2
新增第六篇-平臺總線
◆文檔+例程免費獲取方式
①?加入迅為技術交流群:824412014
② 點擊視頻找到下方的網(wǎng)盤鏈接

教程目錄
? 第一篇 驅(qū)動基礎
第1章 前言
1.1 學習方法
1.2 基礎準備
第2章 你好!內(nèi)核源碼
2.1 初識內(nèi)核源碼
2.2 內(nèi)核源碼結構
2.3 編譯內(nèi)核源碼
第3章 helloworld 驅(qū)動實驗
3.1 驅(qū)動編寫
3.2 驅(qū)動的基本框架
第4章 內(nèi)核模塊實驗
4.1 設置交叉編譯器
4.2 編寫Makefile
4.3 編譯模塊
4.4 模塊加載與卸載
4.5查看模塊信息
第5章 驅(qū)動模塊傳參實驗
5.1 驅(qū)動模塊傳參簡介
5.2 實驗程序的編寫
5.3 運行測試
5.3.1 編譯驅(qū)動程序
5.3.2 運行測試
第6章 內(nèi)核模塊符號導出實驗
6.1 內(nèi)核模塊符號導出簡介
6.2 實驗程序的編寫
6.3 運行測試
6.3.1 編譯驅(qū)動程序
6.3.2 運行測試
? 第二篇 字符設備基礎
第7章 menuconfig圖形化配置實驗
7.1圖形化界面的操作
7.2 Kconfig 語法簡介
7.3 .config配置文件介紹
7.4 defconfig配置文件
7.5 自定義菜單實驗
第8章 驅(qū)動模塊編譯進內(nèi)核實驗
第9章 申請字符設備號實驗
9.1 申請驅(qū)動設備號
9.1.1 設備號申請?
9.1.2 設備號類型?
9.2 實驗程序的編寫
9.3 運行測試
9.3.1 編譯驅(qū)動程序
9.3.2 運行測試
第10章 注冊字符設備實驗
10.1 注冊字符設備
10.1.1 字符設備初始化
10.1.2 字符設備的注冊
10.2 實驗程序的編寫
10.3 運行測試
10.3.1 編譯驅(qū)動程序
10.3.2 運行測試
第11章 創(chuàng)建設備節(jié)點實驗
11.1 創(chuàng)建設備節(jié)點
11.1.1 手動創(chuàng)建設備節(jié)點
11.1.2 自動創(chuàng)建設備節(jié)點
11.2 實驗程序的編寫
11.3 運行測試
11.3.1 編譯驅(qū)動程序
11.3.2 運行測試
第12章 字符設備驅(qū)動框架實驗
12.1 文件操作集簡介
12.2 實驗程序的編寫
12.2.1 驅(qū)動程序編寫
12.2.2 編寫測試 APP
12.3 運行測試
12.3.1 編譯驅(qū)動程序
12.3.2 編譯應用程序
12.3.3 運行測試
第13章 雜項設備驅(qū)動實驗
13.1 雜項設備驅(qū)動簡介
13.2 雜項設備的注冊和卸載
13.3 雜項設備驅(qū)動框架
13.4 實驗程序的編寫
13.5 運行測試
13.5.1 編譯驅(qū)動程序
13.5.2 運行測試
第14章 內(nèi)核空間與用戶空間數(shù)據(jù)交互實驗
14.1 內(nèi)核空間與用戶空間
14.2 用戶空間和內(nèi)核空間數(shù)據(jù)交換
14.3 實驗程序編寫
14.3.1 驅(qū)動程序編寫
14.3.2 編寫測試 APP
14.4 運行測試
14.4.1 編譯驅(qū)動程序
14.4.2 編譯應用程序
14.4.3 運行測試
第15章 文件私有數(shù)據(jù)實驗
15.1 文件私有數(shù)據(jù)簡介
15.2 實驗程序編寫
15.2.1 驅(qū)動程序編寫
15.2.2 編寫測試 APP
15.3 運行測試
15.3.1 編譯驅(qū)動程序
15.3.2 編譯應用程序
15.3.3 運行測試
第16章 一個驅(qū)動兼容不同設備實驗
16.1 container_of函數(shù)簡介
16.2 實驗程序編寫
16.2.1 驅(qū)動程序編寫
16.2.2 編寫測試 APP
16.3 運行測試
16.3.1 編譯驅(qū)動程序
16.3.2 編譯應用程序
16.3.2 運行測試
第17章 Linux錯誤處理實驗
17.1 goto語句簡介
17.2 IS_ERR()簡介
17.3 實驗程序編寫
17.3.1 驅(qū)動程序編寫
17.3.2 編寫測試 APP
17.4 運行測試
17.4.1 編譯驅(qū)動程序
17.4.2 編譯應用程序
17.4.3運行測試
第18章 點亮LED燈實驗
18.1 查看原理圖
18.2 查詢寄存器地址
18.3 實驗程序編寫
18.3.1 驅(qū)動程序編寫
18.3.2 編寫測試 APP
18.4 運行測試
18.4.1編譯驅(qū)動程序
18.4.2 編譯應用程序
18.4.3 運行測試
? 第三篇 并發(fā)與競爭
第19章 并發(fā)與競爭實驗
19.1 并發(fā)與競爭
19.1.1并發(fā)
19.1.2并行
19.1.3并發(fā)+并行
19.1.4 競爭
19.1.5 共享資源的保護
19.2 實驗程序的編寫
19.2.1 驅(qū)動程序編寫
19.2.2 編寫測試 APP
19.3 運行測試
19.3.1 編譯驅(qū)動程序
19.3.2 編譯應用程序
19.3.3 運行測試
第20章 原子操作實驗
20.1 原子操作
20.2 實驗程序的編寫
20.2.1 驅(qū)動程序編寫
20.2.2 編寫測試 APP
20.3 運行測試
20.3.1 編譯驅(qū)動程序
20.3.2 編譯應用程序
20.3.3 運行測試
第21章 自旋鎖實驗
21.1 自旋鎖
21.2 實驗程序的編寫
21.2.1 驅(qū)動程序編寫
21.2.2 編寫測試 APP
21.3 運行測試
21.3.1 編譯驅(qū)動程序
21.3.2 編譯應用程序
21.3.3 運行測試
第22章 自旋鎖死鎖實驗
22.1 自旋鎖死鎖
22.2 實驗程序的編寫
22.2.1 驅(qū)動程序編寫
22.2.2 編寫測試 APP
22.3 運行測試
22.3.1 編譯驅(qū)動程序
22.3.2 編譯應用程序
22.3.3 運行測試
第23章 信號量實驗
23.1 信號量
23.2 實驗程序的編寫
23.2.1 驅(qū)動程序編寫
23.2.2 編寫測試 APP
23.3 運行測試
23.3.1 編譯驅(qū)動程序
23.3.2 編譯應用程序
23.3.3 運行測試
第24章?互斥鎖實驗
24.1 互斥鎖
24.2 實驗程序的編寫
24.2.1 驅(qū)動程序編寫
24.2.2 編寫測試 APP
24.3 運行測試
24.3.1 編譯驅(qū)動程序
24.3.2 編譯應用程序
24.3.3 運行測試
? 第四篇 高級字符設備進階
第25章?IO模型引入實驗
25.1 IO的概念
25.2 IO執(zhí)行過程
25.3 IO模型的分類
第26章 ?阻塞IO實驗
26.1 什么是等待隊列
26.2 等待隊列API函數(shù)
26.3 等待隊列使用方法
26.4 實驗程序編寫
26.4.1 驅(qū)動程序編寫
26.4.2 編寫測試 APP
26.5運行測試
26.5.1編譯驅(qū)動程序
26.5.2 編譯應用程序
26.5.3 運行測試
第27章?非阻塞IO實驗
27.1 非阻塞IO簡介
27.2 實驗程序編寫
27.2.1 編寫測試 APP
27.2.1 驅(qū)動程序編寫
27.3 運行測試
27.3.1 編譯驅(qū)動程序
27.3.2 編譯應用程序
27.3.3 測試
第28章?IO多路復用實驗
28.1 IO多路復用簡介
28.2 實驗程序編寫
28.2.1 編寫測試 APP
28.2.2 驅(qū)動程序編寫
28.3 運行測試
28.3.1 編譯驅(qū)動程序
28.3.2 編譯應用程序
28.3.3 測試
第29章 信號驅(qū)動IO實驗
29.1 信號驅(qū)動IO簡介
29.2 實驗程序編寫
29.2.1 編寫測試 APP
29.2.2 驅(qū)動程序編寫
29.3 運行測試
29.3.1 編譯程序
29.3.2 編譯應用程序
29.3.3 測試
第30章?定時器實驗???
30.1 Linux定期器
30.2 實驗程序編寫
30.3 運行測試
30.3.1 編譯驅(qū)動程序
30.3.2 運行測試
第31章?秒字符設備驅(qū)動實驗?
31.1 實驗程序編寫
31.1.1 編寫測試 APP
31.1.2 驅(qū)動程序編寫
31.2 運行測試
31.2.1 編譯驅(qū)動程序
31.2.2 編譯應用程序
31.2.3 運行測試
第32章?Linux內(nèi)核打印實驗??
32.1 方法一:dmseg 命令
32.2 方法二:查看kmsg文件
32.3 方法三:調(diào)整內(nèi)核打印等級
第33章llseek定位設備驅(qū)動實驗
33.1 定位設備llseek
33.1.1 lseek函數(shù)的使用
33.1.2 驅(qū)動程序的完善
33.2 實驗程序編寫
33.2.1 編寫測試 APP
33.2.2 驅(qū)動程序編寫
33.3 運行測試
33.3.1 編譯驅(qū)動程序
33.3.2 編譯應用程序
33.3.3 運行測試
第34章?IOCTL驅(qū)動傳參實驗??
34.1 ioctl基礎
34.2 實驗程序編寫
34.2.1 編寫測試 APP
34.2.2 驅(qū)動程序編寫
34.3 運行測試
34.3.1 編譯驅(qū)動程序
34.3.2 編譯應用程序
34.3.3 運行測試
第35章?IOCTL地址傳參實驗
35.1 實驗程序編寫
35.1.1 編寫測試 APP
35.1.1 驅(qū)動程序編寫
35.2 運行測試
35.2.1 編譯驅(qū)動程序
35.2.2 編譯應用程序
35.2.3 運行測試
第36章?封裝驅(qū)動API接口實驗
36.1 ioctl控制定時器實驗
36.1.1 編寫測試 APP
36.1.2 驅(qū)動程序編寫
36.2 運行測試
36.2.1 編譯驅(qū)動程序
36.2.2 編譯應用程序
36.2.3 運行測試
36.3 封裝驅(qū)動API接口
36.4 運行測試
36.4.1 編譯應用程序
36.4.2 運行測試
第37章?優(yōu)化驅(qū)動穩(wěn)定性和效率實驗??
37.1 方法一:檢測ioctl命令
37.2 方法二:檢測傳遞地址是否合理
37.3 方法三:分支預測優(yōu)化
第38章?驅(qū)動調(diào)試方法實驗
38.1 方法1:dump_stack函數(shù)
38.2 方法2:WARN_ON(condition)函數(shù)
38.3 方法3:BUG_ON (condition)函數(shù)
38.4 方法4:panic (fmt...)函數(shù)
??第五篇 中斷
第39章 中斷實驗
39.1什么是中斷?
39.1.1 中斷的概念
39.1.2 中斷的重要性
39.1.3 中斷的上下半部
39.2中斷子系統(tǒng)框架
39.2.1 中斷控制器GIC
39.2.2 中斷類型
39.2.3 中斷號
39.2.4 中斷申請函數(shù)
39.2.5 中斷服務函數(shù)
39.3實驗程序編寫
39.4 運行測試
39.4.1 編譯驅(qū)動程序
39.4.2 運行測試
第40章 中斷申請流程
40.1 request_irq函數(shù)
40.2 request_threaded_irq函數(shù)
40.3 irq_desc結構體
40.4 irqaction 結構體
第41章 中斷下文tasklet實驗?
41.1 什么是tasklet
41.2 tasklet相關接口函數(shù)
41.2.1 靜態(tài)初始化函數(shù)
41.2.2 動態(tài)初始化函數(shù)
41.2.3 關閉函數(shù)
41.2.4 使能函數(shù)
41.2.5 調(diào)度函數(shù)
41.2.6 銷毀函數(shù)
41.3 實驗程序的編寫
41.3.1 驅(qū)動程序編寫
41.4 運行測試
41.4.1 編譯驅(qū)動程序
41.4.2 運行測試
第42章 軟中斷實驗
42.1 什么是軟中斷
42.2 軟中斷接口函數(shù)
42.3 實驗程序的編寫
42.3.1 驅(qū)動程序編寫
42.4 運行測試
42.4.1 編譯驅(qū)動程序
42.4.2 運行測試
第43章 特殊的軟中斷tasklet分析實驗
第44章 共享工作隊列實驗
44.1 什么是工作隊列
44.2 工作隊列相關接口函數(shù)
44.2.1 初始化函數(shù)
44.2.2 調(diào)度/取消調(diào)度工作隊列函數(shù)
44.3 實驗程序的編寫
44.3.1 驅(qū)動程序編寫
44.4 運行測試
44.4.1 編譯驅(qū)動程序
44.4.2 運行測試
第45章 自定義工作隊列實驗
45.1 工作隊列相關結構體
45.2 工作隊列相關接口函數(shù)
45.3 實驗程序的編寫
45.3.1 驅(qū)動程序編寫
45.4 運行測試
45.4.1 編譯驅(qū)動程序
45.4.2 運行測試
第46章?延遲工作實驗?
46.1 什么是延遲工作
46.2 延遲工作相關接口函數(shù)
46.2.1 初始化延遲工作函數(shù)
46.2.2 調(diào)度/取消調(diào)度 延遲工作函數(shù)
46.3 實驗程序的編寫
46.3.1 驅(qū)動程序編寫
46.4 運行測試
46.4.1 編譯驅(qū)動程序
46.4.2 運行測試
第47章 工作隊列傳參實驗
47.1 工作隊列傳參
47.2實驗程序的編寫
47.2.1 驅(qū)動程序編寫
47.3 運行測試
47.3.1 編譯驅(qū)動程序
47.3.2 運行測試
第48章 并發(fā)管理工作隊列實驗
48.1工作隊列的實現(xiàn)
48.2 workqueue隊列弊端
48.2 什么是并發(fā)管理工作隊列
48.3 并發(fā)管理工作隊列接口函數(shù)
48.4 實驗程序的編寫
45.4.1 驅(qū)動程序編寫
48.5 運行測試
48.5.1 編譯驅(qū)動程序
48.5.2 運行測試
第49章 中斷線程化實驗
49.1什么是中斷線程化
49.2 中斷線程化接口函數(shù)
49.3 實驗程序的編寫
49.3.1 驅(qū)動程序編寫
49.4 運行測試
49.4.1 編譯驅(qū)動程序
49.4.2 運行測試
?第六篇?平臺總線
第50章 平臺總線模型介紹
50.1 什么是平臺總線?
50.2 平臺總線的優(yōu)勢
第51章 注冊platform設備實驗
51.1 注冊platform設備
51.1.1 platform_device_register函數(shù)
51.1.2 platform_device_unregister函數(shù)
51.1.3 platform_device結構體
51.1.4 resource結構體
51.2 實驗程序的編寫
51.3 運行測試
51.3.1 編譯驅(qū)動程序
51.3.2 運行測試
第52章 注冊platform驅(qū)動實驗
52.1注冊platform驅(qū)動
52.1.1 platform_driver_register函數(shù)
52.1.2 platform_device_unregister函數(shù)
52.1.3 platform_driver結構體
52.2 實驗程序的編寫
52.3 運行測試
52.3.1 編譯驅(qū)動程序
52.3.2 運行測試
第53章 probe函數(shù)編寫實驗
53.1 獲取device資源
53.2 實驗程序的編寫
53.3 運行測試
53.3.1 編譯驅(qū)動程序
53.3.2 運行測試
第54章 點亮LED燈實驗(平臺總線)
54.1 實驗程序的編寫
54.1.1 驅(qū)動程序編寫
54.1.2 編寫測試 APP
54.2 運行測試
54.2.1 編譯驅(qū)動程序
54.2.2 編譯應用程序
54.2.3 運行測試

■ 關注“迅為電子”微信公眾號,不定期分享教程、資料和行業(yè)干貨及產(chǎn)品一線資料。
■ 想要了解迅為更多信息,歡迎與我們聯(lián)系:
銷售工程師:010-8527-0708 轉(zhuǎn)接 1
技術支持類:010-8527-0708 轉(zhuǎn)接 2
方案定制類:010-8527-0708 轉(zhuǎn)接 3
■ 實時技術支持:
AM?9:00—12:00,PM?13:30—17:30(周一至周六)
技術交流群【824412014】