自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

内核笔记

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

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

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

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

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

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

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

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

原创 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 387

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

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

2024-09-12 22:33:26 240

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

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

2024-09-11 00:01:39 289

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

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

2024-09-10 23:57:29 185

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

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

2024-09-04 23:16:51 175

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

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

2024-09-04 22:52:14 510

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

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

2024-08-20 22:00:08 247

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

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

2024-08-20 20:38:55 328

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

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

2024-08-14 22:34:17 110

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

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

2024-08-14 22:17:56 479

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

🚀。

2024-08-13 22:32:48 181

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

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

2024-08-13 22:20:45 71

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

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

2024-08-12 22:42:37 95

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

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

2024-08-12 22:07:03 239

原创 RK3568平台开发系列讲解(文件系统篇)FLASH 均衡擦写(UBI)

Ubi擦写均衡在ubi驱动中c 处理,ubi驱动中开启两个线程,ubi_work→func指向erase_work函数(处理擦除操作),(wear_leveling_worker)与损益均衡。上层应用通过逻辑地址来访问存储设备,FTL把不同的逻辑地址映射到Nand Flash中的不同位置。最后我们看一下:ensure_wear_leveling。打印位置:ubi_eba_write_leb。打印位置:__erase_worker。我们重点看下:erase_worker。

2024-08-07 21:25:46 220

原创 RK3568平台开发系列讲解(文件系统篇)什么是 inode?

为了存储一个文件,除了本身的文件内容块,还需要一个地方来存储文件相关的元信息信息。承载这些文件元数据的数据结构就是 inode(index node),inode 包含了文件元信息,比如文件的所有者、权限、修改时间戳等。可以使用 ls -i 查看一个文件的 inode 号,也使用 stat 命令可以查看文件的 inode 信息。

2024-08-07 20:26:08 95

原创 RK3568平台开发系列讲解(文件系统篇)Linux内核中 文件的三个数据结构

我们知道,对文件的 lseek、read、write 都会移动偏移量,如果不同的 fd 指向同一个打开文件表(系统级),则它们将共享文件的偏移量,也就是说一个 fd 的读写会影响第二个 fd 的偏移量。文件描述符表(进程级):这是每个进程所拥有的数据结构,用于维护进程中打开的所有文件描述符。每个 fd 在这个表中都有一个对应的条目,指向更底层的文件表示结构。再来看,这里进程 A 的 0 号 fd 和进程 B 的 3 号 fd,指向了打开文件表(系统级)的不同项,但最后映射到了 i-node 表中的同一项。

2024-08-06 22:28:22 191

原创 RK3568平台开发系列讲解(文件系统篇)文件描述符 fd(File Descriptor)是什么?

📢USB控制传输是USB通信中的一种基本传输类型,用于控制USB设备的配置和操作。它由 Setup 阶段和 Data 阶段组成,可用于发送命令、读取状态、配置设备等操作。

2024-08-06 22:20:53 228

原创 RK3568平台开发系列讲解(USB篇)USB控制传输方式介绍

📢USB控制传输是USB通信中的一种基本传输类型,用于控制USB设备的配置和操作。它由 Setup 阶段和 Data 阶段组成,可用于发送命令、读取状态、配置设备等操作。

2024-07-29 22:38:31 133

原创 RK3568平台开发系列讲解(USB篇)USB设备描述符详解

设备描述符描述的是设备的整体信息,与设备本身一一对应,一个设备只能有一个设备描述符。在主机对USB 设备枚举的过程中,首先要做的就是获取设备描述符,以对设备有一个整体的了解。一个USB接口代表一个逻辑上的设备,比如声卡驱动就有两个接口:录音接口和播放接口。接口是端点的集合,负责完成 USB 的特定功能,例如数据的输入输出。接口描述符用于描述一个接口,包含了接口的特性,如端点个数,所属设备类和子类等。一个 USB 设备可以有多种配置,不同的配置使设备工作在不同的状态下,每个配置必须有一个配置描述符。

2024-07-29 22:34:10 102

原创 百面嵌入式专栏(简历篇)海康威视牛人的linux技术栈-wifi方向

📢本篇我们将对海康威视大牛简历刨析。

2024-07-24 23:15:30 3040

原创 Linux系统调试课:系统I/O的性能优化

IO 性能指标分为:文件系统 I/O 性能指标磁盘 I/O 性能指标

2024-07-24 22:05:30 2986

原创 百面嵌入式专栏(简历题)海康威视大牛简历刨析

其中有许多内容值得其他候选人借鉴。该项目中有许多值得深入研究的内容,包括协议驱动开发、内存管理优化、复杂网络配置与优化、嵌入式系统疑难问题解决、以及团队协作与知识分享。每个方面都有其独特的技术挑战和学习价值,对于从事嵌入式系统开发的工程师来说,这些内容不仅能提高技术水平,还能积累宝贵的项目管理和团队协作经验。

2024-07-23 23:35:28 3084

原创 RK3568平台开发系列讲解(USB篇)USB软件框架思维导图

