自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

内核笔记

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

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

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

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

2020-11-17 23:20:48 93958 205

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

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

2018-01-30 20:05:13 29720 52

原创 RK3568平台开发系列讲解(中断篇)延迟工作实验

延迟工作是一种将工作的执行延迟到稍后时间点进行处理的技术。 通常情况下, 当某个任务需要花费较长时间, 不需要立即执行或需要按时执行时, 延迟工作就会派上用场。

2024-11-02 20:04:25 57

原创 RK3568平台开发系列讲解(中断篇)中断亲和性

在多处理器系统中,管理员可以设置中断亲和性,允许中断控制器把某个中断转发给哪些处理器

2024-11-02 19:16:19 39

原创 RK3568平台开发系列讲解(SPI篇)SPI通信协议介绍

📢SPI是一种常见的设备通用通信协议。它有一个独特优势就是可以无中断传输数据,可以连续地发送或接收任意数量的位。而在I2C和UART中,数据以数据包的形式发送,有着限定位数。

2024-10-31 21:53:18 26

原创 RK3568平台开发系列讲解(SPI篇)GPIO模拟SPI

📢 SPI 通信协议分为硬件 SPI 和软件 SPI。芯片手册中主要描述硬件 SPI,但当硬件 SPI 不足以满足需求时,可以利用 GPIO 来模拟 SPI。与 I2C 协议相比,SPI 协议相对简单,不需要起始信号、应答信号和终止信号。因此,我们无需从零开始编写模拟 SPI 的驱动代码,可以直接使用 Linux 源码中已有的驱动程序。可以看到TX和RX收发的数据是一样,证明SPI回环成功,至此模拟SPI测试就完成了。首先将模拟 SPI 驱动编译进内核,在。首先对设备树进行修改,在根节点添加。

2024-10-31 21:38:40 49

原创 RK3568平台开发系列讲解(内存篇)ioremap进行物理内存的映射

ioremap进行物理内存的映射

2024-10-30 21:51:57 51

原创 RK3568平台开发系列讲解(I2C篇)I2C 上拉电阻

当总线从低电平转为高电平时,需要通过上拉电阻为总线供电,充电总线电容,如果上拉电阻取值过大,充电时间过长,会导致上升沿过慢,可能影响通信,如果上拉电阻取值过小, 则无法产生低电平, 所以在 I2C 规范中要求总线电容不能超过 400PF,通常建议在 1k 至 10k 欧姆之间选择,能够既保证上升沿速度,又能够可靠拉低总线电平。如果不接上拉电阻,当总线空闲时电平不确定,一个设备拉低总线时其他设备无法感知到总线电平变化,无法实现线与功能。而这里的上拉电阻也并不能随意进行取值,需要考虑总线电容的影响。

2024-10-30 21:34:47 57

原创 RK3568平台开发系列讲解(I2C篇)I2C 应用编程

接口, 在打开 i2cdev 后, 使用ioctl设定要访问的i2c设备的地址, 然后调用read()即可完成读操作。接口, 在打开i2cdev后, 使用ioctl设定要访问的i2c设备的地址, 然后调用write()即可完成读操作。read()接口只能支持单一的方向, 因此, 不能够支持含有RepStart模式的时序, 因此, i2cdev的。接口只能支持单一的方向, 因此, 不能够支持含有RepStart模式的时序, 因此, i2cdev的。这一ioctl cmd用于发起连续的i2c传输操作,使用。

2024-10-30 21:34:28 52

原创 RK3568平台开发系列讲解(I2C篇)通用 I2C 驱动讲解i2c-dev.c

