Linux
文章平均质量分 92
Linux内核和驱动笔记
Dokin丶
嵌入式码农
展开
-
Linux死机排查方法——内存日志
本文所描述的内存日志,并不是将内核的printk重定向到内存中,因为printk的打印太多了,如果将日志写入到内存中,那就比正常的串口printk快的多,对系统的影响最小。简而言之,这种方法就是将关键模块的日志保存在内存中,等到下一次启动时,再将这些日志全部dump出来。原创 2024-02-06 15:22:10 · 2429 阅读 · 0 评论 -
使用BlueZ连接蓝牙手柄
一、HOGP协议常见的蓝牙鼠标、蓝牙键盘、蓝牙手柄,它们都属于HID设备,但与有线设备不同的是,有线鼠标等设备属于USB HID设备,而蓝牙鼠标等设备属于Bluetooth HID设备,即协议是一样的,只是通信方式不同。HOGP是HID Over GATT Profile的缩写,即蓝牙HID设备是通过BLE的GATT来实现HID协议的。下图是手机BLE调试APP扫描获取到的手柄广播信息,点击"RAW"后可以看到原始的广播数据,解析结果如下:tpye 0x01:蓝牙的FLAG信息,0x06表示设备仅支持原创 2022-03-30 23:49:04 · 4983 阅读 · 2 评论 -
Linux自旋锁与互斥锁的区别与选用原则
一、区别1.实现方式上的区别:互斥锁是基于自旋锁实现的,所以自旋锁相较于互斥锁更加底层。2.开销上的区别:获取不到互斥锁时会发生上下文切换并休眠,而自旋锁则“自旋”在原地直到被获取。3.使用场景的区别:互斥锁只能在进(线)程中使用,不能在中断里使用,而自旋锁可以在中断里使用。4.使用方式上区别:互斥锁只能由获取到该锁的进(线)程来释放,而自旋锁没有这个限制,上锁和解锁一般是成对使用的。二、选用原则根据上述区别可得出以下三条选用原则:1.当需要保护的临界区较小时,宜选用自旋锁,否则原创 2020-11-02 00:45:04 · 4238 阅读 · 10 评论 -
Ubuntu安装libpng提示configure: error: ZLib not installed解决方法
编译安装zlib的过程中如果使用 prefix= 指定输出目录,等到安装libpng库的时候就会显示找不到zlib库的错误,错误信息:configure: error: ZLib not installed。 由于出现了这个问题,所以查询了很多网上的解决方案,基本上都是用make clean清除原先的zlib安装库,并且重新编译不加prefix=指转载 2020-09-19 21:44:37 · 2318 阅读 · 0 评论 -
make与sudo make的区别
在ubuntu上交叉编译的时候,make时使用的是arm-linux-gcc编译器,但提示文件没有权限,而使用sudomake则会使用默认的gcc编译器编译。因为sudomake会切换到root环境,在当前用户下export的一些环境变量不会生效,也就找不到交叉编译工具链的位置。解决办法:用chmod 777命令提升待编译文件访问权限,然后再用make命令编译。如下图所示。...原创 2020-09-02 23:38:33 · 5235 阅读 · 0 评论 -
windows上下载github上的linux内核项目遇到的问题
问题一:clone的时候报错Cloning into 'G:\github\linux'...POST git-upload-pack (gzip 27925 to 14032 bytes)remote: Counting objects: 6012062, done.remote: Compressing objects: 100% ...转载 2020-06-25 15:12:56 · 1637 阅读 · 0 评论