linux启动时uboot传递进console=ttyS0,115200n8的参数
内核中用__setup()宏声明参数处理的方法
关于__setup宏参考 early_param和__setup宏
__setup("console=", console_setup);
console_setup函数处理
1.console_cmdline结构体
struct console_cmdline
{
char name[8]; //驱动名
int index; //次设备号
char *options; //选项
#ifdef CONFIG_A11Y_BRAILLE_CONSOLE
char *brl_options;
#endif
};
2.console_setup
static int __init console_setup(char *str)
{
char buf[sizeof(console_cmdline[0].name) + 4]; //分配驱动名+index的缓冲区
char *s, *options, *brl_options = NULL;
int idx;
#ifdef CONFIG_A11Y_BRAILLE_CONSOLE
if (!memcmp(str, "brl,", 4)) {
brl_options = "";
str += 4;
} else if (!memcmp(str, "brl=", 4)) {
brl_options = str + 4;

本文详细探讨了Linux启动时U-Boot如何传递'console=ttyXXX'参数,阐述了内核中如何通过__setup()宏声明参数处理方法,以及console_setup函数的工作流程。该参数用于配置全局console_cmdline数组,影响console设备驱动的选择和初始化。
最低0.47元/天 解锁文章
336

被折叠的 条评论
为什么被折叠?



