自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

内核笔记

主要讲解瑞芯微平台、高通平台下内核的开发

  • 博客(1255)
  • 资源 (33)
  • 收藏
  • 关注

原创 RK3399平台入门到精通系列讲解 - 总目录

欢迎大家来到内核笔记的《RK3399平台开发入门到精通系列讲解》,开始前博主先列出RK3399平台学习的大纲,同时这也可以作为大家学习RK3399内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:...

2020-11-17 23:20:48 86764 202

原创 RK3568 从入门到实战项目专栏目录及介绍

本专栏采用AIO-3568J四核高性能人工智能主板。是四核处理器,集成双核心架构GPU以及高效能NPU;支持8G大内存;板载M.2与SATA3.0接口;支持POE+供电;支持WiFi 6,5G/4G无线网络通讯;拥有丰富的扩展接口,可应用于智能NVR、云终端、物联网网关、工业控制等场景。

2018-01-30 20:05:13 26208 45

原创 RK3568平台开发系列讲解(Linux系统篇)设备树中断的属性

中断信号源节点(例如设备节点或其他中断源节点) 中的 interrupt-parent 属性用于指定中断信号源所属的中断控制器节点。中断信号源节点的 interrupts 属性中的中断号和其他相关信息将与指定的中断控制器关联起来。中断信号源节点(例如设备节点或其他中断源节点) 中的 interrupt-parent 属性用于指定中断信号源所属的中断控制器节点。中断信号源是产生中断的设备或其他中断源节点。在某些情况下, 中断控制器可以形成多级结构, 其中一个中断控制器节点可能是另一个中断控制器的父节点。

2024-04-12 00:30:58 79

原创 RK3568平台开发系列讲解(Linux系统篇)中断下半部 tasklet 原理

bit0 表示 TASKLET_STATE_SCHED等于 1 时表示已经执行了 tasklet_schedule 把该 tasklet 放入队列了;tasklet_schedule 会判断该位,如果已经等于 1 那么它就不会再次把tasklet 放入队列。bit1 表示 TASKLET_STATE_RUN等于 1 时,表示正在运行 tasklet 中的 func 函数;函数执行完后内核会把该位清 0。

2024-04-10 01:12:26 63

原创 Linux 内核驱动的优化技巧

Linux 内核驱动的优化技巧。

2024-04-08 00:49:08 227

原创 Linux自旋锁死锁问题

Linux自旋锁死锁问题。

2024-04-08 00:47:25 120

原创 RK3568平台开发系列讲解(Linux系统篇)设备树中时钟描述

📢时钟(Clock) 用于描述硬件设备和系统中的时钟源以及时钟相关的配置和连接关系。 时钟在计算机系统中起着至关重要的作用, 用于同步和定时各种硬件设备的操作。 时钟可以分为两个主要角色: 时钟生产者(clock provider) 和时钟消费者(clock consumer) 。

2024-03-25 00:09:59 104 1

原创 RK3568平台开发系列讲解(pinctrl篇)引脚的复用关系的设置

引脚的复用关系是在什么时候被设置的。

2024-03-21 00:47:00 133

原创 RK3568平台开发系列讲解(pinctrl篇)pinctrl 子系统函数操作集

在 pinctrl_desc 结构体中总共有三个函数操作集

2024-03-21 00:12:45 99

原创 RK3568平台开发系列讲解(基础篇)互斥锁的实现

互斥锁会导致休眠, 所以在中断里面不能用互斥锁。mutex的操作函数中有fastpath、slowpath两条路径(快速、慢速):如果fastpath成功,就不必使用slowpath。atomic_long_try_cmpxchg_acquire(mem, old, new)是一个封装的原子操作。如果mutex当前值是0或负数,则需要调用__mutex_lock_slowpath慢慢处理:可能会休眠等待。大部分情况下,mutex当前值都是1,所以通过fastpath函数可以非常快速地获得mutex。

2024-03-18 00:01:05 197

原创 RK3568平台开发系列讲解(pinctrl篇)什么是 pinctrl子系统

