RK3399平台入门到精通系列讲解 - 总目录
Posted 内核笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RK3399平台入门到精通系列讲解 - 总目录相关的知识,希望对你有一定的参考价值。
总目录
欢迎大家来到内核笔记的《RK3399
平台开发入门到精通系列讲解》,开始前博主先列出RK3399
平台学习的大纲,同时这也可以作为大家学习RK3399
内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:
更新说明
此系列已更新五年,将近600
篇,对现有文章内容进行优化和勘误,已迫在眉睫,故每周除了新增新知识文章输出,现有文章也将进行维护完善。
学前必读
⭐RK3399平台入门到精通系列讲解(导读篇)前言
RK3399平台入门到精通系列讲解(导读篇)使用到的工具
RK3399平台入门到精通系列讲解(导读篇)资料下载与介绍
RK3399平台入门到精通系列讲解(导读篇)RK3399平台介绍
文章目录
一、Linux内核开发篇
我们在实际产品的研发过程中,比如手机项目研发或者车载、监控等嵌入式产品的研发,难免要编写驱动或者系统优化,那么常常会遇到一些问题。如果对内核了解很透彻,解决问题的速度也会明显提升。
🎓 1、内核入门篇
📢本篇章是读者在阅读后续章节之前必须掌握的一些基础知识,包括对Linux
内核的初步了解、对高效阅读源代码方法的熟练掌握、内核的一些辅助函数、内核一些基础机制、并会对字符设备驱动程序、平台设备驱动程序、Linux
驱动模型进介绍。
RK3399平台开发系列讲解(内核入门篇)1.1、如何通过sysfs
清楚了解设备的系统状况?
RK3399平台开发系列讲解(内核入门篇)1.2、如何高效的阅读Linux
内核设备驱动?
RK3399平台开发系列讲解(内核入门篇)1.3、从内核的角度看外设芯片的驱动
RK3399平台开发系列讲解(内核入门篇)1.4、如何写代码才能够让CPU
执行得更快?
RK3399平台开发系列讲解(内核入门篇)1.5、内核编译机制分析
RK3399平台开发系列讲解(内核入门篇)1.6、图解字符驱动模块设计思路
RK3399平台开发系列讲解(内核入门篇)1.7、module_init
的优先级
RK3399平台开发系列讲解(内核入门篇)1.8、IOCTL
的用法详解
RK3399平台开发系列讲解(内核入门篇)1.9、Linux
的设备驱动管理之内核对象(Kernel object
)机制
RK3399平台开发系列讲解(内核入门篇)1.10、bus_type
、device
、device_driver
结构体的关系
RK3399平台开发系列讲解(内核入门篇)1.11、Platform
总线驱动详解
RK3399平台开发系列讲解(内核入门篇)1.12、Platfrom
设备与驱动注册
RK3399平台开发系列讲解(内核入门篇)1.13、Platfrom
设备与驱动的匹配规则介绍
RK3399平台开发系列讲解(内核入门篇)1.14、Class
设备大管家
RK3399平台开发系列讲解(内核入门篇)1.15、devres_add
添加设备资源
RK3399平台开发系列讲解(内核入门篇)1.16、设备资源分配和释放
RK3399平台开发系列讲解(内核入门篇)1.17、proc
文件系统介绍与分析
RK3399平台开发系列讲解(内核入门篇)1.18、sys
目录详解及介绍
RK3399平台开发系列讲解(内核入门篇)1.19、mdev
动态更新设备节点及动态挂着U盘
RK3399平台开发系列讲解(内核入门篇)1.20、container_of
获取结构体首地址原理
RK3399平台开发系列讲解(内核入门篇)1.21、内核定时器timer_list
RK3399平台开发系列讲解(内核入门篇)1.22、消息传递Netlink
介绍
RK3399平台开发系列讲解(内核入门篇)1.23、dump_stack
实现分析
RK3399平台开发系列讲解(内核入门篇)1.24、系统CPU
性能指标有哪些?
RK3399平台开发系列讲解(内核入门篇)1.25、内核线程的创建
RK3399平台开发系列讲解(内核入门篇)1.26、什么是系统调用
RK3399平台开发系列讲解(内核入门篇)1.27、Linux
中链表的使用与解析
RK3399平台开发系列讲解(内核入门篇)1.28、Priority List
(优先级链表)
RK3399平台开发系列讲解(内核入门篇)1.29、什么是队列?
RK3399平台开发系列讲解(内核入门篇)1.30、结构体详解
RK3399平台开发系列讲解(内核入门篇)1.31、指针详解
RK3399平台开发系列讲解(内核入门篇)1.32、CPU
是如何执行任务的?
RK3399平台开发系列讲解(内核入门篇)1.33、内核启动流程
RK3399平台开发系列讲解(内核入门篇)1.34、什么是系统调用?
RK3399平台开发系列讲解(内核入门篇)1.35、内核空间布局
RK3399平台开发系列讲解(内核入门篇)1.36、Kthreadd线程
RK3399平台开发系列讲解(内核入门篇)1.37、内核栈
RK3399平台开发系列讲解(内核入门篇)1.38、Systemd 系统启动流程
RK3399平台开发系列讲解(内核入门篇)1.39、函数入栈
RK3399平台开发系列讲解(内核入门篇)1.40、Docker
RK3399平台开发系列讲解(内核入门篇)1.41、内核通知链
🎓2、内核调试篇
📢本篇将介绍Linux
内核调试的工具和技巧,以及内核开发者常用的调试工具,例如:动态打印、printk
、dump_stack
、devmem
、usbmon
、ethtool
、strace
等工具的使用。
RK3399平台开发系列讲解(内核调试篇)2.1、如何使用dynamic debug
动态打印调试
RK3399平台开发系列讲解(内核调试篇)2.2、如何使用dump_stack
分析函数调用关系
RK3399平台开发系列讲解(内核调试篇)2.3、休眠唤醒standby
调试指南
RK3399平台开发系列讲解(内核调试篇)2.4、如何创建一个proc
节点供上层app
调试使用
RK3399平台开发系列讲解(内核调试篇)2.5、网卡PHY
的基本调试手段汇总
RK3399平台开发系列讲解(内核调试篇)2.6、devmem
直接读写寄存器进行调试
RK3399平台开发系列讲解(内核调试篇)2.7、USB Debugging
工具usbmon
使用介绍
RK3399平台开发系列讲解(内核调试篇)2.8、Linux Kernel Printk
RK3399平台开发系列讲解(内核调试篇)2.9、USB
抓包软件usbmon
报文解析
RK3399平台开发系列讲解(内核调试篇)2.10、ethtool
工具的移植及解析
RK3399平台开发系列讲解(内核调试篇)2.11、SPI
总线的验证方法
RK3399平台开发系列讲解(内核调试篇)2.12、ioremap
及mmap
映射物理地址操作寄存器
RK3399平台开发系列讲解(内核调试篇)2.13、利用debugfs
调试
RK3399平台开发系列讲解(内核调试篇)2.14、USB
逻辑分析仪报文分析
RK3399平台开发系列讲解(内核调试篇)2.15、Realtek
千兆PHYRTL8211FS
相关寄存器操作
RK3399平台开发系列讲解(内核调试篇)2.16、Linux kernel
中计算代码运行时间
RK3399平台开发系列讲解(内核调试篇)2.17、添加Sysfs
节点(kobject
和kset
)
RK3399平台开发系列讲解(内核调试篇)2.18、通过/proc/driver/rtc
节点读取时间
RK3399平台开发系列讲解(内核调试篇)2.19、strace
跟踪器的使用
RK3399平台开发系列讲解(内核调试篇)2.20、Crash dmesg
日志分析
RK3399平台开发系列讲解(内核调试篇)2.21、/sys/class/gpio
调试
RK3399平台开发系列讲解(内核调试篇)2.22、I2C tools
的使用
RK3399平台开发系列讲解(内核调试篇)2.23、使用fdisk
调试mmc
块设备
RK3399平台开发系列讲解(内核调试篇)2.24、使用iperf
进行吞吐量测试
RK3399平台开发系列讲解(内核调试篇)2.25、USB
设备掉口问题的定位方法汇总
RK3399平台开发系列讲解(内核调试篇)2.26、EMMC
相关debug
日志的打开
RK3399平台开发系列讲解(内核调试篇)2.27、SD
等存储设备驱动常用调试方法
RK3399平台开发系列讲解(内核调试篇)2.28、以太网PHY
调试方法
RK3399平台开发系列讲解(内核调试篇)2.29、PCIe
debug
方法
RK3399平台开发系列讲解(内核调试篇)2.30、如何在Linux kernel
代码中获取当前进程的信息
RK3399平台开发系列讲解(内核调试篇)2.31、如何开启瑞芯微的I2C
设备探测工具
RK3399平台开发系列讲解(内核调试篇)2.32、ALSA
库的移植及测试命令
RK3399平台开发系列讲解(内核调试篇)2.33、stty
设置串口波特率参数
RK3399平台开发系列讲解(内核调试篇)2.34、DRM
架构下如何点亮一块屏
RK3399平台开发系列讲解(内核调试篇)2.35、CPU
利用率中softirq
飙高情况分析
RK3399平台开发系列讲解(内核调试篇)2.36、Linux
性能工具有哪些?
RK3399平台开发系列讲解(内核调试篇)2.37、如何分析性能问题?
RK3399平台开发系列讲解(内核调试篇)2.38、使用Bus Hound
抓USB
设备数据包
RK3399平台开发系列讲解(内核调试篇)2.39、USB
设备描述符分析工具-UsbTreeView
RK3399平台开发系列讲解(内核调试篇)2.40、如何分析Page Cache
产生的问题
RK3399平台开发系列讲解(内核调试篇)2.41、ptrace
RK3399平台开发系列讲解(内核调试篇)2.42、什么是动态追踪调试?
RK3399平台开发系列讲解(内核调试篇)2.43、CPU
使用率过高怎么排查?
RK3399平台开发系列讲解(内核调试篇)2.44、使用proc
文件系统导出信息
RK3399平台开发系列讲解(内核调试篇)2.45、debugfs API
汇总
…
🎓3、内核设备树篇
📢设备树的使用,使得硬件的细节可以直接通过DTB
传递给Linux
,从而不再需要在内核中进行大量冗余的编码,故本篇章将重点介绍设备树的原理,以及讲解RK3399
平台中i2c
、spi
、uart
等总线的设备树配置案例。
RK3399平台开发系列讲解(内核设备树原理)3.1、设备树(Device Tree
)的由来
RK3399平台开发系列讲解(内核设备树原理)3.2、图解Kernel Device Tree
(设备树)的使用
RK3399平台开发系列讲解(内核设备树原理)3.3、设备树二进制文件DTB
解析
RK3399平台开发系列讲解(内核设备树原理)3.4、设备树dtb
信息转化为device_node
结构
RK3399平台开发系列讲解(内核设备树原理)3.5、DTS
架构下 Device
与 Driver
匹配流程
RK3399平台开发系列讲解(内核设备树原理)3.6、内核对设备树的处理
RK3399平台开发系列讲解(内核设备树原理)3.7、设备树的解析of
函数介绍
RK3399平台开发系列讲解(内核设备树原理)3.8、DTB
的基本调试方法
RK3399平台开发系列讲解(内核设备树原理)3.9、内核启动阶段获得dtb位置指针过程介绍
RK3399平台开发系列讲解(内核设备树使用)3.9、UART
设备树配置说明
RK3399平台开发系列讲解(内核设备树使用)3.10、ADC
驱动树配置说明
RK3399平台开发系列讲解(内核设备树使用)3.11、I2C
设备树配置说明
RK3399平台开发系列讲解(内核设备树使用)3.12、 SPI
设备树配置说明
RK3399平台开发系列讲解(内核设备树使用)3.13、USB
驱动树配置说明(待更新)
RK3399平台开发系列讲解(内核设备树使用)3.14、MMC
驱动树配置说明(待更新)
RK3399平台开发系列讲解(内核设备树使用)3.15、以太网
驱动树配置说明(待更新)
RK3399平台开发系列讲解(内核设备树使用)3.16、瑞芯微显示系统DRM
设备树解析
RK3399平台开发系列讲解(内核设备树使用)3.17、开机logo device tree
配置说明
RK3399平台开发系列讲解(内核设备树使用)3.18、多屏抢占及热拔插设备树配置
RK3399平台开发系列讲解(内核设备树使用)3.19、Rockchip PWM Backlight
设备树配置与驱动分析
RK3399平台开发系列讲解(内核设备树使用)3.20、 GT9XX
触摸屏设备树配置与内核解析
RK3399平台开发系列讲解(内核设备树使用)3.21、 设备树(DTS
)添加版本信息
RK3399平台开发系列讲解(内核设备树使用)3.22、富瀚ISP FH8553
设备树说明及其驱动解析
RK3399平台开发系列讲解(内核设备树使用)3.23、创建声卡方式simple-card framework
机制分析
RK3399平台开发系列讲解(内核设备树使用)3.24、设备树中的Component System
介绍
RK3399平台开发系列讲解(内核设备树使用)3.25、WIFI
设备树的解析
…
🎓4、低速设备驱动篇
📢本篇将介绍低速设备总线驱动:GPIO
、PINCTL
、I2C
、SPI
、UART
、IIO
RK3399平台开发系列讲解(GPIO
子系统)4.1、GPIO
子系统框架图解
RK3399平台开发系列讲解(GPIO
子系统)4.2、GPIO
子系统之描述符的获取
RK3399平台开发系列讲解(GPIO
子系统)4.3、GPIO
子系统源码分析(待更新)
RK3399平台开发系列讲解(GPIO
子系统)4.4、GPIO
子系统与Pinctrl
子系统的交互(待更新)
RK3399平台开发系列讲解(Pinctrl
子系统)4.5、Pinctrl
子系统详解
RK3399平台开发系列讲解(Pinctrl
子系统)4.6、pinctrl
子系统之框架组成
RK3399平台开发系列讲解(Pinctrl
子系统)4.7、pinctrl
子系统之图解相关数据结构
RK3399平台开发系列讲解(Pinctrl
子系统)4.8、pinctrl
子系统之图解注册过程
RK3399平台开发系列讲解(Pinctrl
子系统)4.9、pinctrl
子系统之相关ops
操作集
RK3399平台开发系列讲解(Pinctrl
子系统)4.10、pinctrl
子系统之创建与设备树的解析
RK3399平台开发系列讲解(Pinctrl
子系统)4.11、pinctrl
子系统之与dev
的绑定
RK3399平台开发系列讲解(SPI
子系统)4.12、SPI
通信过程介绍
RK3399平台开发系列讲解(SPI
子系统)4.13、SPI子系统驱动框架详解
RK3399平台开发系列讲解(SPI
子系统)4.13、SPI
子系统之数据结构的抽象
RK3399平台开发系列讲解(SPI
子系统)4.14、SPI
子系统之数据结构的解析
RK3399平台开发系列讲解(SPI
子系统)4.15、SPI
子系统之驱动框架分析
RK3399平台开发系列讲解(SPI
子系统)4.16、SPI
子系统之数据的传输图示
RK3399平台开发系列讲解(SPI
子系统)4.17、SPI
子系统之spidev
驱动分析
RK3399平台开发系列讲解(SPI
子系统)4.18、SPI
子系统之主机驱动与外设驱动分离模型
RK3399平台开发系列讲解(I2C
子系统)4.19、I2C通信过程介绍
RK3399平台开发系列讲解(I2C
子系统)4.20、I2C协议详解
RK3399平台开发系列讲解(I2C
子系统)4.21、I2C物理总线详解
RK3399平台开发系列讲解(I2C
子系统)4.22、I2C驱动详解
RK3399平台开发系列讲解(I2C
子系统)4.23、I2C
子系统之数据结构的抽象
RK3399平台开发系列讲解(I2C
子系统)4.24、I2C
子系统之框架图解
RK3399平台开发系列讲解(I2C
子系统)4.25、I2C
子系统之i2c adapter
层的注册过程
RK3399平台开发系列讲解(I2C
子系统)4.26、I2C
子系统之i2c_new_device
过程解析
RK3399平台开发系列讲解(I2C
子系统)4.27、I2C
子系统之读写流程
RK3399平台开发系列讲解(I2C
子系统)4.28、I2C
子系统之读写相关数据结构关系
RK3399平台开发系列讲解(UART
子系统)4.29、TTY
子系统之终端设备的抽象
RK3399平台开发系列讲解(UART
子系统)4.30、TTY
子系统之数据结构关系
RK3399平台开发系列讲解(UART
子系统)4.31、TTY
子系统之系统框架
RK3399平台开发系列讲解(UART
子系统)4.32、串口子系统之uart_driver
结构详解
RK3399平台开发系列讲解(UART
子系统)4.33、串口子系统之底层uart_driver
注册进TTY
子系统
RK3399平台开发系列讲解(Input
子系统)4.34、输入系统之设备数据结构体的抽象(待更新)
RK3399平台开发系列讲解(Input
子系统)4.35、输入系统之GPIO按键驱动程序分析(待更新)
RK3399平台开发系列讲解(Input
子系统)4.36、输入系统之触摸屏驱动程序分析(待更新)
…
🎓5、高速设备驱动篇
📢本篇将介绍高速设备总线驱动:以太网
、PCIE
、USB
、MMC
RK3399平台开发系列讲解(以太网)5.1、MDIO Interface
Clause 45
与Clause 22
详解
RK3399平台开发系列讲解(以太网)5.2、以太网控制及通信接口梳理
RK3399平台开发系列讲解(以太网)5.3、控制接口MDIO
子系统之结构体抽象
RK3399平台开发系列讲解(以太网)5.4、MDIO
总线上phy_device
与phy_driver
的匹配
RK3399平台开发系列讲解(以太网)5.5、mii_bus
的注册mdiobus_register
函数解析
RK3399平台开发系列讲解(以太网)5.6、以太网PHY
的状态机
RK3399平台开发系列讲解(以太网)5.7、MDIO
总线接口驱动详解
RK3399平台开发系列讲解(以太网)5.8、网卡操作描述结构:struct net_device_ops
RK3399平台开发系列讲解(以太网)5.9、虚拟网卡设备之VLAN
RK3399平台开发系列讲解(以太网)5.10、Linux
网桥工作原理与实现
RK3399平台开发系列讲解(以太网)5.11、PHY
工作的代码流程
RK3399平台开发系列讲解(PCI/PCI-E)5.11、PCI
设备的内存是如何访问的?
RK3399平台开发系列讲解(PCI/PCI-E)5.12、如何对PCI
设备进行配置操作
RK3399平台开发系列讲解(PCI/PCI-E)5.13、PCI
总线信号定义
RK3399平台开发系列讲解(PCI/PCI-E)5.14、PCI
总线地址空间介绍及配置
RK3399平台开发系列讲解(PCI/PCI-E)5.15、PCIe
接口及数据包的解析
RK3399平台开发系列讲解(PCI/PCI-E)5.16、PCIe
对PCI
配置空间的扩展
RK3399平台开发系列讲解(PCI/PCI-E)5.17、PCIe
体系结构
RK3399平台开发系列讲解(PCI/PCI-E)5.18、PCIe
事务包(TLP
)详解
RK3399平台开发系列讲解(PCI/PCI-E)5.19、PCIe
路由方式详解
RK3399平台开发系列讲解(PCI/PCI-E)5.20、PCIe
各类接口简介
RK3399平台开发系列讲解(PCI/PCI-E)5.21、PCI总线的驱动注册
RK3399平台开发系列讲解(PCI/PCI-E)5.22、PCI总线数据结构
RK3399平台开发系列讲解(PCI/PCI-E)5.23、PCI RC枚举过程分析(待更新)
RK3399平台开发系列讲解(PCI/PCI-E)5.24、PCI EP 驱动分析(待更新)
RK3399平台开发系列讲解(PCI/PCI-E)5.25、PCI EP 驱动分析(待更新)
RK3399平台开发系列讲解(PCI/PCI-E)5.26、PCI EP 驱动分析(待更新)
RK3399平台开发系列讲解(USB设备驱动)5.27、USB设备架构及设备描述符
RK3399平台开发系列讲解(USB设备驱动)5.28、USB 协议标准
RK3399平台开发系列讲解(USB设备驱动)5.29、USB Type C结构图
RK3399平台开发系列讲解(USB设备驱动)5.30、usb gadget configfs 的原理
RK3399平台开发系列讲解(USB设备驱动)5.31、使用usb gadget configfs配置USB功能
RK3399平台开发系列讲解(USB设备驱动)5.32、USB设备的插入检测
RK3399平台开发系列讲解(USB设备驱动)5.33、Gadget Function API
RK3399平台开发系列讲解(USB设备驱动)5.34、UDC设备控制器驱动代码详解
RK3399平台开发系列讲解(USB设备驱动)5.35、UDC和gadget_driver绑定
RK3399平台开发系列讲解(USB设备驱动)5.36、Gadget框架对Device/Driver的管理
RK3399平台开发系列讲解(USB设备驱动)5.37、Gadget Device驱动详解
RK3399平台开发系列讲解(USB设备驱动)5.38、USB设备端中断程序介绍
RK3399平台开发系列讲解(USB设备驱动)5.39、Gadget Driver(Configfs)详解
RK3399平台开发系列讲解(USB设备驱动)5.40、Gadget Driver (Legacy)
RK3399平台开发系列讲解(USB设备驱动)5.41、ECM Function Driver
代码分析
RK3399平台开发系列讲解(USB设备驱动)5.42、USB
枚举过程分析
RK3399平台开发系列讲解(USB设备驱动)5.43、USB BC1.2
充电协议学习
RK3399平台开发系列讲解(USB设备驱动)5.44、URB Status
分析
RK3399平台开发系列讲解(USB主机驱动)5.45、USB主机控制器驱动
RK3399平台开发系列讲解(USB主机驱动)5.46、USB主机控制器驱动数据结构体
RK3399平台开发系列讲解(USB主机驱动)5.47、USB主机枚举过程分析
RK3399平台开发系列讲解(MMC)5.48、Secure Digital(SD) Host Controller驱动分析之硬件电路与MMC协议介绍
RK3399平台开发系列讲解(MMC)5.49、Secure Digital(SD) Host Controller驱动分析之MMC子系统的组成
RK3399平台开发系列讲解(MMC)5.50、Secure Digital(SD) Host Controller驱动分析之数据结构关系
RK3399平台开发系列讲解(MMC)5.51、Secure Digital(SD) Host Controller驱动分析之相关初始化
RK3399平台开发系列讲解(WIFI)5.52、WIFI
框架组成介绍
RK3399平台开发系列讲解(WIFI)5.53、hostapd
(WIFI AP
模式)配置文件说明
RK3399平台开发系列讲解(WIFI)5.54、什么是IEEE 802.11
系列标准协议
RK3399平台开发系列讲解(WIFI)5.55、sdio wifi
驱动代码流程分析
RK3399平台开发系列讲解(WIFI)5.56、什么是WIFI
无线局域网
…
🎓6、内核驱动外设篇
📢本篇将介绍常见外设的驱动程序。
RK3399平台开发系列讲解(内核驱动外设篇)6.1、热红外传感器模块(MLX90614
)使用介绍
RK3399平台开发系列讲解(内核驱动外设篇)6.2、热成像传感器(MLX90640
)驱动
RK3399平台开发系列讲解(内核驱动外设篇)6.3、RK3399
平台增加红外接收功能
RK3399平台开发系列讲解(内核驱动外设篇)6.4、RK3399
平台增加DHT11
驱动
RK3399平台开发系列讲解(内核驱动外设篇)6.5、音频芯片ES8323
基础知识及设备树相关配置
RK3399平台开发系列讲解(内核驱动外设篇)6.6、ALC5651
声卡驱动调试
RK3399平台开发系列讲解(内核驱动外设篇)6.7、旋钮按键的驱动调试
RK3399平台开发系列讲解(内核驱动外设篇)6.8、视频解码芯片GM7150
驱动的添加
RK3399平台开发系列讲解(内核驱动外设篇)6.9、GT9XX
触摸屏驱动详解
RK3399平台开发系列讲解(内核驱动外设篇)6.10、CAN
转SPI
控制芯片MCP2515
设备树配置
RK3399平台开发系列讲解(内核驱动外设篇)6.11、富瀚ISP
驱动程序记录
RK3399平台开发系列讲解(内核驱动外设篇)6.12、PHY
芯片RTL8201F
的基本概念
RK3399平台开发系列讲解(内核驱动外设篇)6.13、add ethernet
(RTL8306MB
) support
RK3399平台开发系列讲解(内核驱动外设篇)6.14、ES8323
音频芯片驱动分析
RK3399平台开发系列讲解(内核驱动外设篇)6.15、通过ES8388
代码驱动理解DPAM
(动态音频电源管理)
RK3399平台开发系列讲解(内核驱动外设篇)6.16、SarADC
& 按键驱动分析
RK3399平台开发系列讲解(内核驱动外设篇)6.17、VOP
驱动解析
RK3399平台开发系列讲解(内核驱动外设篇)6.18、调试笔记显示屏参的三种配置方法
RK3399平台开发系列讲解(内核驱动外设篇)6.19、摄像头OV4689
模组驱动代码分析
RK3399平台开发系列讲解(内核驱动外设篇)6.20、TEA685XA
收音机芯片的驱动
RK3399平台开发系列讲解(内核驱动外设篇)6.21、RK LCD
显示驱动分析(fb和screen 部分程序)
RK3399平台开发系列讲解(内核驱动外设篇)6.22、UVC
介绍及查看日志
RK3399平台开发系列讲解(内核驱动外设篇)6.23、UVC
驱动分析
RK3399平台开发系列讲解(内核驱动外设篇)6.24、DRM
下device resource management
(设备资源管理)
RK3399平台开发系列讲解(内核驱动外设篇)6.25、GT9XX
触摸屏驱动详解
RK3399平台开发系列讲解(内核驱动外设篇)6.26、DM5150
驱动的支持
RK3399平台开发系列讲解(内核驱动外设篇)6.27、加密芯片支持(一)驱动支持
RK3399平台开发系列讲解(内核驱动外设篇)6.28、OV13850 Camera
的移植
RK3399平台开发系列讲解(内核驱动外设篇)6.29、WIFI
的移植
RK3399平台开发系列讲解(内核驱动外设篇)6.30、FLASH
(W25Q128
)的驱动解析
RK3399平台开发系列讲解(内核驱动外设篇)6.31、ALSA
驱动分析
RK3399平台开发系列讲解(内核驱动外设篇)6.32、DM5150
的驱动支持
RK3399平台开发系列讲解(内核驱动外设篇)6.33、触摸屏FT5X06
驱动程序详细分析
RK3399平台开发系列讲解(内核驱动外设篇)6.34、实时时钟芯片AM1805
驱动程序调试
…
🎓7、网络协议栈篇
📢当今是万物互联的5G
时代,网络尤其重要,所以Linux
网络协议栈将在本篇章进行重点讲解,围绕:物理层(MAC
、PHY
)、数据链路层(VLAN
)、网络层(IP
)、传输层(TCP
/UDP
)和应用层进行讲解相关内容的使用及原理。
RK3399平台开发系列讲解(网络篇)7.1、Linux
网络协议栈
RK3399平台开发系列讲解(网络篇)7.2、图解TCP
通信协议
RK3399平台开发系列讲解(网络篇)7.3、图解UDP
协议头
RK3399平台开发系列讲解(网络篇)7.4、FTP wireshark
交互包分析
RK3399平台开发系列讲解(网络篇)7.5、图解HTTP
RK3399平台开发系列讲解(网络篇)7.6、网关
RK3399平台开发系列讲解(网络篇)7.7、ICMP
与ping
:网络侦察兵
RK3399平台开发系列讲解(网络篇)7.8、DHCP
与PXE
:IP
是如何生成的?
RK3399平台开发系列讲解(网络篇)7.9、tcpdump
及Wireshark
工具的使用说明
RK3399平台开发系列讲解(网络篇)7.10、Linux
网络包接收过程的监控
RK3399平台开发系列讲解(网络篇)7.11、图解Linux
网络包接收过程
RK3399平台开发系列讲解(网络篇)7.12、在 Linux
上检查网络的常用工具
RK3399平台开发系列讲解(网络篇)7.13、如何兼顾并发数量与传输速度?
RK3399平台开发系列讲解(网络篇)7.14、Linux
网桥系统相关数据结构
RK3399平台开发系列讲解(网络篇)7.15、网络为什么要分层?
RK3399平台开发系列讲解(网络篇)7.16、使用socket
接口进行网络通信
RK3399平台开发系列讲解(网络篇)7.17、Socket
内核数据结构
RK3399平台开发系列讲解(网络篇)7.18、什么是Socket
套接字?
RK3399平台开发系列讲解(网络篇)7.19、Linux
网络协议栈详解
RK3399平台开发系列讲解(网络篇)7.20、接收网络包从硬件网卡到IP
层的处理(NAPI
)
RK3399平台开发系列讲解(网络篇)7.21、如何提升网络数据包的接收性能
RK3399平台开发系列讲解(网络篇)7.22、select
系统调用源码分析
RK3399平台开发系列讲解(网络篇)7.23、设备驱动程序中poll
函数实现
RK3399平台开发系列讲解(网络篇)7.24、IP
协议源码分析
RK3399平台开发系列讲解(网络篇)7.25、Socket
接口的分层
RK3399平台开发系列讲解(网络篇)7.26、UDP
协议源码分析
RK3399平台开发系列讲解(网络调试)7.27、如何分析TCP
重传问题?
RK3399平台开发系列讲解(网络调试)7.28、如何分析常见的TCP
问题?
RK3399平台开发系列讲解(网络调试)7.29、网络性能工具总结
RK3399平台开发系列讲解(网络调试)7.30、TCP
数据包的发送过程会受什么影响?
RK3399平台开发系列讲解(网络调试)7.31、TCP
连接的建立和断开过程分析
RK3399平台开发系列讲解(网络调试)7.32、什么是网络路由?
RK3399平台开发系列讲解(网络调试)7.33、网络性能优化
RK3399平台开发系列讲解(网络调试)7.34、什么是iptables
RK3399平台开发系列讲解(网络调试)7.35、如何衡量 Linux 的网络性能
RK3399平台开发系列讲解(网络篇)7.36、ARP
协议与邻居子系统剖析
🎓8、Linux I/O 篇
RK3399平台开发系列讲解(I/O篇)8.1、常见的I/O
模型
RK3399平台开发系列讲解(I/O篇)8.2、I/O
操作
RK3399平台开发系列讲解(I/O篇)8.3、Linux
磁盘I/O
是怎么工作的?
RK3399平台开发系列讲解(I/O篇)8.4、怎么才能衡量磁盘的 I/O
性能?
RK3399平台开发系列讲解(I/O篇)8.5、什么是Virtual File System
(虚拟文件系统)
🎓9、Yocto篇
RK3399平台开发系列讲解(Yocto篇)9.1、Yocto
简介
RK3399平台开发系列讲解(系统编译篇)9.1、系统分区表的修改
RK3399平台开发系列讲解(系统编译篇)9.2、系统固件的打包
RK3399平台开发系列讲解(系统编译篇)9.3、make
命令 make
可在 /usr/bin/make
处找到 由于/usr/bin
不在PATH
环境变量中,故无法找到该命令。
RK3399平台开发系列讲解(系统编译篇)9.4、AOSP build
流程分析
RK3399平台开发系列讲解(系统编译篇)9.5、编译时so
库生成不了问题
RK3399平台开发系列讲解(系统编译篇)9.6、安卓开发环境的搭建及编译
🎓10、硬件波形篇
📢本篇章将讲述驱动开发工程师必备的硬件基础,主要分析常见的外设接口与总线的工作方式,包括串口、I2C
、SPI
、USB
、以太网接口、PCI/PCI-E
、SD
和SDIO
等。
RK3399平台开发系列讲解(硬件波形解析篇)10.1、示波器的使用(待更新)
RK3399平台开发系列讲解(硬件波形解析篇)10.2、逻辑分析仪的使用(待更新)
RK3399平台开发系列讲解(硬件波形解析篇)10.3、USB2.0
相关硬件波形(实图)解析
RK3399平台开发系列讲解(硬件波形解析篇)10.4、UART
硬件波形解析
RK3399平台开发系列讲解(硬件波形解析篇)10.5、I2C波形分析(待更新)
RK3399平台开发系列讲解(硬件波形解析篇)10.6、SPI波形分析(待更新)
RK3399平台开发系列讲解(硬件波形解析篇)10.7、以太网波形分析(待更新)
RK3399平台开发系列讲解(硬件波形解析篇)10.8、SDIO波形分析(待更新)
🎓11、电源管理篇
RK3399平台开发系列讲解(低功耗篇)11.1、wakeup events framework
RK3399平台开发系列讲解(低功耗篇)11.2、Runtime Power Management
框架分析
RK3399平台开发系列讲解(低功耗篇)11.3、休眠唤醒基本概念
RK3399平台开发系列讲解(低功耗篇)11.4、休眠唤醒流程
RK3399平台开发系列讲解(电源管理篇)11.5、Regulator
子系统详解
RK3399平台开发系列讲解(电源管理篇)11.6、wakelock
详解
RK3399平台开发系列讲解(电源管理篇)11.7、PM callback
RK3399平台开发系列讲解(电源管理篇)11.8、