文檔更新 |迅為 RK3568開發(fā)板驅動指南-第十五/十六篇
《iTOP-RK3568開發(fā)板驅動開發(fā)指南》更新,本次更新內容對應的是驅動(第十五篇 i2C)(第十六篇 SPI)視頻,后續(xù)資料會不斷更新,不斷完善,幫助用戶快速入門,大大提升研發(fā)速度。
教程概覽
文檔教程更新至第16篇-SPI
第1篇 驅動基礎篇
第2篇 字符設備基礎
第3篇 并發(fā)與競爭
第4篇 高級字符設備進階第5篇 中斷
第6篇 平臺總線
第7篇 設備樹
第8篇 設備樹插件
第9篇 設備模型
第10篇 熱插拔
第11篇 pinctrl子系統(tǒng)
第12篇 GPIO子系統(tǒng)
第13篇 輸入子系統(tǒng)
第14篇 單總線
第15篇 I2C
第16篇 SPI
驅動基礎-進階篇
未完待續(xù),持續(xù)更新中...
視頻教程更新至十八期
第一期_驅動基礎(包含進階篇)
第二期_字符設備基礎
第三期_并發(fā)與競爭
第四期_高級字符設備進階
第五期_中斷
第六期_平臺總線
第七期_設備樹
第八期_設備樹插件
第九期_設備模型
第十期_熱插拔第十一期_pinctrl子系統(tǒng)
第十二期_GPIO子系統(tǒng)
第十三期_輸入子系統(tǒng)
第十四期_單總線
第十五期_I2C
第十六期_SPI
第十七期_串口
第十八期_PWM
未完待續(xù),持續(xù)更新中...
更新內容
教程更新《iTOP-RK3568開發(fā)板驅動開發(fā)指南》V2.2
新增第十五篇_I2C
新增第十六篇_SPI
◆文檔+網(wǎng)盤獲取方式
聯(lián)系旺旺客服加入RK3568售后群
教程目錄? 第一篇 驅動基礎
第1章 前言
第2章 你好!內核源碼
第3章 helloworld 驅動實驗
第4章 內核模塊實驗
第5章 驅動模塊傳參實驗
第6章 內核模塊符號導出實驗
? 第二篇 字符設備基礎
第7章 menuconfig圖形化配置實驗
第8章 驅動模塊編譯進內核實驗
第9章 申請字符設備號實驗
第10章 注冊字符設備實驗
第11章 創(chuàng)建設備節(jié)點實驗
第12章 字符設備驅動框架實驗
第13章 雜項設備驅動實驗
第14章 內核空間與用戶空間數(shù)據(jù)交互實驗
第15章 文件私有數(shù)據(jù)實驗
第16章 一個驅動兼容不同設備實驗
第17章 Linux錯誤處理實驗
第18章 點亮LED燈實驗
? 第三篇 并發(fā)與競爭
第19章 并發(fā)與競爭實驗
第20章 原子操作實驗
第21章 自旋鎖實驗
第22章 自旋鎖死鎖實驗
第23章 信號量實驗
第24章 互斥鎖實驗
? 第四篇 高級字符設備進階
第25章 IO模型引入實驗
第26章 阻塞IO實驗
第27章 非阻塞IO實驗
第28章 IO多路復用實驗
第29章 信號驅動IO實驗
第30章 定時器實驗
第31章 秒字符設備驅動實驗
第32章 Linux內核打印實驗
第33章 llseek定位設備驅動實驗
第34章 IOCTL驅動傳參實驗
第35章 IOCTL地址傳參實驗
第36章 封裝驅動API接口實驗
第37章 優(yōu)化驅動穩(wěn)定性和效率實驗
第38章 驅動調試方法實驗
? 第五篇 中斷
第39章 中斷實驗
第40章 中斷申請流程
第41章 中斷下文tasklet實驗
第42章 軟中斷實驗
第43章 特殊的軟中斷tasklet分析實驗
第44章 共享工作隊列實驗
第45章 自定義工作隊列實驗
第46章 延遲工作實驗
第47章 工作隊列傳參實驗
第48章 并發(fā)管理工作隊列實驗
第49章 中斷線程化實驗
?第六篇 平臺總線
第50章 平臺總線模型介紹
第51章 注冊platform設備實驗
第52章 注冊platform驅動實驗
第53章 probe函數(shù)編寫實驗
第54章 點亮LED燈實驗(平臺總線)
? 第七篇 設備樹
第55章 初識設備樹
第56章 設備樹基本語法
第57章 實例分析:中斷
第58章 實例分析:時鐘
第59章 實例分析:CPU
第60章 實例分析:GPIO
第61章 實例分析:pinctrl
第62章 dtb文件格式講解
第63章 dtb展開成device_node實驗
第64章 device_node轉換成platform_device實驗
第65章 設備樹下platform_device和platform_driver匹配實驗
第66章 of操作函數(shù)實驗:獲取設備樹節(jié)點
第67章 of操作函數(shù)實驗:獲取屬性
第68章 ranges屬性實驗
第69章 of操作函數(shù)實驗:獲取中斷資源
第70章 參考文檔:設備樹bindings
? 第八篇 設備樹插件
第71章 設備樹插件介紹
第72章 設備樹插件語法和編譯實驗
第73章 設備樹插件使用實驗
第74章 虛擬文件系統(tǒng)ConfigFS介紹
第75章 ConfigFS的核心數(shù)據(jù)結構
第76章 注冊configfs子系統(tǒng)實驗
第77章 注冊group容器實驗
第78章 用戶空間創(chuàng)建item實驗
第79章 完善drop和release函數(shù)實驗
第80章 注冊attribute實驗
第81章 實現(xiàn)多級目錄實驗
第82章 移植設備樹插件驅動實驗
第83章 設備樹插件驅動分析實驗
第84章設備樹插件參考資料介紹
?第九篇 設備模型
第85章設備模型基本框架-kobject和kset
第86章 創(chuàng)建kobject實驗
第87章 創(chuàng)建kset實驗
第88章 為什么要引入設備模型
第89章 進一步探究設備模型
第90章 虛擬文件系統(tǒng)sysfs目錄層次分析實驗
第91章 什么是引用計數(shù)器
第92章 引用計數(shù)器實驗
第93章 kobject釋放實例分析實驗
第95章 創(chuàng)建屬性文件并實現(xiàn)讀寫功能實驗1
第96章 優(yōu)化屬性文件讀寫函數(shù)實驗
第97章 創(chuàng)建屬性文件并實現(xiàn)讀寫功能實驗2
第98章 創(chuàng)建多個屬性文件的簡便方法
第99章 注冊一個自己的總線實驗
第100章 在總線目錄下創(chuàng)建屬性文件實驗
第101章 總線注冊流程理論分析實驗
第102章 platform總線注冊流程實例分析實驗
第103章 在總線下注冊設備實驗
第104章 設備注冊流程分析實驗
第105章 platform總線設備注冊流程實例分析實驗
第106章 為什么注冊總線之前要先注冊設備實例分析實驗
第107章 在自己的總線下注冊驅動實驗
第108章 驅動注冊流程分析實驗
第109章 probe函數(shù)執(zhí)行流程分析實驗
第110章 加載驅動和加載設備先后順序分析實驗
第111章 platform總線注冊驅動流程實例分析實驗
?第十篇 熱插拔
第112章 熱插拔簡介
第113章 內核是如何發(fā)送事件到用戶空間
第114章 內核發(fā)送事件到用戶空間的方法
第115章 完善kset_uevent_ops結構體實驗
第116章 netlink監(jiān)聽廣播信息實驗
第117章 uevent_helper實驗
第118章 使用udev掛載U盤和T卡實驗
第119章使用mdev掛載U盤和T卡實驗
? 第十一篇pinctrl子系統(tǒng)
第120章 pinctrl子系統(tǒng)的引入
第121章 pinctrl probe函數(shù)講解
第122章pinctrl 子系統(tǒng)函數(shù)操作集
第123章dt_node_to_map函數(shù)分析
第124章pinctrl_bind_pins函數(shù)
第125章 add_setting函數(shù)分析
第126章 通過pinctrl狀態(tài)設置引腳復用實驗
第127章 猜想驗證
? 第十二篇 GPIO子系統(tǒng)
第128章 GPIO入門實驗
第129章 GPIO控制和操作實驗
第130章 GPIO的調試方法
第131章 GPIO子系統(tǒng)API函數(shù)的引入
第132章 獲取單個gpio描述實驗
第133章 GPIO操作函數(shù)實驗
第134章 三級節(jié)點操作函數(shù)實驗
第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結合實驗
第136章 實戰(zhàn):實現(xiàn)動態(tài)切換引腳復用功能
? 第十三篇 輸入子系統(tǒng)
第137章 初識input子系統(tǒng)
第138章 輸入子系統(tǒng)框架
第139章 輸入子系統(tǒng)數(shù)據(jù)結構介紹
第140章 認識內核中輸入子系統(tǒng)的源碼和裁剪
第141章 編寫最簡單的設備驅動層代碼
第142章 從最簡單的設備驅動代碼入手分析匹配規(guī)則
第143章 多對多的匹配關系分析
第144章 繼續(xù)完善設備驅動層代碼
第145 章 輸入子系統(tǒng)上報數(shù)據(jù)格式分析
第146章 通用事件處理層connect函數(shù)分析
第147章 通用事件處理層分配設備號分析
第148章 通用事件處理層open函數(shù)分析
第149章 通用事件處理層數(shù)據(jù)上報流程分析
第150章 通用事件處理層event函數(shù)分析
第151章 通用事件處理層read和write函數(shù)分析
第152章 核心層代碼分析
第153章 固定輸入設備的設備節(jié)點實驗
第154章 固定usb設備的設備節(jié)點實驗
? 第十四篇 單總線
第155章 單總線簡介
第156章 DS18B20介紹
第157章 DS18B20驅動框架編寫
第158章 DS18B20編寫字符設備驅動框架
第159章 DS18B20驅動設備樹
第160章 DS18B20驅動復位時序編寫
第161章 DS18B20驅動寫時序編寫
第162章 DS18B20驅動讀時序編寫
第163章 DS18B20驅動溫度讀取編寫
163.4 運行測試
第164章 DS18B20驅動使用ioctl設置分辨率
第165章 DS18B20驅動使用ioctl讀取分辨率
? 第十五篇 I2C
第166章 初步認識I2C
166.1 I2C總線的由來
166.2 I2C硬件連接
166.3 I2C基礎知識
166.4 iTOP-RK3568開發(fā)板上的I2C接口
第167章 I2C上拉電阻
167.1 接上拉電阻的作用
167.2 I2C上拉電阻阻值計算
第168章 I2C通信時序介紹
168.1 起始信號和終止信號
168.2 數(shù)據(jù)格式
168.3 應答信號和非應答信號
168.4 讀寫方向
第169章I2C子系統(tǒng)框架學習
169.1 I2C設備驅動層
169.2 I2C適配器驅動層
169.3 I2C核心層
第170章I2C client代碼編寫(設備樹)
170.1 I2C設備樹分析
170.2 取消FT5X06驅動和設備樹
170.3 從0開始編寫FT5X06 client
第172章I2C 驅動框架編寫
171.1 注冊I2C設備
171.2驅動程序的編寫
171.3 運行測試
171.3.1 編譯驅動程序
171.3.2 運行測試
第172章 使用C文件編寫I2C client代碼
172.1 I2C硬件資源描述
172.1.1 i2c_get_adapter函數(shù)
172.1.2 i2c_put_adapter函數(shù)
172.1.3 i2c_new_device函數(shù)
172.1.4 i2c_board_info 結構體
172.2驅動程序的編寫
172.3 運行測試
172.3.1 編譯驅動程序
172.3.2 運行測試
第173章 完善FT5X06設備節(jié)點和驅動
173.1 完善FT5X06設備節(jié)點
173.2 完善FT5X06驅動
173.3 運行測試
173.3.1 編譯驅動程序
173.3.2 運行測試
第174章 FT5X06驅動程序I2C通信部分編寫
174.1 I2C通信
174.2 完善I2C通信部分驅動
173.3 運行測試
173.3.1 編譯驅動程序
173.3.2 運行測試
第175章 i2c_transfer函數(shù)解析
第176章 通過邏輯分析儀認識I2C波形
176.1寫操作
176.2讀操作
第177章 FT5X06數(shù)據(jù)上報部分驅動程序編寫
177.1 完善輸入上報部分驅動
177.2 運行測試
177.2.1 編譯驅動程序
177.2.2 運行測試
177.3 上報數(shù)據(jù)分析
177.4 編寫上報應用測試程序
177.5 運行測試
177.5.2 編譯應用程序
177.5.3 運行測試
第178章 i2c_client結構體分析
178.1 非設備樹I2C client分析
178.2 設備樹I2C client分析
第179章在應用程序中使用I2C
179.1 ioctl控制I2C
179.2 編寫應用測試程序
179.3 運行測試
179.3.2 編譯應用程序
179.3.3 運行測試
179.4 通用I2C驅動講解
179.5 編寫應用測試程序
179.3 運行測試
179.3.2 編譯應用程序
179.3.3 運行測試
第180章 I2C Tools工具講解
180.1 I2C Tools工具的下載和安裝
180.2 I2C Tools工具的使用
180.2.1 i2cdetect
180.2.2 i2cdump
180.2.3 i2cset
180.2.4 i2cget
180.2.5 i2ctransfer
第181章 使用GPIO模擬I2C驅動
181.1 設備樹的修改
181.2編寫驅動程序
181.2.1 編寫驅動框架
181.2.2 編寫起始和終止信號代碼
181.2.3 編寫發(fā)送和接收應答信號代碼
181.2.4 編寫發(fā)送和接收數(shù)據(jù)函數(shù)
181.2.5 編寫FT5X06寄存器讀寫函數(shù)
181.3運行測試
181.3.1 編譯驅動程序
181.3.2 運行測試
第182章 使用Linux中默認的模擬I2C驅動程序
182.1 修改默認配置文件
182.2 完善設備樹
182.3編寫驅動程序
182.4運行測試
182.4.1 編譯驅動程序
182.4.2 運行測試
第183章 SMBus總線介紹
183.1 什么是SMBus總線?
183.2 SMBus和I2C的區(qū)別
183.3 SMBus總線軟件實現(xiàn)
183.4 SMBus總線API函數(shù)
? 第十六篇 SPI
第184章 初步認識SPI
184.1 SPI基礎知識
184.2 SPI硬件連接
184.3 SPI通信原理
184.4 SPI極性和相位
184.5 iTOP-RK3568處理器中的SPI接口
184.6 實驗硬件mcp2515介紹
第185章 SPI子系統(tǒng)框架
185.1 SPI設備驅動層
185.2 SPI適配器驅動層
185.3 SPI核心層
第186章 通用SPI外設代碼框架編寫
186.1 設備樹的完善
186.2 注冊SPI設備
186.3 編寫driver部分
186.4 運行測試
186.4.1 編譯驅動程序
186.4.2 運行測試
186.5 深入分析
第187章 mcp2515驅動編寫:注冊字符設備
187.1 驅動程序編寫
187.2 運行測試
187.2.1 編譯驅動程序
187.2.2 運行測試
第188章 mcp2515驅動編寫:復位函數(shù)
188.1 理論分析
188.2 SPI通信流程
第189章 mcp2515驅動編寫:讀寄存器函數(shù)
189.1 理論分析
189.2 驅動程序編寫
189.3 運行測試
189.3.1 編譯驅動程序
189.3.2 運行測試
第190章 配置模式下寄存器的配置
190.1 CNF1、CNF2和CNF3寄存器配置
190.2 RXB0CTRL寄存器配置
190.3 CANINTE寄存器配置
190.4 完善寫寄存器函數(shù)
190.5 位修改指令和屏蔽字節(jié)
第191章 mcp2515驅動編寫:修改工作模式
191.1 理論分析
191.2 驅動程序編寫
191.3 運行測試
191.3.1 編譯驅動程序
191.3.2 運行測試
第192章 mcp2515驅動編寫:完善write和read函數(shù)
192.1 編寫mcp2515寫函數(shù)
192.2編寫mcp2515讀函數(shù)
192.3 實驗程序編寫
192.3.1 編寫驅動程序
192.3.2 編寫測試APP
192.4 運行測試
192.4.1 編譯驅動程序
192.4.2 編譯應用程序
192.4.2 運行測試
第193章 Linux中通用SPI設備驅動
193.1 內核和設備樹配置
193.2 spidev_test工具使用
193.3 應用程序中如何使用SPI
193.4 運行測試
193.4.1 編譯應用程序
193.4.2 運行測試
第194章 如何在Linux中使用模擬SPI
194.1 內核和設備樹配置
194.2 運行測試
第195章 實踐:移植官方mcp2515驅動
195.1 內核和設備樹配置
195.2 運行測試
? 驅動基礎-進階篇
進階1 編譯進內核的驅動系統(tǒng)是如何運行的?
進階2 讓驅動快一點被加載實驗
進階3 驅動代碼使用Makefile的宏
進階4 內核是如何運行ko文件的_insmod
進階5 自定義實現(xiàn)insmod命令實驗
進階6 內核運行ko文件實驗——系統(tǒng)調用
進階7 向系統(tǒng)中添加一個系統(tǒng)調用
進階8 內核運行ko文件總結
*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。