Linux 中的 pinctrl 子系统(Pin Control Subsystem) 是一个用于管理和配置通用输入/输出(GPIO) 引脚的框架。 它提供了一种标准化的方法, 以在 Linux 内核中对 GPIO 引脚进行配置、分配和控制, 从而适应不同的硬件平台和设备。

2024-03-16 01:07:54 124

原创 RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间

kobject_uevent 是 Linux 内核中的一个函数, 用于生成和发送 uevent 事件。 它是 udev 和其他设备管理工具与内核通信的一种方式。

2024-03-16 00:26:34 512

原创 CPUFreq 中央处理器频率调节技术

CPUFreq 中央处理器频率调节技术。

2024-03-13 23:32:53 380

原创 Linux内核面向对象思想之继承

Linux内核面向对象思想之继承。

2024-03-13 23:31:32 537 1

原创 RK3568平台开发系列讲解(基础篇)自旋锁的实现

上述__raw_tickets结构体中有owner、next两个成员,这是在SMP系统中实现spinlock的关键。

2024-03-08 00:29:10 120

原创 RK3568平台开发系列讲解(基础篇)平台设备关键结构体

内核使用 platform_device 结构体来描述平台设备,结构体原型如下:

2024-03-07 00:43:19 268

原创 RK3568平台开发系列讲解(基础篇)注册字符设备

注册字符设备可以分为两个步骤:字符设备初始化字符设备的添加

2024-03-07 00:16:47 84

原创 RK3568平台开发系列讲解(基础篇)设备号的分配和释放

字符设备在/dev目录下,不能简单地把它们当作普通文件。字符设备文件的类型是可以识别的,用ls -l命令能够查看。主设备号和次设备号标识设备,并将其与驱动程序进行绑定。下面列出/dev目录(ls -l /dev)的内容,让我们看一看其工作原理:

2024-03-06 23:52:35 254

原创 RK3568平台开发系列讲解(基础篇)字符设备驱动关键结构体

Linux 内核中将字符设备抽象成一个具体的数据结构 (struct cdev), 我们可以理解为字符设备对象,cdev 记录了字符设备的相关信息 (设备号、内核对象),字符设备的打开、读写、关闭等操作接口(file_operations),在我们想要添加一个字符设备时,就是将这个对象注册到内核中,通过创建一个文件 (设备节点) 绑定对象的 cdev,当我们对这个文件进行读写操作时,就可以通过虚拟文件系统,在内核中找到这个对象及其操作接口,从而控制设备。

2024-03-06 00:37:22 156

原创 Linux内核面向对象思想之封装

Linux内核面向对象思想之封装。

2024-03-05 23:51:46 685

原创 RK3568平台开发系列讲解(基础篇)内核错误码

在 Linux 内核中,所谓的错误指针已经指向了内核空间的最后一页,例如,对于一个 64 位系统来说,内核空间最后地址为 0xffffffffffffffff,那么最后一页的地址是 0xfffffffffffff000~0xffffffffffffffff,这段地址是被保留的,如果指针落在这段地址之内,说明是错误的无效指针。沉淀、分享、成长,让自己和他人都能有所收获!

2024-03-03 23:36:18 94

原创 RK3568平台开发系列讲解(基础篇)中断线程化

中断线程化是一种优化技术, 用于提高多线程程序的性能。中断线程化的核心思想是将中断处理和主线程的工作分开, 让它们可以并行执行。中断线程负责处理中断事件, 而主线程负责执行主要的工作任务。这样一来, 不仅可以减少切换的开销, 还可以提高整个程序的响应速度和性能。需要注意的是, 中断线程化还需要处理线程之间的同步和数据共享问题。因为中断线程和主线程可能会同时访问和修改共享的数据, 所以需要合理地进行同步操作, 确保数据的一致性和正确性。

2024-03-03 23:29:06 99

原创 内核笔记,万粉博主的2023回顾

内核笔记,万粉博主的2023回顾,一个分享Linux的宝藏博主的一年,分享了哪些。

2024-03-03 23:22:16 365

原创 我的Linux嵌入式星球

我的Linux嵌入式星球。

2024-03-03 23:20:49 403

原创 Linux内核面向对象思想之继承

Linux内核面向对象思想之继承。

