嵌入式 Linux 开发
23 篇文章
Linux RTL8188EUS Wifi驱动调试
2025-04-17
正点原子提供的RTL8188EUS只能用在低版本Kernel,高版本Kernel会出现编译错误,比如我用的6.6.52版本的Kernel就无法编译正点原子提供的那几个Realtek的驱动文件。
934 字
|
5 分钟
LinuxWM8960和声卡驱动
2025-04-16
6.6.52版本Kernel中NXP已经默认在imx6ul-14x14-evk.dtsi中配置好了wm8960的节点,但是是配置在i2c2下,而正点原子阿尔法开发板中wm8960接在i2c1下,所以要把节点从i2c2移到i2c1:
646 字
|
3 分钟
Linux I2C驱动通用框架和编写细节
2025-04-01
I2C子系统采用分层设计: I2C核心层 提供总线协议实现、设备注册/注销、总线通信接口(如i2ctransfer) struct i2cadapter:抽象化的I2C控制器 struct i2cclient:连接到总线的I2C从机 管…
1747 字
|
9 分钟
Linux文件描述符
2025-03-26
我们知道在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。在操作这些所谓的文件的时候,我们每操作一次就找一次名字,这会耗费大量的时间和效率。所以Linux中规定每一个文件对应一个索引,这样要操…
1256 字
|
6 分钟
Linux阻塞、非阻塞与异步通知
2025-03-26
阻塞状态下应用程序从驱动读取函数时,若kernel回报设备不可用,应用程序对应的线程将会进入睡眠,等待设备可用后由设备通知应用程序并将其唤醒以继续执行。
3221 字
|
16 分钟
Linux中断机制
2025-03-26
IMX6ULL和IMX6UL的中断控制器呈兼容关系,即IMX6ULL继承IMX6UL的GIC节点信息。在imx6ul.dtsi中有:
1287 字
|
6 分钟
Linux并发与竞争
2025-03-24
原子操作能够在无锁条件下实现线程安全操作,避免多个线程同时修改变量导致数据竞争。比较适用于简单的计数或标志变量等小型共享数据。但是原子操作只能保证单个原子变量的原子性,不能保护复杂数据结构。并且虽然其不会导致线程阻塞,但可能导致活锁,即…
1492 字
|
7 分钟
Linux字符设备驱动框架
2025-03-14
字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。最常见的点灯、按键、IIC、SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。
2955 字
|
15 分钟
IMX6UL DDR3配置
2025-03-05
RAM:Random-access memory,随机存储器,随时读写,速度快,掉电后数据丢失。内存条即为常见的RAM。ARM中栈、堆(malloc申请的内存)、全局区(.bss段、.data段)都存放在RAM中。 ROM:Read-o…
1921 字
|
10 分钟
I.MX6ULL 时钟配置
2025-03-03
包括以下三个时钟来源: 1. 外部晶振,高速晶振频率24Mhz,低速晶振频率32.768KHz 2. 低压差分信号 (LVDS) I/O 端口,用于从外部获取时钟信号 3. 锁相环(PLL),主时钟包含七个 PLL。其中两个 PLL 分…
1538 字
|
8 分钟
Linux下规范性Makefile规则
2025-03-02
bsp clk (时钟驱动) bspclk.c bspclk.h delay (延时驱动) bspdelay.c bspdelay.h led (LED驱动) bspled.c bspled.h imx6ul cc.h (变量类型声明)…
1128 字
|
6 分钟
适用于Cortex-A的常见GNU汇编语法
2025-02-18
GNU 汇编语法适用于所有的架构,并不是 ARM 独享的,GNU 汇编由一系列的语句组成,每行一条语句,每条语句有三个可选部分:label: instruction @ comment label:标号,表示地址位置 instructi…
2314 字
|
12 分钟
意外修改/usr/sudo所属组和权限后的恢复方法
2025-02-18
使用arm-linux-gnueabihf-gcc交叉编译时,提示权限不足,尝试修改目标编译文件和sudo权限,意外对/usr/bin使用了sudo chmod 777 /usr/bin命令。
142 字
|
1 分钟