热度 19
2013-9-6 22:19
3938 次阅读|
0 个评论
/*main_loop处理的是一些与平台无关的事情 基本上是一些uboot的人机交互 执行命令之类 看的不多 多多少少有些注释 只知道一些大概功能 不过一般应该用不到这些功能吧 写在这就是一个笔记 有问题还望多多指教*/ void main_loop (void) { #ifndef CFG_HUSH_PARSER static char lastcommand = { 0, };//static 静态局部全局变量(就是第二次调用函数时这个变量还是原来的值) //static声明的变量只能初始化一次如果不赋值 默认为0 //如果static声明一个全局变量 那么 这个变量只能应用在这个文件 不能被其他文件引用 int len; int rc = 1; int flag; #endif #if defined(CONFIG_BOOTDELAY) (CONFIG_BOOTDELAY = 0) char *s; int bootdelay; #endif #ifdef CONFIG_PREBOOT char *p; #endif #ifdef CONFIG_BOOTCOUNT_LIMIT //这个是商业功能 如果没有license 只能用几次 。一般不用 unsigned long bootcount = 0; unsigned long bootlimit = 0; char *bcs; char bcs_set ; #endif /* CONFIG_BOOTCOUNT_LIMIT */ #if defined(CONFIG_VFD) defined(VFD_TEST_LOGO) ulong bmp = 0; /* default bitmap */ extern int trab_vfd (ulong bitmap); #ifdef CONFIG_MODEM_SUPPORT //如果支持modem modem是串口传输协议 if (do_mdm_init) bmp = 1; /* alternate bitmap */ #endif trab_vfd (bmp); #endif /* CONFIG_VFD VFD_TEST_LOGO */ #ifdef CONFIG_BOOTCOUNT_LIMIT bootcount = bootcount_load(); bootcount++; bootcount_store (bootcount); sprintf (bcs_set, "%lu", bootcount); setenv ("bootcount", bcs_set); bcs = getenv ("bootlimit"); bootlimit = bcs ? simple_strtoul (bcs, NULL, 10) : 0; #endif /* CONFIG_BOOTCOUNT_LIMIT */ #ifdef CONFIG_MODEM_SUPPORT debug ("DEBUG: main_loop: do_mdm_init=%d\n", do_mdm_init); if (do_mdm_init) { char *str = strdup(getenv("mdm_cmd")); setenv ("preboot", str); /* set or delete definition */ if (str != NULL) free (str); mdm_init(); /* wait for modem connection */ } #endif /* CONFIG_MODEM_SUPPORT */ #ifdef CONFIG_VERSION_VARIABLE { extern char version_string = 0; } } #endif /*CFG_HUSH_PARSER*/ }