2024-03-03 23:19:02 401

原创 GIT快速使用说明

GIT的使用说明。

2024-03-01 04:15:00 417

原创 RK3568平台开发系列讲解(基础篇)文件私有数据

Linux 中并没有明确规定要使用文件私有数据,但是在 linux 驱动源码中,广泛使用了文件私有数据,这是 Linux 驱动遵循的“潜规则”,实际上也体现了 Linux 面向对象的思想。struct file 结构体中专门为用户留了一个域用于定义私有数据。

2024-03-01 04:00:00 98

原创 RK3568平台开发系列讲解(基础篇)原子操作

在 Linux 内核中的原子操作可以理解为“不可被拆分的操作”,就是不能被更高等级中断抢夺优先的操作。在 C语言中可以使用以下代码对一个整形变量赋值。

2024-02-29 23:31:01 544

原创 RK3568平台开发系列讲解(基础篇)互斥锁实验

互斥锁(Mutex)是一种用于保护共享资源不被并发访问的同步机制

2024-02-29 23:15:49 242 1

原创 我的Linux驱动视频课介绍及规划

我的Linux驱动视频课介绍及规划。

2024-02-27 19:45:19 971 4

原创 我的Linux内核驱动训练营

我的Linux内核驱动训练营。

2024-02-27 00:48:12 997 3

原创 RK3568平台开发系列讲解(基础篇)如何快速学习一套 Linux开发板源码

拿到一份源码和一块评估板,如何快速找到与这块板相关的源码,是很多研发人员都曾遇到过的问题。如果对内核源码结构有大概了解,要完成这些事情也不难,通常可按照基础代码、驱动代码和其它代码等方面来梳理。

2024-02-27 00:43:14 244

原创 RK3568平台开发系列讲解(Linux系统篇)内核设备与驱动程序的匹配

内核中负责平台设备和驱动程序匹配功能的函数在 /drivers/base/platform.c 中

2024-02-25 23:24:43 118 1

原创 RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:分配和注册字符设备

字符设备在内核中表示为struct cdev的实例。在编写字符设备驱动程序时,目标是最终创建并注册与struct file_operations关联的结构实例,为用户空间提供一组可以在该设备上执行的操作(函数)。

2024-02-25 22:59:01 96 1

原创 RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:主设备和次设备

字符设备通过字符(一个接一个的字符)以流方式向用户程序传递数据,就像串行端口那样。字符设备驱动通过/dev目录下的特殊文件公开设备的属性和功能,通过这个文件可以在设备和用户应用程序之间交换数据,也可以通过它来控制实际的物理设备。这也是Linux的基本概念,一切皆文件。字符设备驱动程序是内核源码中最基本的设备驱动程序。

2024-02-25 22:51:59 94 1

原创 RK3568平台开发系列讲解(Linux系统篇)SPI 客户端通信

SPI I/O模型由一组队列消息组成。我们提交一个或多个struct spi_message结构时,这些结构以同步或异步方式处理完成。单个消息由一个或多个struct spi_transfer对象组成,每个对象代表全双工SPI传输。这是驱动程序和设备之间交换数据的两个主要结构。它们都定义在include/linux/spi/spi.h中

2024-02-24 00:08:50 215

原创 RK3568平台开发系列讲解(Linux系统篇)编写I2C客户端驱动程序

配置I2C设备基本上分为两个步骤。定义并注册I2C驱动程序定义并注册I2C设备

2024-02-22 20:06:14 101 1

原创 百面嵌入式专栏(经验篇)如何在面试中介绍自己的项目经验

 在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

2024-02-22 19:29:23 169

原创 RK3568平台开发系列讲解(Linux系统篇)通过I2C总线访问客户端方法

串行总线事务只是访问寄存器来设置/获取其内容。I2C遵循该规则。I2C内核提供两种API,一种用于普通I2C通信,另一种用于兼容SMBUS的设备,它也适用于I2C设备,反之则不然。

2024-02-22 19:22:48 88 1

原创 RK3568平台开发系列讲解(Linux系统篇)内核错误码介绍

