新浪微博:旺旺-LINUX 记录学习LINUX/ARM过程中的点点滴滴
------------------------------------------------------------------------------------------------------------------------------
一个很有用的工具,以前竟然不知道。 print the offsets of a structure fields:
Syntax: pahole [-C ] -------------------------------------------------------------------------------
Finding memory leaks in kernel with kmemleak
来自
--------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------
bic 是 bit clear 指令。 bic sp,sp,#7 能让sp八字节对齐。
来自
--------------------------------------------------------------------------------------------------------------------------------------------------------------
原来ARM一个WFI指令就能让一个CPU核进入休眠状态??
用C语言实现文件拷贝?先read再write要数据从内核空间拷贝到用户空间,再从用户空间拷贝到内核空间,必然低效的。sendfile系统调用可以直接在内核空间拷贝,避免从用户空间中转。sendfile常用作从文件到socket拷贝,但从2.6.33内核开始也支持从文件到文件拷贝。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
kennel居然是狗窝的意思,怎么跟kernel长这么像呢?
--------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------
ALSA的驱动程序框架真复杂,特别是里面的DMA处理和中断处理,需要花时间研究一下才能搞明白。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
内核定时器函数能不能睡眠?内核定时器是用软中断SOFTIRQ实现的,定时器超时调用的函数运行在软中断上下文中,不能休眠。软中断可以被中断抢占,但不能发起进程调度。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
在内核里怎样实现轮询机制?假如你要监视一个GPIO口的状态, 而由于硬件设计的限制该GPIO状态改变时并没有中断产生,这时就需要每隔一段时间读一下GPIO值。 为这点小事而创建一个内核线程(kthread)显然不是好主意。比较好的办法是使用内核定时器。
内核定时器到期后会调用设定的函数读取GPIO状态,然后再重启定时器。这样就可以周期性地轮询GPIO口的状态。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
一个Linux字符设备驱动。Android系统起来后,能在dev目录下自动创建设备节点,要读写这个设备却提示没有权限。在哪里更改设备节点的权限呢?答案是ueventd.rc文件里。虽然init.rc里也可以,但毕竟不太好。
来自
--------------------------------------------------------------------------------------------------------------------------------------------------------------
阅读(2455) | 评论(0) | 转发(0) |