摘要: 自旋锁 自旋锁最多只能被一个内核任务持有。要是锁未被持有,请求它的内核任务便会立即得到它并继续执行。如果一个内核任务试图请求一个已经被别的内核任务持有的自旋锁,那么CPU就会一直尽心循环 旋转 等待锁重新可用。 Spinlock_t my_lock = SPIN_LOCK_UNLOCKED; 或者在 阅读全文
posted @ 2017-01-18 23:57 LinuxRookie 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 访问共享资源的代码区块叫“临界区”,临界区需要以某种互斥机制加以保护:自旋锁、信号量等。互斥访问:一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问。 信号量:在Liunx中的信号量是一种睡眠锁。假如进程A先持有信号量F,然后进程B试图获取已经被进程A持有的信号量F时(假如信号量F资源值为1 阅读全文
posted @ 2017-01-18 23:13 LinuxRookie 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 在使用设备树时我们将**.dts文件利用dtc编译器编译为**.dtb文件。 在已知**.dtb文件的情况下我们有两种方法可以得到dts源码: 方法一:使用fdtdump工具进行反汇编 使用命令:root#fdtdump **.dtb > temp.dts 反汇编生成的内容保存在temp.dts 方 阅读全文
posted @ 2017-01-18 21:58 LinuxRookie 阅读(4666) 评论(0) 推荐(0) 编辑
摘要: Linux3.1之前的版本,对于一般的ARM平台的设备,板级信息一般存放在/arch/arm/mach-**目录下。 设备树对应的文件存放在/arch/arm/boot/dts/***.dts目录下 设备树引入的目的: 避免各个厂商代码的重复,加速linux内核的bsp的开发。编译一个镜像可以支持多 阅读全文
posted @ 2017-01-18 00:41 LinuxRookie 阅读(1931) 评论(0) 推荐(0) 编辑
摘要: DTC编译器:设备树源码DTS文件编译为二进制文件DTB。 DTC编译器的作用:就是对设备树的源码的文件进行语法检查,根据linux的内核要求检查各个节点以及属性,将设备树源码编译生成二进制文件,以保证内核能启动。 DTC编译器源文件所在位置:/scripts/dtc/*** 编译DTS:在linu 阅读全文
posted @ 2017-01-18 00:37 LinuxRookie 阅读(2736) 评论(0) 推荐(0) 编辑