添加sysfs文件节点调试驱动

本文介绍了如何在驱动调试中通过sysfs添加文件节点来实现动态控制设备,包括定义kobject目录、device_attribute,创建文件目录和节点,以及实现存储函数,提供了一种方便的调试方法。
摘要由CSDN通过智能技术生成

驱动调试过程中我们经常需要借助adb或者串口动态控制设备,在sysfs中添加一个文件节点用来调试是一个十分方便调试的方法。
一下介绍下添加方法:

1.定义kobject目录和device_attribute
static struct kobject *xxx_deg;
static struct device_attribute xxx_deg_attrs =
__ATTR(xxx_debug, 0200, NULL,xxx_store);//出于对权限的限制,注意这里需要把权限设置为不可写,否则内核在编译过程中会强制报错,需要用户手动给予权限
2.在driver probe过程中创建文件目录以及文件节点

xxx_deg = kobject_create_and_add(“xxx_deg_dir”,NULL);
sysfs_create_file(xxx_deg,xxx_deg_attrs .attrs);

3.实现xxx_store函数
static ssize_t xxx_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
{
int ret;
char cmd;
u32 input[2];

ret = sscanf(buf, "%c ", &cmd);
switch (cmd) {
case 'w':
	ret = sscanf(buf, "%c %x %x ", &cmd, &input[0], &input[1]);
	if (ret != 3) {
		pr_err("erro! cmd format: echo w [addr] [value]\n");
		goto ou
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值