Gadget Framework提供了一个通用的框架,用于开发USB设备端的驱动程序,包括composite驱动、UDC(USB Device Controller)驱动和Function驱动等。USB核心层是USB子系统的核心部分,提供通用的USB功能和接口,管理USB设备和主机的初始化、配置和数据传输。通过上述组件的协同工作,Linux系统能够提供完整的USB功能支持,从而满足各种USB设备和应用场景的需求。USB主从切换流程涉及OTG设备在主机和设备模式之间的切换,管理相应的状态变化和资源分配。

2024-07-21 23:36:58 1310

原创 RK3568平台开发系列讲解(SPI篇)SPI device设备树处理过程

在SPI Master对应的设备树节点下,每一个子节点都对应一个SPI设备,这个SPI设备连接在该SPI Master下面。沉淀、分享、成长,让自己和他人都能有所收获!

2024-07-13 15:55:37 3094 1

原创 RK3568平台开发系列讲解(PCIE篇)PCIE驱动要如何学?

深入研究PCIe规范文档,了解不同版本的规范和其更新内容。熟悉规范中的各个章节,包括物理层、数据链路层、传输层和应用层的细节。

2024-07-11 22:55:48 605 1

原创 RK3568平台开发系列讲解(内存篇)Linux进程内存的消耗统计

我们在日常工作中一般图简单会直接用 RSS 来表示进程的内存占用

2024-07-11 22:32:38 256

原创 RK3568平台开发系列讲解(网络篇)netfilter框架

Linux内核自2.4版本开始引入了Netfilter框架,这是一项重要的网络功能增强。Netfilter框架由Linux内核防火墙和网络维护者 Rusty Russell 所提出和实现。这个作者还基于 netfilter 开发了大名鼎鼎的 iptables,用于在用户空间管理这些复杂的 netfilter 规则。Netfilter的核心理念是在网络协议栈的关键路径上设置了一系列钩子(hook)点。这些钩子点允许开发者注册自定义的回调函数,使得网络数据包在流经这些点时,可以被相应的函数拦截并进行处理。

2024-07-10 19:11:59 3366 1

原创 RK3568平台开发系列讲解(调试篇)iostat 监视I/O子系统

通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。

2024-07-10 00:17:50 409 1

原创 RK3568平台开发系列讲解(调试篇)性能分析:火焰图(flame graph)

火焰图 (Flame Graph) 是性能优化大师 Bredan Gregg 创建的一种性能分析图标,因为它的样子近似火焰而得名。使用火焰图能够非常快速的定位到代码中的瓶颈,它就像一个在代码之海中航行的程序员的地图,指引着性能优化的方向。下图是clickhouse的一张火焰图。

2024-06-27 23:16:04 3129 1

原创 RK3568平台开发系列讲解(调试篇)分析内核调用的利器 ftrace

Ftrace 是一个自 Linux 内核 2.6 版本起就支持的内核调试工具。最初,Ftrace 主要用于函数级别的跟踪(function trace),但经过不断发展,Ftrace 现已成为一个通用的调试框架,能够实现多种跟踪目的。

2024-06-26 22:13:38 252 2

原创 RK3568平台开发系列讲解(I2C篇)利用逻辑分析仪进行I2C总线的全面分析

IIC-BUS(Inter-IntegratedCircuit Bus)最早是由PHilip半导体(现在被NXP收购)于1982年开发。主要是用来方便微控制器与外围器件的数据传输。它是一种半双工,由SDA(数据)和SCL(时钟)组成的两线式串行传输总线。

2024-06-25 23:50:49 236 1

原创 RK3568平台开发系列讲解(UART篇)printk执行过程

printk函数与用户空间的printf函数格式完全相同,它所打印的字符串头部可以加入“\001n”样式的字符。现在我们知道了,内核的每条打印信息都有自己的级别,当自己的级别在数值上小于某个阈值时,内核才会打印该信息。local_irq_save的调用把当前的中断状态(开或关)保存到flags中,然后禁用当前处理器上的中断。执行dmesg命令时,它就是访问虚拟文件/proc/kmsg,把log_buf中的信息打印出来。其中n为0~7,表示这条信息的记录级别,n数值越小级别越高。

2024-06-19 23:56:39 274 1

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

RK3568平台开发系列讲解(UART篇)UART子系统框架详解

2024-06-19 23:07:11 143

原创 RK3568平台开发系列讲解(UART篇)UART协议详细介绍

UART协议详细介绍

2024-06-18 23:46:14 171 2

原创 RK3568平台开发系列讲解(UART篇)UART 的相关操作接口

文件:drivers\tty\serial\serial_core.c。沉淀、分享、成长,让自己和他人都能有所收获!文件:drivers\tty\tty_io.c。文件:drivers\tty\tty_io.c。文件:drivers\tty\n_tty.c。文件:drivers\tty\n_tty.c。函数:n_tty_write。函数:n_tty_read。函数:uart_write。

2024-06-18 23:30:59 264 3

原创 RK3568平台开发系列讲解(SPI篇)SPI数据的传输

RK3568平台开发系列讲解(SPI篇)SPI数据的传输

2024-05-15 00:18:55 386 1

原创 RK3568平台开发系列讲解(SPI篇)spi_dev 驱动分析

RK3568平台开发系列讲解(SPI篇)spi_dev 驱动分析

2024-05-15 00:14:42 866 2

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关注的人

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