
RK3399平台开发入门到精通系列专栏
文章平均质量分 82
最全最详细的RK3399平台内核、安卓开发系列教程;经过五年的输出和完善打磨,将深奥的内核知识进行分解;作者深入浅出的讲解内核驱动的原理,通过图文并茂,使其通俗易懂;每周必更新至少两篇。
优惠券已抵扣
余额抵扣
还需支付
¥139.00
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
内核笔记
一直从业于半导体行业,曾为Linux内核开源文档社区提交过若干文档。
主要从事Linux、Android相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。
展开
-
RK3399平台入门到精通系列讲解 - 总目录
欢迎大家来到内核笔记的《RK3399平台开发入门到精通系列讲解》,开始前博主先列出RK3399平台学习的大纲,同时这也可以作为大家学习RK3399内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:...原创 2020-11-17 23:20:48 · 97392 阅读 · 205 评论 -
RK3399平台开发系列讲解(内核入门篇)详解内联汇编
📢要深入理解Linux内核中的同步与互斥的实现,需要先了解一下内联汇编:在C函数中使用汇编代码。现代编译器已经足够优秀,大部分的C代码转成汇编码后,效率都很高。但是有些特殊的算法需要我们手工优化,这时就需要手写汇编代码;或是有时需要调用特殊的汇编指令(比如使用ldrex/strex实现互斥访问),这都涉及内联汇编。原创 2024-08-14 22:34:17 · 342 阅读 · 0 评论 -
RK3399平台开发系列讲解(内核入门篇)字符设备之主设备和次设备
🚀。原创 2024-08-13 22:32:48 · 311 阅读 · 0 评论 -
RK3399平台开发系列讲解(内核入门篇)杂项设备
在 Linux 中,把无法归类的五花八门的设备定义成杂项设备。节省主设备号:杂项设备的主设备号固定为 10,而字符设备不管是动态分配还是静态分配设备号,都会消耗一个主设备号,进而造成了主设备号浪费。当系统中注册了多个 misc 设备驱动时,只需使用子设备号进行区分即可。使用简单:当使用普通的字符设备驱动时,如果开发人员需要导出操作接口给用户空间,就需要注册对应的字符驱动,并创建字符设备 class 从而自动在/dev 下生成设备节点,而 misc驱动只需要将基本信息通过结构体传递给相应处理函数即可。原创 2024-08-13 22:20:45 · 154 阅读 · 0 评论 -
RK3399平台开发系列讲解(内核入门篇)module_init 的加载过程
📢本文要研究的内容为编译进内核的驱动系统是如何运行的?原创 2024-08-12 22:42:37 · 211 阅读 · 0 评论 -
RK3399平台开发系列讲解(内核入门篇)内核模块符号的导出
📢这里的符号主要指的是全局变量和函数。原创 2024-08-12 22:07:03 · 346 阅读 · 0 评论 -
RK3399平台开发系列讲解(USB篇)U盘等存储类设备
📢介绍U盘等存储类设备。原创 2024-02-18 22:44:48 · 370 阅读 · 1 评论 -
RK3399平台开发系列讲解(USB篇)USB发展背景
📢介绍USB发展背景。原创 2024-02-17 23:32:04 · 400 阅读 · 1 评论 -
RK3399平台开发系列讲解(USB篇)USB 主设备和从设备
📢介绍 USB 主设备和从设备。原创 2024-02-17 23:24:38 · 385 阅读 · 2 评论 -
RK3399平台开发系列讲解(USB篇)USB控制传输方式介绍
📢USB控制传输是USB通信中的一种基本传输类型,用于控制USB设备的配置和操作。它由 Setup 阶段和 Data 阶段组成,可用于发送命令、读取状态、配置设备等操作。原创 2024-02-17 23:06:49 · 642 阅读 · 1 评论 -
RK3399平台开发系列讲解(USB篇)USB 枚举和断开过程
📢介绍 USB 枚举/断开过程。原创 2024-02-17 22:55:39 · 413 阅读 · 2 评论 -
RK3399平台开发系列讲解(调试篇)死锁检测工具lockdep
📢介绍死锁检测工具lockdep。原创 2024-02-17 10:50:01 · 257 阅读 · 1 评论 -
RK3399平台开发系列讲解(内存篇)进程内存详解
📢进程消耗的内存包括:虚拟地址空间映射的物理内存、读写磁盘生成PageCache消耗的内存。原创 2024-02-05 00:15:00 · 684 阅读 · 1 评论 -
RK3399平台开发系列讲解(PCIE篇)PCIE 配置过程
PCIE 配置过程原创 2024-01-26 00:32:02 · 406 阅读 · 1 评论 -
RK3399平台开发系列讲解(PCIE篇)PCIE体系结构
PCIE体系结构有哪些知识原创 2024-01-26 00:25:37 · 543 阅读 · 3 评论 -
RK3399平台开发系列讲解(USB篇)USB设备枚举流程
📢 USB协议定义了设备的6种状态,仅在枚举过程种,设备就经历了4个状态的迁移:上电状态(Powered),默认状态(Default),地址状态(Address)和配置状态(Configured)(其他两种是连接状态和挂起状态(Suspend))原创 2024-01-25 23:37:54 · 169 阅读 · 0 评论 -
RK3399平台开发系列讲解(USB篇)BusHound 工具使用介绍
📢 BusHound软件是由美国perisoft公司研制的一种专用于PC机各种总线数据包监视和控制的开发工具软件,其名“hound”的中文意思为“猎犬”,即指其能敏锐地感知到总线的丝毫变化。原创 2024-01-24 22:28:01 · 484 阅读 · 2 评论 -
RK3399平台开发系列讲解(USB篇)USB2.0 包格式分类
📢 USB协议定了多种类型的包,有令牌包、数据包和握手包。原创 2024-01-24 03:45:00 · 722 阅读 · 1 评论 -
RK3399平台开发系列讲解(USB篇)USB协议层数据格式
官网:https://www.usb.org/documents原创 2024-01-23 23:27:39 · 240 阅读 · 0 评论 -
RK3399平台开发系列讲解(网络篇)什么是Linux路由
一张路由表中会有多条路由一、什么是路由二、路由表(FIB)网络栈最重要目标是转发流量,对于Internet骨干中的核心路由器来说尤其如此。Linux IP层被称为路由选择子系统,负责转换数据包和维护转发数据包。接收或发送每个数据包时,都必须在路由选择子系统中查找。路由选择子系统的主要数据结构是路由选择表原创 2024-01-23 00:42:25 · 424 阅读 · 3 评论 -
RK3399平台开发系列讲解(内核入门篇)LDM数据结构详细介绍
🚀。原创 2024-01-23 04:00:00 · 179 阅读 · 0 评论 -
RK3399平台开发系列讲解(高速设备驱动篇)6.9、SD卡读写流程
SD卡的读写流程中,需要使用一些特定的命令(CMD)与SD卡进行通信。原创 2024-01-22 22:54:55 · 541 阅读 · 1 评论 -
RK3399平台入门到精通系列讲解(USB篇)UDC 层 usb_gadget_probe_driver 接口分析
usb_gadget_driver:定义在include/linux/usb/gadget.h,提供通用的composite方法,其在composite.c中定义和实现,并通过usb_gadget_probe_driver函数将usb_gadget_driver注册到usb_udc中,usb_gadget_driver只有一个。function(功能): 描述该设备的功能的字符串。max_speed(最大速度): 驱动程序处理的最高速度。原创 2024-01-17 23:39:42 · 847 阅读 · 0 评论 -
RK3399平台入门到精通系列讲解(硬件篇)常用的硬件工具介绍
作为⼀名嵌⼊式开发⼯程师,是有必要对各类常⽤的硬件⼯具有⼀定了解的,你可以不懂怎么使⽤它,但你必须知道它是什么,有什么⽤,在什么时候可以⽤得上。原创 2024-01-17 00:32:07 · 383 阅读 · 0 评论 -
RK3399平台入门到精通系列讲解(驱动篇)eventpoll结构体详解
eventpoll 结构体:eventpoll 结构体是 epoll 在内核中的核心结构epitem 结构体:epitem 结构体用于表示 epoll 实例中的事件项eppoll_entry 结构体:它的作用就是关联Socket等待队列中的等待项wait_queue_t和epitem原创 2024-01-11 23:06:36 · 721 阅读 · 2 评论 -
RK3399平台入门到精通系列讲解(基础篇)__LITTLE_ENDIAN_BITFIELD 宏的使用
在计算机中,数据是以最原始的二进制 0 和 1 的方式被存储的。在大多数现代计算机体系架构中,计算机的最小可寻址数据为 8 位(bit),即 1 个字节(byte)。原创 2024-01-11 22:28:01 · 274 阅读 · 1 评论 -
RK3399平台入门到精通系列讲解(实验篇)自定义工作队列的使用
共享队列是由内核管理的全局工作队列,自定义工作队列是由内核或驱动程序创建的特定工作队列,用于处理特定的任务。原创 2024-01-08 04:00:00 · 2153 阅读 · 1 评论 -
RK3399平台入门到精通系列讲解(实验篇)共享工作队列的使用
工作队列是实现中断下半部分的机制之一,是一种用于管理任务的数据结构或机制。它通常用于多线程,多进程或分布式系统中,用于协调和分配待处理的任务给可用的工作线程或工作进程。原创 2024-01-08 06:00:00 · 1087 阅读 · 0 评论 -
RK3399平台入门到精通系列讲解(实验篇)lseek 函数进行读写位置的调整
lseek() 是一个用于文件定位的系统调用函数,用于在文件中移动读写位置指针。在 Linux 中,它常常被用来修改文件读写的位置。lseek() 可以被用于随机存取文件的任意位置,而不仅仅是顺序读取。原创 2024-01-07 18:38:07 · 456 阅读 · 0 评论 -
RK3399平台入门到精通系列讲解(实验篇)信号驱动 IO 实验
信号驱动 IO 不需要应用程序查询设备的状态,一旦设备准备就绪,会触发 SIGIO 信号,进而调用注册的处理函数。原创 2024-01-04 22:20:38 · 1089 阅读 · 1 评论 -
RK3399平台入门到精通系列讲解(实验篇)IO 多路复用实验之poll实验
IO 多路复用是一种同步的 IO 模型。IO 多路复用可以实现一个进程监视多个文件描述符。一旦某个文件描述符准备就绪,就通知应用程序进行相应的读写操作。没有文件描述符就绪时就会阻塞应用程序,从而释放出 CPU 资源。原创 2024-01-04 22:06:31 · 829 阅读 · 3 评论 -
RK3399平台入门到精通系列讲解(基础篇)U-boot启动及Kernel启动
uboot及内核的启动原创 2024-01-01 23:46:11 · 1085 阅读 · 1 评论 -
RK3399平台入门到精通系列讲解(导读篇)21天挑战Linux系统开发
每个人在突破自己技术瓶颈时都会经历一段痛苦的时光,只有我们具有坚定的信念,并努力坚持下去,相信我等你回过头来再看曾经认为难以理解的技术和知识时,你会有一种阔然开朗、融会贯通的感觉,这就是成长和进步所带来最大的成就感。.........原创 2023-12-28 23:58:33 · 2263 阅读 · 0 评论 -
RK3568平台开发系列讲解(Linux系统篇)GPIO调试手段
📢本篇将介绍 GPIO调试手段。原创 2023-12-26 22:29:37 · 1049 阅读 · 0 评论 -
RK3399平台开发系列讲解(内核入门篇)网络协议的分层
📢对于多数的应用和用户而言,使用互联网的一个基本要求就是数据可以无损地到达。用户通过应用进行网络通信,应用启动之后就变成了进程。因此,所有网络通信的本质目标就是进程间通信。世界上有很多进程需要通信,我们要找到一种通用的,每个进程都能认可和接受的通信方式,这就是协议。原创 2023-12-19 23:01:33 · 1584 阅读 · 0 评论 -
RK3399平台开发系列讲解(内核入门篇)什么是函数调用栈
📢在开发软件的过程中我们经常会遇到错误,如果你用 Google 搜过出错信息,那你多少应该都访问过Stack Overflow这个网站。作为全球最大的程序员问答网站,Stack Overflow 的名字来自于一个常见的报错,就是栈溢出(stack overflow)。今天,我们就从程序的函数调用开始,讲讲函数间的相互调用,在计算机指令层面是怎么实现的,以及什么情况下会发生栈溢出这个错误。原创 2023-12-17 10:48:35 · 189 阅读 · 0 评论 -
RK3399平台开发系列讲解(基础篇)引用计数器kref
📢引用计数器(reference counting)是一种内存管理技术,用于跟踪对象或资源的引用数量。它通过在对象被引用时增加计数值,并在引用被释放时减少计数值,以确定何时可以安全地释放对象或资源。原创 2023-12-10 00:42:05 · 136 阅读 · 1 评论 -
RK3399平台开发系列讲解(内核入门篇)ConfigFS 的核心数据结构
📢虚拟文件系统 ConfigFS 是一个特殊的文件系统,旨在提供一种动态配置 Linux 内核和设备的机制。原创 2023-11-23 21:48:32 · 703 阅读 · 1 评论 -
RK3399平台开发系列讲解(应用篇)文件属性 stat 函数
📢Linux 下可以使用 stat 命令查看文件的属性,其实这个命令内部就是通过调用 stat()函数来获取文件属性的,stat 函数是 Linux 中的系统调用,用于获取文件相关的信息,函数原型如下所示(可通过"man 2 stat"命令查看)原创 2023-11-13 00:23:20 · 430 阅读 · 1 评论 -
RK3399平台开发系列讲解(内存篇)free 命令查看内存占用情况介绍
📢free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。原创 2023-11-11 01:11:20 · 537 阅读 · 1 评论