- 博客(11)
- 收藏
- 关注
原创 linux 休眠时打印GPIO的状态
我们知道cat /sys/kernel/debug/gpio节点,可以打印当前gpio的状态信息,输出输入、输出高低、输入高低、上拉下拉浮空、gpio func配置等信息。提示:以下是本篇文章正文内容,下面案例可供参考。
2025-07-26 11:37:42
112
原创 linux内核dump之Use-After-Free问题分析
Use-After-Free,即释放后使用,是指程序在释放了某块动态分配的内存后,继续使用该内存。这种操作会导致访问已释放的内存区域,可能引发严重的运行时错误和安全问题。对于Use-After-Free,如果是本模块继续使用了释放的内存,那么这个问题就比较好进行排查。如果是非本模块使用了该段内存,那么只能在茫茫的内核代码中大海捞针,比较难排查和定位了。下面介绍一个内核Use-After-Free的案例。
2025-06-27 12:15:26
591
原创 qcom平台uart配置:qcom,wakeup-byte和qcom,auto-suspend-disable总结
调用queue_delayed_work执行中断的后半部:msm_geni_wakeup_work函数。接收数据时会判断RX收到的第一帧是否是qcom,wakeup-byte定义的字节。这个会把串口的唤醒起来2s,从而接收数据。msm_geni_serial_get_irq_pinctrl->执行。当串口休眠的时候,拉高RX,从而产生中断来接收RX的数据。
2025-06-26 17:13:18
196
原创 linux设备节点/dev的创建总结
内核共提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()、alloc_chrdev_region()和 register_chrdev()。1、register_chrdev_region()、alloc_chrdev_region()和 register_chrdev()。3、 /*class_device_create 在/dev下创建 noddev0设备*//*删除创建的设备文件*/
2025-02-08 09:21:41
248
原创 高通平台linux pinctl的GPIO配置
最近遇到一个问题,在spi控制器的驱动当中,在probe函数看到有通过devm_pinctrl_get获取到spi的pinctl配置,在驱动当中有一处代码是配置了spi pinctl为active状态,但是加打印,这段代码并没有跑到,我就有点疑惑。如果在传输的时候,没有配置spi为spi功能的话,怎么去传输数据呢?带走这个疑问,让我们看看pinctl的配置和选择到底是怎么样的?
2025-02-07 10:40:26
897
原创 Linux iio子系统框架学习
ADC芯片;DAC芯片;温度传感器;光感器;陀螺仪;加速度计;CDCs;IMUs压力传感器等等描述一个iio device//表示iio device支持的模式//iio buffer,与iio设备绑定。针对连续采集数据模式//可使用的channel的掩码//iio trigger触发//trigger触发中断函数//event的中断处理函数//iio device所有channel的相关参数信息//channel的读写回调函数。
2025-01-15 17:35:08
1173
原创 linux设备树,dts、dtsi、dtb、dtbo、dtc的区别
dtbo:(Device Tree Overlay)是一种动态加载的设备树扩展,对基础DTB的增量或局部修改描述。它可以添加、修改或删除设备树中的节点和属性,以适应不同的硬件配置或需求。dtbo文件可以通过设备树覆盖机制加载到运行中的设备树中。dtb: 被dtc编译生成的二进制文件,用于在Linux内核启动时传递给内核。它是设备树源文件(.dts)编译生成的二进制文件,包含了设备树的所有信息。dtb是完整的系统设备树,而dtbo则是对dtb的一种补充或覆盖。
2024-08-16 12:11:04
1448
原创 关于emmc挂载后如何umount
把进程kill掉之后,可能会又在次起来,这时候就需要把拉起进程的服务给stop掉。我们想要umont emmc的时候,常会遇到:target is busy.这种情况是有进程在读写emmc挂载的目录,我们需要把他给停掉,才能umont。1、mount | grep mmc查看emmc挂载到那个目录下。2、fuser -m 查看哪些进程在占用它。利用systemctl stop命令,停掉服务。3、kill 掉占用的进程。
2024-05-24 15:03:35
300
1
原创 以太网RGMII/MII/RMII接口回环测试方案
1、模组的MAC通过RGMII/MII/RMII接口与PHY连接2、MAC层数据经过RGMII到达PHY的PCS层3、设置PHY的PCS层回环,使PCS层数据回到MAC层4、判断MAC层TX与RX接收的数据。如果MAC能接收到数据,测试PASS,否则失败。
2023-12-15 16:05:06
2515
原创 linux设备、驱动、总线匹配流程
Linux设备驱动模型中,需要我们关心总线、设备、驱动三个实体,总线将设备和驱动进行绑定,在内核每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,也会寻找与之匹配的设备,而匹配由总线完成。一般而言,一个现实的Linux设备和驱动需要挂接在一种总线上。记得有次面试的时候,面试官问我linux设备和驱动具体是如何匹配的。当时没有很详细的回答出来,我们可能就知道是通过设备树中的compatible熟悉进行匹配,但具体的匹配流程可能不知道。
2023-07-21 14:42:07
1292
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人