错误代码由内核或用户空间应用程序(通过errno变量)解释。错误处理在软件开发中非常重要,而不仅仅是在内核开发中。幸运的是,内核提供的几种错误,几乎涵盖了可能会遇到的所有错误,有时需要把它们打印出来以帮助进行调试。

2024-02-22 00:51:30 505 1

arm64指令集高清图

arm64指令集高清图

2022-03-29

UsbTreeView工具

UsbTreeView工具

2022-01-23

Bushound安装包

Bushound安装包

2022-01-23

PCIe 官方教程,里面有彩色配图

PCIe 官方教程,里面有彩色配图

2022-01-21

USB 描述符介绍资料pdf

USB 描述符介绍资料pdf

2022-01-20

PCIE Power Management.pdf

PCIE Power Management

2022-01-16

Camera产品领域业务介绍v1.0.pptx

海思Camera产品领域业务介绍

2021-11-11

开发AUTOSAR兼容的嵌入式软件.pdf

开发AUTOSAR兼容的嵌入式软件

2021-11-11

新人学习autoware代码初步指导.docx

Autoware.AI是世界上第一个用于自动驾驶技术的“All-in-One”开源软件。104页的详细介绍

2021-11-11

DHT11-for-RK3399-driver-master

DHT11-for-RK3399-driver

2021-10-10

rk3399-edp.dts

点一块edp屏的dts

2021-10-05

ethtool-4.19.tar.xz

ethtool-4.19.tar.xz

2021-06-12

RK3399 Android7.1-Box 软件开发指南 V1.01-20170401.rar

RK3399 Android7.1-Box 软件开发指南 V1.01-20170401.rar

2021-06-04

RK3399硬件设计指南_V1.1_20170111.rar

RK3399硬件设计指南_V1.1_20170111

2021-06-04

Rockchip TRM.rar

Rockchip TRM

2021-06-03

RK3399平台入门到精通系列讲解开发工具

RK3399平台入门到精通系列讲解开发工具

2021-06-03

RK3399平台开发系列讲解专栏对应官方资料

RK原厂资料

2021-05-24

Hi3751 V811 ReleaseDoc相关文档资料

Hi3751 V811 ReleaseDoc相关文档资料

2021-03-19

autosar官方英文资料 302篇

autosar官方英文资料 302篇

2021-03-18

车载诊断标准ISO 5篇pdf

车载诊断标准ISO

2021-03-18

拼接FAQ hisi手册.pdf

拼接FAQ hisi手册

2021-03-18

HiIVEAPI参考.pdf

hisi拼接调试指南

2021-03-18

新能源汽车电池电机电控月度监测与分析报告(2018年及2019年)44份pdf.rar

新能源汽车电池电机电控月度监测与分析报告(2018年及2019年)44份pdf

2021-03-18

技术报告——惯性导航系统原理验证.docx

惯性导航系统原理验证

2021-03-17

智能汽车及车联网.pptx

智能汽车及车联网

2021-03-17

国家车联网产业标准体系建设指南(电子产品与服务).pdf

国家车联网产业标准体系建设指南(电子产品与服务).pdf

2021-03-17

国家车联网产业标准体系建设指南(信息通信).pdf

国家车联网产业标准体系建设指南(信息通信)

2021-03-17

国家车联网产业标准体系建设指南(总体要求).pdf

国家车联网产业标准体系建设指南(总体要求)

2021-03-17

ioremap_gpio_demo.c

ioremap demo对应博客介绍 https://xuesong.blog.csdn.net/article/details/114156170

2021-02-26

rkisp的驱动代码

rkisp的驱动代码首先看一下很设备树匹配用的of_device_id 目录:device/media/platform/rk-cif/cif_cif10_v4l2.c: 博客https://blog.csdn.net/qq_33487044/article/details/82191349

2020-10-21

MLX90640红外开发资料包.zip

https://blog.csdn.net/qq_33487044/article/details/86565536?ops_request_misc=%7B%22request%5Fid%22%3A%22158200180319726869063373%22%2C%22scm%22%3A%2220140713.130056874..%22%7D&request_id=158200180319726869063373&biz_id=0&utm_source=distribute.pc_search_result.none-task 博客地址

2020-02-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除