通过__setup宏解析bootloader传递上来的自定义参数

本文介绍如何在bootloader中通过添加特定参数实现内核功能的动态配置。通过在启动参数中加入ts=1,可以在内核启动时调用相应的处理函数,实现如GPIO到I2C转换等功能的配置。

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

bootloader参数console=ttyS0,115200 root=/dev/ram rw init=/linuxrc之类的,在此后面再加一条ts=1也就是console=ttyS0,115200 root=/dev/ram rw init=/linuxrc ts=1

在内核里添加ts=对应的handle函数及__setup宏
static int __init ts_setup(char *options)
{
printk("[ts_setup] %s/r/n",options);
return 1;
}
__setup("ts=", ts_setup);

当发现bootloader参数中含有ts=字符串时就调用ts_setup函数,=后的值就是options字符串。这样除了在menuconfig里选编译文件外还可以通过setup来选功能。让我想起了前2天老板叫我用配置文件确定gpio转i2c的io口,我之前用rootfs里的配置文件,现在可以转成用__setup来配置gpio口了。
setup在initcall之前
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值