uclinux-2008R1-RC8(bf561)到VDSP5的移植(11):cmdline_init

本文介绍U-Boot向操作系统传递参数的过程,并展示了如何在不使用U-Boot的情况下直接引导,通过修改cmdline_init函数来保存和处理引导参数。
 
  
在head.s中,有这样的调用:
       /* pass the uboot arguments to the global value command line */
       R0 = R7;
       call _cmdline_init;
实际上就是将u-boot传递过来的参数保存下来,在合适的时间传送给相应的模块(参见《 u-boot向uClinux的参数传递》一文)。因为在此并不使用u-boot这样的引导程序,而是直接引导,因此做了适当的修改。
首先看看cmdline_init的实现,此函数在 arch/blackfin/kernel/setup.c(714)
char __initdata command_line[COMMAND_LINE_SIZE];
 
void __init cmdline_init(const char *r0)
{
     if (r0)
         strncpy(command_line, r0, COMMAND_LINE_SIZE);
}
很简单,就是保存参数,在后面启动的过程中再对此参数进行分析。
原想将参数定义放在config.h中,但是这样一来,每次修改参数必然造成整个内核的重新编译,太痛苦了,因此直接将保存参数的字符串替换掉r0。
 
void __init cmdline_init(const char *r0)
{
     //if (r0)
     //   strncpy(command_line, r0, COMMAND_LINE_SIZE);
     if (r0)
         strncpy(command_line, "", COMMAND_LINE_SIZE);
}
暂时使用了一个空字符串,内容在后面添加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌云阁主

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

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

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

打赏作者

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

抵扣说明:

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

余额充值