歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

uclinux-2008R1-RC8(bf561)到VDSP5的移植(11):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);
}

暫時使用了一個空字符串,內容在後面添加。

Copyright © Linux教程網 All Rights Reserved