技术栈
linux驱动
企鹅的蚂蚁
3 天前
linux
·
rk3588
·
linux驱动
·
yt6801
·
pcie网卡
·
vermagic
LubanCat RK3588 实时 Linux 开发(七):YT6801 PCIe 网卡驱动移植与 vermagic 排查
摘要:以 YT6801 PCI 网卡为例,解释 vermagic 不匹配,并演示从官方源码到内核树内模块的移植思路。
码农小韩
5 天前
linux
·
linux驱动
·
嵌入式软件开发
·
嵌入式操作系统
·
linux应用
Linux应用开发(六)——进程间通信
UNIX 平台提供了多种进程间通信方式,早期的通信方式包括无名管道(pipe)、有名管道(fifo)和信号(signal)。AT&T 的贝尔实验室对 UNIX 早期的进程间通信进行了改进和扩充,形成了“System V IPC”,其通信进程主要局限于单个计算机,包括共享内存(shared memory)、消息队列(message queue)和信号量(semaphore)。BSD(加州大学伯克利分校的伯克利软件发布中心)突破了这一限制,形成了基于套接字(socket)的进程间通信机制,即套接字(socke
码农小韩
5 天前
linux
·
操作系统
·
linux驱动
·
嵌入式软件开发
·
嵌入式操作系统
·
linux应用
Linux应用开发(五)——线程
多线程通过第三方的线程库来实现New POSIX Thread Library (NPTL),是早期Linux Threads的改进,采用1:1的线程模型,显著的提高了运行效率,信号处理效率更高
企鹅的蚂蚁
8 天前
linux
·
rk3588
·
linux驱动
·
socketcan
·
gs_usb
·
usb-can
LubanCat RK3588 实时 Linux 开发(六):启用 gs_usb 驱动并完成 USB-CAN 收发
摘要:说明 CONFIG_CAN_GS_USB=m 的含义,完成模块生成、加载、SocketCAN 接口配置和安全收发测试。
码农小韩
1 个月前
linux
·
操作系统
·
linux驱动
·
嵌入式软件开发
·
linux应用
Linux操作系统(六)——软件包管理
最初,基于Linux系统的开发者在完成应用程序开发后,将很多二进制文件发给用户,用户使用之前需要将很多程序逐个安装。因此,Debian Linux首先提出软件包的管理机制——Deb软件包,将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。随即,Redhat Linux基于这个理念推出了自己的软件包管理机制——Rpm软件包。当然,Redhat采用了自己的打包格式生成Rpm包文件,由Rpm包管理器负责安装
阿拉斯攀登
2 个月前
linux
·
嵌入式硬件
·
嵌入式
·
linux驱动
·
字符设备驱动
平台设备驱动:platform bus 与设备树
嵌入式 SoC 上的片上外设(I2C、SPI、UART、GPIO 控制器等)挂在 platform 总线上。这篇讲 platform 驱动框架、设备树 DTS 语法、驱动和设备怎么匹配,以及现代 Linux 驱动的标准写法。
阿拉斯攀登
2 个月前
linux
·
网络
·
嵌入式硬件
·
linux驱动
·
字符设备驱动
并发与同步:自旋锁、信号量、互斥锁
Linux 是多任务多 CPU 的系统,驱动里的资源可能被同时访问,导致竞态。这篇讲驱动开发中常用的同步机制:原子操作、自旋锁、信号量、互斥锁,各自的适用场景和注意事项。
阿拉斯攀登
2 个月前
linux
·
嵌入式硬件
·
linux内核
·
嵌入式
·
linux驱动
定时器与延时:内核定时器、hrtimer 与延时函数
驱动里经常需要定时执行任务、等待硬件就绪。这篇讲 Linux 内核的定时机制:低精度定时器 timer_list、高精度定时器 hrtimer、以及各种延时函数的区别和用法。
阿拉斯攀登
2 个月前
linux
·
驱动开发
·
嵌入式硬件
·
linux内核
·
嵌入式
·
linux驱动
·
spi
SPI 设备驱动开发
SPI 是另一种常用的串行外设总线,速度比 I2C 快,适合高速传输。这篇讲 Linux SPI 子系统架构、spi_driver 框架、四种 SPI 模式、读写传输 API,以及完整的 SPI 设备驱动示例。
阿拉斯攀登
2 个月前
linux
·
驱动开发
·
嵌入式硬件
·
嵌入式
·
linux驱动
·
i2c
·
字符设备驱动
I2C 设备驱动开发
I2C 是嵌入式最常用的低速串行总线,传感器、EEPROM、RTC 很多都是 I2C 接口。这篇讲 Linux I2C 子系统架构、i2c_driver 框架、设备树匹配、I2C 读写 API,以及完整的传感器驱动示例。
阿拉斯攀登
2 个月前
linux
·
网络
·
嵌入式硬件
·
linux驱动
内核模块开发:module_init 与模块机制详解
内核模块是 Linux 驱动的载体。这篇深入讲模块的加载卸载机制、模块参数、符号导出、模块依赖、多文件编译,以及常见的模块开发技巧。
阿拉斯攀登
2 个月前
linux
·
嵌入式
·
linux驱动
·
字符设备驱动
字符设备驱动:file_operations 与读写实现
字符设备是 Linux 驱动最基础、最常用的一类。这篇讲字符设备驱动的核心框架:设备号、cdev 结构体、file_operations 操作集、open/read/write 实现,以及用户空间和内核空间的数据拷贝。
阿拉斯攀登
2 个月前
linux
·
嵌入式硬件
·
linux内核
·
嵌入式
·
linux驱动
嵌入式 Linux 驱动概述:分类、内核模块、开发环境
嵌入式 Linux 驱动是连接硬件和应用的桥梁。这篇从零讲起:驱动是什么、分哪几类、内核模块机制、开发环境怎么搭,带你入门 Linux 驱动开发。
道川贤林
3 个月前
linux
·
linux驱动
·
orangepi
·
u-boot
OrangePi 系统启动优先级修改
OrangePi 开发板支持从多种外部设备启动,包括SD卡、EMMC、NVMe固态硬盘等,本文则讲述如何在 Orangepi 开发板上修改从外部设备启动的优先级。
AF_INET6
3 个月前
c语言
·
经验分享
·
音视频
·
linux驱动
·
sensor
·
imx415
·
datasheet
sensor笔记(一)imx415
✔️本篇主要是笔者为调试imx415不同的帧率而记录的相关笔记,内容相对之前文章简要,全文均为手动整理,也不可避免有所错漏,只希望能给到需要的读者一些参考。
DA0221
6 个月前
linux驱动
Linux驱动-Regmap子系统
Linux下大部分设备的驱动开发都是操作其内部寄存器,比如I2C/SPI设备的本质都是一样的,通过I2C/SPI接口读写芯片内部寄存器。芯片内部寄存器也是同样的道理,比如STM32MP157的PWM、TIM等外设初始化,最终都是要落到寄存器的设置上。Linux下使用i2c_transfer来读写I2C设备中的寄存器,SPI接口的话使用spi_write/spi_read等。I2C/SPI芯片又非常的多,因此Linux内核里面就会充斥了大量的i2c_transfer这类的冗余代码,再者,代码的复用性也会降低
DA0221
6 个月前
linux
·
c语言
·
linux驱动
Linux驱动-I2C总线驱动
I2C是一种很常见的同步、串行、低速、近距离通信接口。Linux内核开发者为了让驱动开发工程师在内核中方便的添加自己的I2C设备驱动程序,更容易的在linux下驱动自己的I2C接口硬件,进而引入了I2C总线框架。与Linux下的platform虚拟总线不同的是,I2C是实际的物理总线,所以I2C总线框架也是Linux下总线、设备、驱动模型的产物。
DA0221
6 个月前
linux
·
c语言
·
linux驱动
Linux设备树,DTS、DTB浅析
设备树(Device Tree),描述设备设备树的文件叫做DTS(Device Tree Source),DTS文件采用了树形结构来描述板机设备,也就是开发板信息,比如CPU数量、内存基地址、IIC接口上接了那些设备、SPI 接口上接了那些设备等。
泽平590
6 个月前
linux
·
运维
·
服务器
·
驱动开发
·
单片机
·
linux驱动
Linux Pinctrl子系统
我节选了其中的一部分,这里可以看到,他将一些引脚如,PH0,PH1,进行了分组配置,将他们分配到了uart sleep状态时候的一个引脚的配置,提前将他们分配到了gpio_input模式,这个其实就是所谓的生产端
ttkwzyttk
7 个月前
linux驱动
Linux内核中模块定义宏机制解析
在编写 Linux 设备驱动时,尤其是 platform、I2C、SPI 等总线驱动,我们经常会看到类似下面的写法: