linux 驱动调试时在线读写I2C寄存器的方法(2)
时间:12-13 14:10 阅读:1034次
*温馨提示:点击图片可以放大观看高清大图
简介: 调试I2C设备时经常需要修改寄存器的值,通常的方法是修改-》编译-》烧写-》重启,哪怕改一个寄存器也要这样折腾一下,很消耗时间,下面提供一种在线修改寄存器的方法,在终端中敲命令就可以写寄存器,不要上面那些步骤.
2.实现读写函数
staticcharmsg[255];
staticintdevice_proc_write(structfile*file,constchar*buf,
size_tcount,loff_t*pos)
{
char*value;
char*temp;
char*ptr;
unsignedintbuff[3];
inti=0;
u32data=0;
if(copy_from_user((void*)msg,buf,count))
return-EFAULT;
value=msg;//simple_strtoul(msg,NULL,0);
ptr=strrchr(value,'w');
while((temp=strsep(&value,""))!=NULL)
{
if(i==0)
{
sscanf(temp,"%x",&buff[0]);
i++;
}
else
sscanf(temp,"%x",&buff[1]);
}
if(ptr!=NULL)
{
printk("writercmd\n");
xxx_i2c_write(client->addr,buff[0],buff[1],10);
}
else{
printk("readcmd\n");
xxx_i2c_read_byte(client->addr,buff[0],&data);
printk("data%x\n",data);
}
return0;
}
xxx_i2c_write是你的驱动代码使用的i2c写函数,这个要自己实现。