linux 驱动调试时在线读写I2C寄存器的方法

本文介绍了如何在Linux驱动调试过程中,通过/proc文件系统在线读写I2C设备的寄存器,避免了传统修改-编译-烧写-重启的繁琐流程。文章分为创建/proc文件节点、实现读写函数及实际操作使用三个步骤,以写入OV2655传感器的0x3390寄存器为例进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     调试I2C设备时经常需要修改寄存器的值,通常的方法是修改-》编译-》烧写-》重启,哪怕改一个寄存器也要这样折腾一下,很消耗时间,下面提供一种在线修改寄存器的方法,在终端中敲命令就可以写寄存器,不要上面那些步骤.

      这个方法的基础是读写/proc文件系统,不熟悉这个的可以自行学习,下面分步骤说明一下这种方法,注意这只是一个框架如果相拥在自己的系统上可能还有一些细要适配。

1.创建/proc文件节点

这个文件节点就是用户和设备寄存器交互的节点

static int __init cam_create_procfs(void)
{
	struct proc_dir_entry *proc_cam_root = NULL;
	struct proc_dir_entry *ent;

	proc_cam_root = proc_mkdir("cam", 0);
	if (!proc_cam_root) return -1;

	ent = proc_create_data("device", 0777, proc_device_root,
					&device_proc_fops, NULL); 
		if (!ent) return -1;

	return 0;
}

device_proc_fops这个要定义,

static const struct file_operations cam_proc_fops = {
	.owner		= THIS_MODULE,
	.write		= device_proc_write,
	.read       = device_proc_read,
	/*.open		= led_proc_open,
	.read		= seq_read,
	.llseek		= seq_lseek,
	.r
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值