- 博客(7)
- 收藏
- 关注
转载 gpio_direction_output 与 gpio_set_value
gpio_set_value(port_num,0/1)只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了! 而gpio_direction_output (port_num,0/1),在某个GPIO口写上某个值之后,还会把这个端口设置为输出模式。因此,有人也许就会建议,把gpio_set_value这个函数直接去掉不用,是否可以,显然是可以的。
2016-01-14 12:20:35 710
原创 #ifdef和#if defined的异同
最近在看代码时发现使用宏控时既有用#ifdef MACRO,也有的用#if defined(MACRO),那么两者之间到底是什么关系呢,是不是一样的?仔细查了一下,发现有相同亦有不同之处:#ifdef MACRO和#if defined(MACRO)都是预处理运算符对于判断单个情况下两者是相同的,比如:#ifdef MACRO== #if defined(MACRO)#
2015-09-24 09:16:33 724
转载 linux驱动之input设备
1. Linux内核输入体系的构架 输入设备硬件可能直接连入系统,也可能经由其他总线的接入,因此输入设备驱动可能直接面向硬件,也可能面向下层的总线驱动。输入设备驱动负责管理具体的输入设备硬件,其主要的任务是注册输入设备,然后读取硬件产生的各种信号,并转化为输入事件,向输入系统的核心报告。 输入子系统由输入子系统核心层、驱动层和事件处理层构成,一个输入事件,如鼠标移
2015-09-23 15:32:30 403
转载 linux INIT_WORK 创建工作队列
Linux 2.6内核使用了不少工作队列来处理任务,他在使用上和 tasklet最大的不同是工作队列的函数可以使用休眠,而tasklet的函数是不允许使用休眠的。工作队列的使用又分两种情况,一种是利用系统共享的工作队列来添加自己的工作,这种情况处理函数不能消耗太多时间,这样会影响共享队列中其他任务的处理;另外一种是创建自己的工作队列并添加工作。(一)利用系统共享的工作队列添加工作:
2015-09-21 18:19:25 386
转载 linux中原子操作atomic_read、atomic_set、atomic_add、atomic_sub
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位。因此这里的原子实际是使用了物理学里的物质微粒的概念。原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。原子操作主要用于实现资源计
2015-09-08 21:37:46 34865
转载 Linux中find常见用法
Linux中find常见用法示例·find path -option [ -print ] [ -exec -ok command ] {} \;#-print 将查找到的文件输出到标准输出#-exec command {} \; —–将查到的文件执行command操作,{} 和 \;之间有空格#-ok 和-exec相同,只
2015-09-08 20:27:08 347
转载 Linux系统开发:文件的i节点
Linux文件系统是Linux系统的心脏部分,提供了层次结构的目录和文件。文件系统将磁盘空间划分为每1024个字节一组,称为块(也有用512字节为一块的,如:SCOXENIX)。编号从0到整个磁盘的最大块数。 全部块可划分为四个部分,块0称为引导块,文件系统不用该块;块1称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其他两部分的大小。从块2开始是i节点表,i节点表中含有i节
2015-01-25 19:08:38 371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人