📢借助`i2c_transfer`、`i2c_smbus_xfer`、一个实例化的`i2c_adapter`类型的变量,我们可以与该实例化的`i2c_adapter`类型变量下所有i2c `client`的通信。若基于这种方式与`i2c client`进行通信,那就可以不对具体的`i2c client`开发具体的驱动程序,即可与该`i2c client`进行通信了。基于这种思想,i2c模块为每一个注册到i2c 总线的`adapter`,均创建了对应的字符设备文件,并为该设备文件提供了读写方法(供系统调用

2024-10-29 21:16:54 38

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

📢我们也知道cpu需要通过`i2c adapter`的方法与`i2c client`进行通信。而`i2c`模块也为此抽象出了`cpu`与`i2c client`通信的接口,分别为: - `i2c_transfer` - `i2c_smbus_xfer` 这两个接口分别对应了`i2c`、`smbus`的通信接口,而这两个接口也就是分别调用 - `i2c_adapter->master_xfer` - `i2c_adapter->smbus_xfer`。

2024-10-29 21:16:08 42

原创 RK3568平台开发系列讲解(内存篇)Linux 内存优化

Linux 内存优化方法汇总

2024-10-29 21:00:21 458

原创 RK3568平台开发系列讲解(I2C篇)I2C 总线实现 client 设备方法

📢Linux中的 I2C 也是按照平台总线模型设计的,既然也是按照平台总线模型设计的,是不是也分为一个device 和一个 driver 呢?但是 I2C 这里的 device 不叫 device,而是叫 client。在讲 platform 的时候就说过,platform 是虚拟出来的一条总线,目的是为了实现总线、设备、驱动框架。对于 I2C 而言,不需要虚拟出一条总线,直接使用 I2C 总线即可。

2024-10-28 22:40:04 337

原创 RK3568平台开发系列讲解(调试篇)i2c_bus 驱动总线说明

📢i2c 总线驱动由芯片厂商提供,如果我们使用 ST 官方提供的 Linux 内核, i2c 总线驱动已经保存在内核中,并且默认情况下已经编译进内核。

2024-10-28 22:38:18 70

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

🚀。

2024-10-28 22:37:12 331

原创 RK3568平台开发系列讲解(调试篇)debugfs 文件系统

🚀。

2024-10-22 22:17:43 110

原创 RK3568平台开发系列讲解(调试篇)CGroup(Control Group)之CPU资源

🚀。

2024-10-16 22:32:12 97

原创 RK3568平台开发系列讲解(调试篇)CGroup(Control Group)之内存管控

CGroup 的全称是 Control Group,是容器实现环境隔离的两种关键技术之一,它对很多子系统提供精细化的控制的能力,比如下面这些:CPU内存IO网络

2024-10-16 21:30:39 168

原创 RK3568平台开发系列讲解(调试篇)嵌入式必备技能:万用表使用指南

万用表可以帮助你测量电压、电阻、电流、导通是否等等,可以说是作为底层开发必备的⼯具之⼀,可以说了解怎么使⽤万⽤表,是嵌⼊式底层开发最基本的技能点。

2024-10-15 22:02:30 383

原创 RK3568平台开发系列讲解(调试篇)如何在procfs创建一个文件与用户空间交互

在 Linux 的内核中,虚拟文件系统转换层(VFS)的存在,使得各种不同种类的文件都可以通过一组统一的系统调用来处理,其中不仅包括保存在不同格式的文件系统上的磁盘文件,还包括各种不同种类的外部设备,以及进程信息和多种内核参数,等等。特殊文件系统中的文件,其特殊之处在于,它们的信息并不是保存在外部物理存储设备上的,而是在收到读取请求的时候才由内核动态生成的。

2024-10-15 21:49:07 87

原创 RK3568平台开发系列讲解(休眠篇)Linux 自动休眠唤醒刨析

Linux 自动休眠唤醒刨析

2024-10-11 23:52:27 281

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

这些是一些常见的 udevadm 子命令, 它们提供了与 udev 设备管理器交互的便捷方式, 用于设备信息查询、 事件监控、 事件触发、 规则测试等操作。通过使用 udevadm 工具, 用户可以更好地理解和管理 Linux 系统中的设备和 udev 机制。udevadm 是一个用于与 udev 设备管理器进行交互的命令行工具。它提供了一系列的子命令, 用于查询和管理设备、 触发 uevent 事件以及执行其他与 udev 相关的操作。它是 udev 和其他设备管理工具与内核通信的一种方式。

2024-10-11 23:19:17 63

原创 RK3568平台开发系列讲解(调试篇)休眠唤醒standby调试指南

休眠状态指的是一种系统低功耗运行状态。在此状态下,各种支持休眠模式的外围设备也都全部进入休眠模式,CPU 挂起,所有用户态应用程序和内核态进程全部被冻结,内存处于自刷新模式。系统处于休眠状态会屏蔽所有除唤醒之外的所有命令,直到系统被某种原因唤醒才会解除此种状态。

2024-10-10 00:43:50 131

原创 RK3568平台开发系列讲解(调试篇)内核调试选项有哪些?

在编译内核的时候,为了方便调试和测试代码,内核提供了许多配置选项

2024-10-10 00:38:01 498

原创 RK3568平台开发系列讲解(I2C篇)I2C 总线实现 client 设备方法

📢 Linux 中的 I2C 也是按照平台总线模型设计的,既然也是按照平台总线模型设计的,是不是也分为一个device 和一个 driver 呢?在讲 platform 的时候就说过,platform 是虚拟出来的一条总线,目的是为了实现总线、设备、驱动框架。同样,我们也是先从非设备树开始,先来看一下,在没有设备树之前我们是怎么实现的 I2C 的 device 部分,也就是 client 部分。然后再学习有了设备树之后,我们的 client 是怎么编写的。沉淀、分享、成长,让自己和他人都能有所收获!

2024-10-09 00:41:05 301

原创 RK3568平台开发系列讲解(I2C篇)i2c 总线驱动介绍

i2c 总线维护着两个链表 (I2C 驱动、 I2C 设备),管理 I2C 设备和 I2C 驱动的匹配和删除等。

2024-10-09 00:29:37 135

原创 RK3568平台开发系列讲解(LCD篇)Framebuffer开发

它的作用是更新帧缓冲区中的屏幕信息, 例如分辨率、 颜色位深、 像素格式等, 以及修改显存中的图像数据, 从而在显示器上呈现新的图像。应用程序对/dev/fbX 设备节点的读写就相当于对显示设备的显示缓冲区( 显存) 的读写, 以 7 寸 mipi 屏幕为例, 分辨率是 800*1280, 每一个像素点的颜色用 32 位来表示, 那么这个显示缓冲区的大小就是 1280 x 800x 32 / 8 = 4,096,000 个字节(一个字节等于 8 位所以除以 8)。该缓冲区存储了每个像素点的颜色信息。

2024-09-12 23:13:08 515

原创 RK3568平台开发系列讲解(UART篇)串口应用编程

串口(Serial Port) 也叫串行通信接口, 通常也叫做 COM 接口, 是一种计算机与外部设备(如串口通信设备)进行数据通信的异步全双工接口。它通过串行传输方式, 即一次只发送一个比特位(bit) 来进行数据传输。具体来说, 典型的串口通信只需要 3 根线, 分别是地线(GND),发送线(TX) , 接收线(RX) , 如下图所示,发送和接收各用一条线, 没有时钟线。串口在实际工作中会经常使用, 比如在嵌入式 Linux 下使用调试串口, 它用来登录 Linux系统, 输出日志。

2024-09-12 22:33:26 339

原创 RK3568平台开发系列讲解(PWM篇)使用 sysfs 接口操作 pwm

PWM 子系统被划分为了三个层次, 分别为用户空间、 内核空间和硬件层, 内核空间包括 PWM 设备驱动层、 PWM 核心层和 PWM 适配器驱动层

2024-09-11 00:01:39 384 1

原创 RK3568平台开发系列讲解(PWM篇)PWM 子系统框架

PWM 子系统被划分为了三个层次, 分别为用户空间、 内核空间和硬件层, 内核空间包括 PWM 设备驱动层、 PWM 核心层和 PWM 适配器驱动层

2024-09-10 23:57:29 255

原创 RK3588平台开发系列讲解(显示篇)图像的宽高和跨距

沉淀、分享、成长,让自己和他人都能有所收获!😄“图像的基本组成单元为像素,对视频图像的存储,实际上是对像素的存储”。基于图像位深,我们可以确定存储一个像素所需的字节数,下面,可以开始“指导”计算机如何定量读取图像数据了。像素在图像中是一行一行排列、并逐行存储在内存中的,计算机在读取图像时,就需要逐行地、正确地读取出每一行的像素。这里就引出两个问题:每一行究竟有多少个像素?计算机每获取一行数据需要读取多少个字节呢?

2024-09-04 23:16:51 238

原创 RK3588平台开发系列讲解(显示篇)MIPI详解

沉淀、分享、成长,让自己和他人都能有所收获!😄。

2024-09-04 22:52:14 695

原创 RK3568平台开发系列讲解(UART篇)line discipline

line discipline 介于 TTY 层和具体的串口驱动 ( 比如 serial8250 ) 之间。读和写可以视为消费者和生产者。两个过程操作时需要用到。沉淀、分享、成长,让自己和他人都能有所收获!,对输入和输出进行格式化。canonical 模式下。

2024-08-20 22:00:08 289

原创 RK3568平台开发系列讲解(PWM篇)PWM的使用

PWM 全称是 Pulse Width Modulation,也就是脉冲宽度调制,PWM 信号如图:PWM 信号有两个关键的术语:频率和占空比,频率就是开关速度,把一次开关算作一个周期,那么频率就是 1 秒内进行了多少次开关。占空比就是一个周期内高电平时间和低电平时间的比例,一个周期内高电平时间越长占空比就越大,反之占空比就越小。占空比用百分之表示,如果一个周期内全是低电平那么占空比就是 0%,如果一个周期内全是高电平那么占空比就是 100%。

2024-08-20 20:38:55 456

原创 RK3399平台开发系列讲解(内核入门篇)详解内联汇编

📢要深入理解Linux内核中的同步与互斥的实现,需要先了解一下内联汇编:在C函数中使用汇编代码。现代编译器已经足够优秀,大部分的C代码转成汇编码后,效率都很高。但是有些特殊的算法需要我们手工优化,这时就需要手写汇编代码;或是有时需要调用特殊的汇编指令(比如使用ldrex/strex实现互斥访问),这都涉及内联汇编。

2024-08-14 22:34:17 176

原创 Linux系统调试课:CPUFreq 中央处理器频率调节技术

📢中央处理器频率调节(Central Processing Unit frequency,CPUFreq)技术可以降低ARM芯片的功耗,例如在系统对任务压力较小时,通过调整处理器工作频率与输入电压的大小降低系统功耗。

2024-08-14 22:17:56 586

原创 RK3399平台开发系列讲解(内核入门篇)字符设备之主设备和次设备

🚀。

2024-08-13 22:32:48 234

原创 RK3399平台开发系列讲解(内核入门篇)杂项设备

在 Linux 中,把无法归类的五花八门的设备定义成杂项设备。节省主设备号:杂项设备的主设备号固定为 10,而字符设备不管是动态分配还是静态分配设备号,都会消耗一个主设备号,进而造成了主设备号浪费。当系统中注册了多个 misc 设备驱动时,只需使用子设备号进行区分即可。使用简单:当使用普通的字符设备驱动时,如果开发人员需要导出操作接口给用户空间,就需要注册对应的字符驱动,并创建字符设备 class 从而自动在/dev 下生成设备节点,而 misc驱动只需要将基本信息通过结构体传递给相应处理函数即可。

2024-08-13 22:20:45 100

原创 RK3399平台开发系列讲解(内核入门篇)module_init 的加载过程

📢本文要研究的内容为编译进内核的驱动系统是如何运行的?

2024-08-12 22:42:37 131

原创 RK3399平台开发系列讲解(内核入门篇)内核模块符号的导出

📢这里的符号主要指的是全局变量和函数。

2024-08-12 22:07:03 278

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

新能源汽车电池电机电控月度监测与分析报告(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关注的人

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