Linux基础
运动图像流
一只想飞的小菜鸟
展开
-
LINUX amixer工具及kcontrol使用
网上对amixer工具的使用较多,但使用kcontrol coding的例子有限,目前比较好的一篇文章如下:http://blog.chinaunix.net/uid-27875-id-5783294.htmlamixer指令:显示:amixer -c 0 controls读:amixer -c 0 cget iface=MIXER,name='ADC2LSource PIN Select'写:amixer -c 0 cset iface=MIXER,name='ADC2LSourc..原创 2020-08-23 09:58:24 · 712 阅读 · 0 评论 -
[Linux]DEVICE_ATTR的使用 - echo实现读写寄存器的一种方法
1.介绍使用DEVICE_ATTR,可以实现驱动在sys目录自动创建文件,我们只需要实现show和store函数即可.然后在应用层就能通过cat和echo命令来对sys创建出来的文件进行读写驱动设备,实现交互.2.DEVICE_ATTR()宏定义DEVICE_ATTR()定义位于include/linux/device.h中,定义如下所示:#define DEVICE_ATT...转载 2019-11-18 16:50:52 · 1004 阅读 · 0 评论 -
Linux中open/eventfd出现Too many open files的解决方法
最近在做Android P蓝牙协议栈的适配,由于原生的android系统在关闭蓝牙时,协议栈所在的进程会退出,所以协议栈中的资源释放做的很不完善,项目开发完成后做开关蓝牙的压力测试,100多次就会crash,原因是semaphore_new失败。而semaphore_new失败的原因是Too many open files导致eventfd(...)返回INVALID_FD。event...原创 2019-05-15 22:38:54 · 1233 阅读 · 0 评论 -
虚拟内存与物理内存的关系
操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且这是固定的,如果没有虚拟内存,且每次开启一个进程都给4G的物理内存,就可能会出现很多问题:因为我的物理内存时有限的,当有多个进程要执行的时候,都要给4G内存,很显然你内存小一点,这很快就...转载 2019-05-25 18:45:35 · 2353 阅读 · 0 评论 -
get_user/put_user与copy_from_user/copy_to_user
get_user/put_user与copy_from_user/copy_to_user都是用于用户空间与内核空间的数据交换,区别在于:1.get_user/put_user用于简单类型的拷贝,例如int、long;copy_from_user/copy_to_user用于拷贝大量数据,类似于memcpy;2.put_user与copy_to_user用于从内核空间向用户空间拷贝数据,g...原创 2019-09-09 19:58:19 · 1505 阅读 · 0 评论