调试I2C设备时经常需要修改寄存器的值,通常的方法是修改-》编译-》烧写-》重启,哪怕改一个寄存器也要这样折腾一下,很消耗时间,下面提供一种在线修改寄存器的方法,在终端中敲命令就可以写寄存器,不要上面那些步骤.
这个方法的基础是读写/proc文件系统,不熟悉这个的可以自行学习,下面分步骤说明一下这种方法,注意这只是一个框架如果相拥在自己的系统上可能还有一些细要适配。
1.创建/proc文件节点
这个文件节点就是用户和设备寄存器交互的节点
[cpp]view plaincopystaticint__initcam_create_procfs(void) { structproc_dir_entry*proc_cam_root=NULL; structproc_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; return0; }
device_proc_fops这个要定义,
[html]view plaincopystaticconststructfile_operationscam_proc_fops={ .owner=THIS_MODULE, .write=device_proc_write, .read=device_proc_read, /*.open=led_proc_open, .read=seq_read, .llseek=seq_lseek, .release=single_release, .write=device_proc_write,*/ };