S3C2440_uboot2010.06_启动菜单移植手册.pdf
文本预览下载声明
十三、添加启动菜单
在command 目录中新建cmd_menu.c,代码如下:
#include common.h
#include command.h
static char awaitkey(unsigned long delay, int *error_p)
{
int i;
if(delay == -1)
{
while(1)
{
if(tstc()) //we got a key press
return getc();
}
}
else
{
for(i = 0; i delay; i++)
{
if(tstc()) //we got a key press
return getc();
udelay(10 * 1000);
}
}
if(error_p)
*error_p = -1;
return 0;
}
void main_menu_usage(void)
{
if(bBootFrmNORFlash == 1)
{
printf(******** S3C2440 NOR 启动 UBOOT 下载模式 ********\r\n);
}
else
{
printf(******** S3C2440 NAND 启动 UBOOT 下载模式 ********\r\n);
}
printf(************************************************\r\n);
printf([1] 下载u-boot 写入到Nand Flash\r\n);
printf([2] 下载zImage 内核镜像写入到Nand Flash\r\n);
printf([3] 下载yaffs2 文件系统写入到Nand Flash\r\n);
printf([4] 重新启动\r\n);
printf([0] 退出菜单\r\n);
printf(************************************************\r\n);
if(bBootFrmNORFlash == 1)
{
printf([o] 下载u-boot 写入到Nor Flash\r\n);
}
printf(输入选择:);
}
void menu_shell(void)
{
char c;
char cmd_buf[200];
while(1)
{
main_menu_usage();
c = awaitkey(-1, NULL);
printf(%c\n,c);
switch(c)
{
case 1:
{
strcpy(cmd_buf,usbslave 1 0 nand erase bios; nand
write 0bios);
run_command(cmd_buf,0);
break;
}
case 2:
{
strcpy(cmd_buf,usbslave 1 0 nand erase kernel; nand
write 0
显示全部