- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 Markdown笔记
graph TDA[矩形节点] --> B(圆角节点)C{菱形决策} --> D((圆形节点))效果如下所示:fill:#333;color:#333;color:#333;fill:none;矩形节点圆角节点菱形决策圆形节点graph TDA --> B // 实线箭头A -.-> C // 虚线箭头A == text ==> D // 粗线带文字A -- text --> E // 实线带文字graph TD。
2025-06-03 09:34:21
2515
原创 Linux 驱动之设备树
【北京迅为】嵌入式学习之Linux驱动(第七期_设备树_全新升级)_基于RK3568_哔哩哔哩_bilibili Linux之父Linus Torvalds在2011年3月17日的ARM Linux邮件列表中说道:This whole ARM thing is a f*cking pain in the ass。之后ARMLinux社区引入了设备树。为什么Linus Torvalds会爆粗口呢? 在讲平台总线模型的时候,平台总线模型是把驱动分成了两个部分,一部分是device,一部分是driver,设备
2025-06-01 18:35:34
1145
原创 Linux驱动之平台总线
本文摘要: 文章介绍了Linux平台总线(Platform Bus)模型的基本概念和工作原理。平台总线是Linux虚拟的总线模型,将驱动分为描述硬件的device.c和控制硬件的driver.c两部分,通过name匹配实现设备与驱动的耦合。文章详细讲解了platform_device结构体及其关键成员,包括资源定义(struct resource)和设备注册/卸载接口(platform_device_register/unregister)。最后通过一个测试案例展示了如何定义内存和中断资源,并注册平台设备。
2025-06-01 14:59:44
1032
原创 Linux 高级字符设备
本文介绍了Linux高级字符设备中的IO模型和等待队列机制。主要内容包括: IO模型:分析了五种IO模型(阻塞、非阻塞、信号驱动、IO多路复用和异步IO)的工作原理及特点,对比了它们的数据处理流程和适用场景。 等待队列:讲解了内核中用于进程阻塞和唤醒的等待队列机制,包括等待队列头(wait_queue_head_t)和队列项(wait_queue_entry)的数据结构,以及两种初始化等待队列头的方法(动态初始化和静态宏定义)。 实际应用:通过代码示例展示了非阻塞IO的轮询实现、IO多路复用的epoll使用
2025-05-28 08:30:00
971
原创 Linux 驱动之中断
本文介绍了Linux驱动中的中断机制,主要内容包括: 中断基本概念: 中断是CPU响应外部或内部事件的机制,需经历中断信号、响应、保护现场、处理、恢复现场等过程 分为中断上文(快速响应关键任务)和中断下文(处理耗时任务) 中断子系统框架: 对比51单片机的中断控制方式 引入ARM架构的通用中断控制器(GIC)及其级联结构 详细说明硬件中断号(HW ID)与软件中断号(IRQ number)的映射关系 GIC中断类型: 软件生成中断(SGI) 私有外设中断(PPI) 共享外设中断(SPI) 局部外设中断(LP
2025-05-28 08:30:00
702
原创 Linux 驱动并发与竞争
本文介绍了Linux驱动开发中的并发与竞争问题。在单核、多核CPU及多任务环境下,并发访问共享资源会导致竞争问题。Linux内核提供了原子操作、自旋锁、信号量和互斥锁等机制来解决这一问题。重点讲解了原子操作的实现方法,包括atomic_t类型变量的声明与初始化,以及常用的原子读写、加减、条件操作等函数。通过原子操作可以确保对共享变量的访问不可被打断,从而避免并发竞争问题。文章还提供了原子操作的实验代码路径,帮助开发者理解如何在Linux驱动中实际应用这些技术。
2025-05-25 08:30:00
552
原创 Linux RTC驱动笔记
本文介绍了Linux系统中的RTC(实时时钟)驱动相关知识。主要内容包括:RTC的基本概念与分类(内部RTC和外部RTC的优缺点);迅为RK3568/RK3588开发板上的RTC外设电路设计分析;Linux RTC子系统的三层架构(用户空间、设备驱动层和硬件层);最后以RX8010芯片为例,分析了其设备树配置和内核驱动实现,重点解读了驱动初始化、中断处理和时间设置等关键代码流程。文章为嵌入式开发者提供了RTC驱动的完整技术参考。
2025-05-25 08:30:00
2239
原创 Linux 字符设备基础
Linux规定每一个字符设备或者块设备都必须有一个专属的设备号。一个设备号由主设备号和次设备号组成。主设备号用来表示某一类驱动,如鼠标,键盘都可以归类到USB驱动中。而次设备号是用来表示这个驱动下的各个设备。比如第几个鼠标,第几个键盘等。所以,我们开发字符驱动程序,申请设备号是第一步,只有有了设备号,才可以像系统注册设备。 Linux中使用一个名为的数据类型表示设备号。定义在里面。如下图所示,通过定义可以看出是类型,也就是类型。所以设备号是一个32位的数据类型。其中高12位为主设备号,低20位为次设备
2025-05-24 09:26:42
937
原创 Linux 驱动基础
本文介绍了Linux驱动开发的基础知识,包括: Linux内核源码目录结构解析,如arch、drivers、fs等核心目录功能说明。 驱动开发基本流程: 编写最简单的Hello World驱动 驱动模块的编译方法(独立编译和内核集成) 模块加载/卸载命令(insmod/modprobe/rmmod) 模块参数传递机制 内核配置系统: Kconfig语法详解 Makefile与.config文件关系 将驱动编译进内核的方法 进阶技术: 内核符号导出 系统调用机制分析 自定义系统调用实现 模块初始化优先级控制
2025-05-24 08:00:00
893
原创 Linux pwm驱动笔记
本文介绍了基于RK3568开发板的PWM(脉宽调制)技术及其在嵌入式Linux驱动中的应用。PWM通过调节脉冲信号的宽度(占空比)来控制设备的输出,广泛应用于LED调光、电机调速、电源转换和音频合成等领域。文章详细讲解了PWM的基础知识,包括占空比和频率的概念,并介绍了RK3568开发板的PWM接口特性,支持16路PWM控制器,具备高精度计时和捕获功能。 文章还通过实例展示了如何在RK3568开发板上使用PWM控制SG90舵机和蜂鸣器,并提供了设备树配置和驱动代码的编写方法。此外,文章还介绍了PWM子系统的
2025-05-17 18:49:41
1125
原创 Linux I2C驱动笔记
I2C总线是一种同步、串行、半双工的通信总线,由SDA(串行数据线)和SCL(串行时钟线)两根信号线构成,通常通过上拉电阻保持总线空闲状态为高电平。I2C总线支持多设备连接,允许多主机存在,但同一时刻只允许一台主机操作。每个I2C设备都有唯一的地址,主机通过地址与从机通信。I2C总线的传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。I2C总线上的设备数量受总线最大电容400pF限制,且挂载相同型号器件时还受器件地址限制。 在硬件实现上,I2C总
2025-05-13 16:48:52
1022
原创 Linux串口驱动
本文介绍了Linux串口驱动的基础知识和应用编程,重点讲解了串口通信的基本概念、常见串口类型、关键参数配置以及比特率与波特率的区别。文章还详细描述了串口通信协议、硬件接口、RS232和RS485的电平特性,以及如何在Linux系统中进行串口配置和应用编程。通过示例代码,展示了如何设置串口参数、读取和解析GPS模块数据,并提供了完整的代码实现和Makefile文件。此外,文章还介绍了串口子系统的框架和驱动注册流程,帮助读者深入理解Linux串口驱动的工作原理。
2025-05-13 08:55:05
1815
原创 Linux SPI驱动笔记
基本概念SPI(串行外设接口)是一种同步、全双工的串行通信协议,由摩托罗拉公司提出,广泛用于嵌入式系统中连接主控芯片(如MCU、SoC)与外围设备(如传感器、存储器、显示屏等)。其核心特点是通过主从架构实现高速数据传输。核心特点高速传输:支持从几百Kbps到几十Mbps的速率,具体取决于硬件时钟频率。全双工通信:数据可同时在主设备和从设备之间双向传输。灵活性:通过配置时钟极性和相位,适配不同设备需求。简单性:协议层无复杂地址机制,完全依赖硬件片选(CS)控制。无流控与错误检测。
2025-05-11 19:42:57
878
原创 ncdu 移植到arm平台
期望输出:ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked...# 应输出类似:aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0。根据你的宿主机系统(假设为 x86_64 Linux),安装适用于。需要配置交叉编译工具链和依赖库。库,需为 aarch64 交叉编译该库。# 设置交叉编译器和依赖库路径。# 编译并安装到工具链目录。
2025-05-07 16:16:47
937
手把手教您搭建开源RTMP服务器
2025-05-14
aarch64平台ncdu工具
2025-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人