这颗芯片在国产板卡里出现得太频繁了:RK3399 六核、双通道、带 Mali-T860,做瘦客户机、工控一体机、广告机、自助终端、边缘盒子的产品经理都绕不开它。但真正让人卡住的往往不是硬件选型,而是 Android 10 这一代的分层变化——HAL 拆得细、Device Tree 绑得紧、SELinux 不再是可选项、VNDK 把厂商实现和框架隔开。写惯 Android 5/6 那一代的驱动代码,搬到 Android 10 上会被编译链和权限策略反复打回。
先弄清楚自己要补哪一块
这不是一门从头讲 C 语言和 Linux 基本命令的课,前提是你已经能看懂 platform driver 的基本骨架,知道 probe、resource、中断注册这些概念,也能在 Linux 下敲通编译脚本。它的价值集中在三处常见缺口:一是从裸机/单片机转过来的工程师,习惯直接操作寄存器,到了内核态不知道怎么用子系统框架表达同一个动作;二是做应用或 Framework 出身、被要求兼一下底层,面对 dts 和 sysfs 不知道从哪下手;三是维护老 BSP 的人,要把 4.x 内核时代的驱动思路更新到 Android 10 的 GKI 前夜。
如果你连设备树语法、GPIO 子系统、pinctrl 的基本用法都还没建立概念,这门课会让你跟得很吃力,建议先把基础补上再回来。
它真正会讲到的主题
- Android 10 驱动分层与加载流程:从内核启动到 init 拉起、再到 HAL 服务注册,一条链路走通,看清楚自己写的代码处在哪一层。
- 设备树在 RK3399 上的组织方式:节点怎么描述、资源怎么被解析、pinctrl 与 GPIO 怎么绑到具体外设,以及改错了会出现什么症状。
- 字符设备与 misc 设备的取舍,file_operations 的实现路径,以及用户态通过设备节点读写时的常见坑。
- 中断处理分上下半部、工作队列与 tasklet 的选择依据,配合 RK3399 的 GIC 中断控制器理解优先级和共享中断。
- Android 特有的约束:SELinux 策略怎么放行设备节点、属性权限如何配置、HAL 接口与 VNDK 边界对驱动暴露方式的影响。
这些内容不是孤立的知识点,它们串起来回答的是同一个问题:一个外设在 Android 10 的板子上从上电到被 App 用到,中间到底经过了什么。
怎么练才不作废
视频看完就忘,是驱动学习里最普遍的结果。可行的做法是每看完一个外设模块,立刻在那块板子上找一个对应的现成节点,把 dts 片段、驱动源码、sysfs 入口三样东西对上号,然后尝试改动其中一个参数,观察行为变化。比如改一个 GPIO 的极性、把一个中断触发方式从上升沿改成双边沿、把打印等级调高,看内核日志里哪些信息变了。这种「改一个变量、看一处现象」的循环,比把整章抄一遍有用得多。
每两三个模块之后,自己做一次小结:这个外设属于哪类子系统、注册时向内核提交了什么、卸载时释放了什么资源。如果能不看资料把这三问答清楚,说明这一块是真的记住了。
学完应该能回答的问题
- 在 RK3399 上新增一个 I2C 从设备,需要动哪几个文件,各自负责什么?
- 驱动加载了但设备节点没出现,你会按什么顺序排查?
- App 访问设备返回权限错误,是 SELinux 还是文件权限的问题,怎么区分?
- Android 10 的 HAL 拆分对你写驱动的方式带来了哪些实际约束?
- 同一个外设在旧内核上能跑,迁到 Android 10 上挂了,最可能卡在哪一步?
能答上这五个问题,说明你已经有能力接手一块 RK3399 板子的外设适配工作,而不是只会跟着视频敲。答不上来的,回头补对应章节,比从头再看一遍省时间。
RK3399 Android 10.0 驱 动开发视频教程
课程推荐
《价值3000元 RK3399 Android 10.0 驱动开发视频教程》RK3399 Android 10.0 驱 动开发视频教程【技能收获】学完可掌握:Linux 运维、网络工程 / CCNP。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。
视频目录(57 节)
* 1 RK3399Android10.0课程介绍-开发环境开发.mp4
* 2 gpioAPK控制及相关权限添加详细介绍.mp4
* 3 第3节RK3399Android10课程之EDP屏理论篇.mp4
* 4 字符设备简单驱动入门.mp4
* 5 字符设备驱动传统写法(1)---驱动编写.mp4
* 6 字符设备驱动传统写法(1)---linux.mp4
* 7 字符设备驱动传统写法(1)--Androidndkjni.mp4
* 8 字符设备驱动传统写法(2)---驱动编写.mp4
* 9 驱动传统写法(2)linux及Androidndkjni.mp4
* 10 字符设备驱动传统写法(3)---驱动编写.mp4
* 11 字符设备驱动传统写法(3)---linux.mp4
* 12 字符设备驱动传统写法(3)--Androidndkjni.mp4
* 13 platform设备驱动及LED操作---驱动编写(1).mp4
* 14 platform设备驱动及LED操作---驱动编写(2).mp4
* 15 platformlinux及Androidndkjni.mp4
* 16 NDKJNIAPK放进Android系统中编译--手工签名.mp4
* 17 JNIAPK放进Android系统中编译--系统编译签名方式.mp4
* 18 直接生成系统权限NDKapk并放进Android系统中编译.mp4
* 19 NDKJNI源码如何放进Android系统中编译并做系统应用.mp4
* 20 EDP屏理论篇.mp4
* 21 EDP屏实操篇.mp4
* 22 EDP屏提高篇.mp4
* 23 MIPI屏理论篇.mp4
* 24 MIPI屏实操篇(1).mp4
* 25 MIPI屏实操篇(2).mp4
* 26 MIPI屏提高篇(1).mp4
* 27 MIPI屏提高篇(2)-时序讲解.mp4
* 28 HDMI屏理论与实操篇.mp4
* 29 HDMI屏提高篇(1)-解析EDID信息并设置默认分辨率.mp4
* 30 HDMI屏提高篇(2)-解析EDID添加新的默认分辨率实操.mp4
* 31 LVDS屏理论概述.mp4
* 32 Backlight背光.mp4
* 33 TP基本篇.mp4
* 34 TP提高篇(1).mp4
* 35 TP提高篇(2).mp4
* 36 Audio基本篇simple-card.mp4
* 37 Audio提高篇(1)-配置讲解.mp4
* 38 Audio提高篇(2)-Audio-route.mp4
* 39 Audio提高篇(3)-声卡调试.mp4
* 40 WIFI实操篇.mp4
* 41 WIFI提高篇.mp4
* 42 Bluetooth实操及总结篇.mp4
* 43 较新版本LTE5GDriverUserGuide讲解.mp4
* 44 老WCDMALTEDriverUserGuide讲解.mp4
* 45 AndroidRILDriverUserGuide讲解.mp4
* 46 4G提高篇(1)-kernel详细驱动添加过程及分析.mp4
* 47 4G提高篇(2)-ril详细添加过程及分析.mp4
* 48 4G提高篇(3)-调试方法.mp4
* 49 ethernet以太网理论与实操篇.mp4
* 50 ethernet以太网提高篇.mp4
* 51 gpio驱动编写及设备节点创建.mp4
* 52 gpio工作队列创建.mp4
* 53 gpioAPK控制及相关权限添加详细介绍-1672152813.mp4
* 54 mipicamera驱动详解.mp4
* 55 mipicamera提高篇-实操与调试详解.mp4
* 56 串口uart调试.mp4
* 57 TFSD卡SDIOEMMC.mp4






