Linux

26 篇文章
Linux 进程与线程(三)线程安全和高级I/O
对共享资源的访问进行保护 假设对于全局变量a,线程1和线程2都需要访问,a就是多个线程间的共享资源 保护的目的是解决数据一致性问题 当变量可以被多个线程修改和读取时,存在数据一致性问题,需要保证每个线程都能读取到有效且正确的值 数据一致…
2771 字
|
14 分钟
Cover Image of the Post
Linux 进程与线程(二)线程
线程是参与系统调度的最小单位。它被包含在进程之中,是进程中的实际运行单位。一个线程指的是进程中一个单一顺序的控制流(或者说是执行路线、执行流),一个进程中可以创建多个线程,多个线程实现并发运行,每个线程执行不同的任务。譬如某应用程序设计…
4084 字
|
20 分钟
Cover Image of the Post
Linux RTL8188EUS Wifi驱动调试
正点原子提供的RTL8188EUS只能用在低版本Kernel,高版本Kernel会出现编译错误,比如我用的6.6.52版本的Kernel就无法编译正点原子提供的那几个Realtek的驱动文件。
934 字
|
5 分钟
Cover Image of the Post
Linux FlexCAN调试
按照手册来即可,注意Alpha版上Flexcan2节点的引脚被ecspi3复用,节点中要屏蔽掉flexcan2:
417 字
|
2 分钟
Cover Image of the Post
LinuxWM8960和声卡驱动
6.6.52版本Kernel中NXP已经默认在imx6ul-14x14-evk.dtsi中配置好了wm8960的节点,但是是配置在i2c2下,而正点原子阿尔法开发板中wm8960接在i2c1下,所以要把节点从i2c2移到i2c1:
646 字
|
3 分钟
Cover Image of the Post
Linux快速切换交叉编译器版本
确保/usr/local/arm下有以下命令格式的交叉编译器文件夹:
277 字
|
1 分钟
Cover Image of the Post
Linux SPI驱动通用框架和编写细节
1. 追加节点: 需要确保UART2节点为disabled,因IO占用
1520 字
|
8 分钟
Cover Image of the Post
Linux I2C驱动通用框架和编写细节
I2C子系统采用分层设计: I2C核心层 提供总线协议实现、设备注册/注销、总线通信接口(如i2ctransfer) struct i2cadapter:抽象化的I2C控制器 struct i2cclient:连接到总线的I2C从机 管…
1747 字
|
9 分钟
Cover Image of the Post
Linux 进程与线程(一)基本概念与信号
进程:资源管理的最小单位 线程:程序执行的最小单位
4063 字
|
20 分钟
Cover Image of the Post
Linux Platform驱动通用框架
Platform驱动需要读取设备树中的compatible信息用于ofmatchtable进行匹配:
1386 字
|
7 分钟
Cover Image of the Post
Linux文件描述符
我们知道在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。在操作这些所谓的文件的时候,我们每操作一次就找一次名字,这会耗费大量的时间和效率。所以Linux中规定每一个文件对应一个索引,这样要操…
1256 字
|
6 分钟
Cover Image of the Post
Linux阻塞、非阻塞与异步通知
阻塞状态下应用程序从驱动读取函数时,若kernel回报设备不可用,应用程序对应的线程将会进入睡眠,等待设备可用后由设备通知应用程序并将其唤醒以继续执行。
3221 字
|
16 分钟
Cover Image of the Post
Linux中断机制
IMX6ULL和IMX6UL的中断控制器呈兼容关系,即IMX6ULL继承IMX6UL的GIC节点信息。在imx6ul.dtsi中有:
1287 字
|
6 分钟
Cover Image of the Post
Linux内核定时器
新版本Kernel下定时器API得到了比较好的优化,以正点原子阿尔法基于4.4版本kernel的旧版API为例做对比:
1268 字
|
6 分钟
Cover Image of the Post
Linux并发与竞争
原子操作能够在无锁条件下实现线程安全操作,避免多个线程同时修改变量导致数据竞争。比较适用于简单的计数或标志变量等小型共享数据。但是原子操作只能保证单个原子变量的原子性,不能保护复杂数据结构。并且虽然其不会导致线程阻塞,但可能导致活锁,即…
1492 字
|
7 分钟
Cover Image of the Post
Linux字符设备驱动框架
字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。最常见的点灯、按键、IIC、SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。
2955 字
|
15 分钟
Cover Image of the Post
IMX6ULL Linux内核移植
关闭主机的Ubuntu的防火墙:
1337 字
|
7 分钟
Cover Image of the Post
NXP 官方u-boot移植和启动过程
Github 下载后拷贝tar.bz2至Linux,然后tar -vxjf
4291 字
|
21 分钟
Cover Image of the Post
IMX6UL DDR3配置
RAM:Random-access memory,随机存储器,随时读写,速度快,掉电后数据丢失。内存条即为常见的RAM。ARM中栈、堆(malloc申请的内存)、全局区(.bss段、.data段)都存放在RAM中。 ROM:Read-o…
1921 字
|
10 分钟
Cover Image of the Post
IMX6ULL外部中断配置
Cortex-A7的中断向量表共有8个异常中断,其中一个未使用,有效中断为7个:
5933 字
|
30 分钟
Cover Image of the Post
I.MX6ULL 时钟配置
包括以下三个时钟来源: 1. 外部晶振,高速晶振频率24Mhz,低速晶振频率32.768KHz 2. 低压差分信号 (LVDS) I/O 端口,用于从外部获取时钟信号 3. 锁相环(PLL),主时钟包含七个 PLL。其中两个 PLL 分…
1538 字
|
8 分钟
Cover Image of the Post
Linux下规范性Makefile规则
bsp clk (时钟驱动) bspclk.c bspclk.h delay (延时驱动) bspdelay.c bspdelay.h led (LED驱动) bspled.c bspled.h imx6ul cc.h (变量类型声明)…
1128 字
|
6 分钟
Cover Image of the Post
适用于Cortex-A的常见GNU汇编语法
GNU 汇编语法适用于所有的架构,并不是 ARM 独享的,GNU 汇编由一系列的语句组成,每行一条语句,每条语句有三个可选部分:label: instruction @ comment label:标号,表示地址位置 instructi…
2314 字
|
12 分钟
Cover Image of the Post
意外修改/usr/sudo所属组和权限后的恢复方法
使用arm-linux-gnueabihf-gcc交叉编译时,提示权限不足,尝试修改目标编译文件和sudo权限,意外对/usr/bin使用了sudo chmod 777 /usr/bin命令。
142 字
|
1 分钟