使用__setup从cmd命令行获取参数

内核组件用__setup宏来注册关键字及相关联的处理函数,__setup宏在include/linux/init.h中定义,其原型如下:
__setup(string, function_handler)
其 中:string是关键字,function_handler是关联处理函数。__setup只是告诉内核在启动时输入串中含有string时,内核要去执行function_handler。String必须以“=”符结束以使parse_args更方便解析。紧随“=”后的任何文本都会作为输入传给 function_handler。

(1)如果是读取数据,用如下方式:
static int g_ledCurrPulseCount = 1; //bklt pulse count from u-boot

static int __init bklt_pulse_get(char *str)
{
	int len = 0;

	if (str != NULL)
		len = kstrtou32(str, 10, &g_ledCurrPulseCount);
	pr_info("[LED] bklt pulse from uboot: %d\n", g_ledCurrPulseCount);
	return 0;
}

__setup(“bklt_pulse=”, bklt_pulse_get);

(2)如果是读取字符串,可以用如下方式:
static unsigned int pinctrl_autotest;

static __init int sprd_pinctrl_autotest_mode(char *str)
{
	if (strcmp(str, "autotest"))
		pinctrl_autotest = 0;
	else
		pinctrl_autotest = 1;

	return 0;
}

__setup(“androidboot.mode=”, sprd_pinctrl_autotest_mode);

这样就可以在驱动的probe函数中去使用pinctrl_autotest了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归心2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值