分类: LINUX
2008-08-20 18:23:10
#defineU_BOOT_CMD(name,maxargs,rep,cmd,usage,help)\ cmd_tbl_t__u_boot_cmd_##nameStruct_Section={#name,maxargs,rep,cmd,usage,help}
#defineCFG_CMD_CACHE0x00000010ULL/*icache,dcache*/
#if(CONFIG_COMMANDS&CFG_CMD_CACHE) staticinton_off(constchar*s) {//这个函数解析参数,判断是打开cache,还是关闭cache if(strcmp(s,"on")==0){//参数为“on” return(1); }elseif(strcmp(s,"off")==0){//参数为“off” return(0); } return(-1); } intdo_icache(cmd_tbl_t*cmdtp,intflag,intargc,char*argv[]) {//对指令cache的操作函数 switch(argc){ case2:/*参数个数为1,则执行打开或者关闭指令cache操作*/ switch(on_off(argv[1])){ case0:icache_disable();//打开指令cache break; case1:icache_enable();//关闭指令cache break; } /*FALLTROUGH*/ case1:/*参数个数为0,则获取指令cache状态*/ printf("InstructionCacheis%s\n", icache_status()?"ON":"OFF"); return0; default://其他缺省情况下,打印命令使用说明 printf("Usage:\n%s\n",cmdtp->usage); return1; } return0; } …… U_Boot_CMD(//通过宏定义命令 icache,2,1,do_icache,//命令为icache,命令执行函数为do_icache() "icache-enableordisableinstructioncache\n",//帮助信息 "[on,off]\n" "-enableordisableinstructioncache\n" ); …… #endif
#defineU_BOOT_CMD(name,maxargs,rep,cmd,usage,help)\ cmd_tbl_t__u_boot_cmd_##nameStruct_Section={#name,maxargs,rep,cmd,usage,help}
/*********************************************************** *Commanddefinition ***********************************************************/ #defineCONFIG_COMMANDS\ (CONFIG_CMD_DFL|\ CFG_CMD_CACHE|\ CFG_CMD_REGINFO|\ CFG_CMD_DATE|\ CFG_CMD_ELF)