诸暨东莞网站建设公司,深圳网站建设vr知识,wordpress网站字体大小,山西大川建设有限公司网站应用场景
由于有时候需要不同类型的屏幕显示#xff0c;但是来回烧写又显得非常的麻烦#xff0c;遇到上述问题的话#xff0c;我们可以采取以下方法去解决刚刚的问题。
适用平台
尝试过在STM32MP157,RK356X,RK3588里使用
menu指令代码描述
新建一个指令文件#xff1…应用场景
由于有时候需要不同类型的屏幕显示但是来回烧写又显得非常的麻烦遇到上述问题的话我们可以采取以下方法去解决刚刚的问题。
适用平台
尝试过在STM32MP157,RK356X,RK3588里使用
menu指令代码描述
新建一个指令文件u-boot/cmd/hybmenu.c
#include common.h
#include command.h
#include environment.hvoid do_choose_screen(void)
{char c;c getc();printf(option%c\n,c);switch (c){case 0:printf(choose [0] LCD Srceen \r\n );env_set(hyb_dts_index, 0);env_save();break;case 1:printf(choose [1] MIPI Srceen \r\n );env_set(hyb_dts_index, 1);env_save();break;case 2:printf(choose [2] HDMI Srceen \r\n );env_set(hyb_dts_index, 2);env_save();break;default:printf([0] default.... \r\n );env_set(hyb_dts_index, 2);env_save();break;}
}
//指令对应的操作函数
int do_menu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{printf(Please select the type of DTB you want\r\n);printf(******************************************\r\n );printf([0] LCD Srceen \r\n );printf([1] MIPI Srceen \r\n );printf([2] HDMI Srceen \r\n );printf(******************************************\r\n );do_choose_screen();return 0;
}U_BOOT_CMD(hybmenu, 2, 0, do_menu,choose menu,choose dtb menu
);u-boot/cmd/Makefile文件新增如下语句
obj-y hybmenu.o进入到uboot下的cmdLine模式启动
sdk/u-boot/common/autoboot.c
void autoboot_command(const char *s)
{debug(### main_loop: bootcmd\%s\\n, s ? s : UNDEFINED);if (stored_bootdelay ! -1 s !abortboot(stored_bootdelay)) {
#if defined(CONFIG_AUTOBOOT_KEYED) !defined(CONFIG_AUTOBOOT_KEYED_CTRLC)int prev disable_ctrlc(1); /* disable Control C checking */
#endifrun_command_list(s, -1, 0);#if defined(CONFIG_AUTOBOOT_KEYED) !defined(CONFIG_AUTOBOOT_KEYED_CTRLC)disable_ctrlc(prev); /* restore Control C checking */#endif}printf(hybmenu autostart...\r\n);run_command(hybmenu,0);
#ifdef CONFIG_MENUKEYif (menukey CONFIG_MENUKEY) {s env_get(menucmd);if (s)run_command_list(s, -1, 0);}
#endif /* CONFIG_MENUKEY */
}扩展
U_BOOT_CMD()函数
#define U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help) \U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, NULL)
_name: 命令的名称以字符串形式表示。
maxargs: 命令最大的参数个数包括命令本身。
_rep: 重复次数表示命令可以被连续执行的次数。
_cmd: 执行函数。
_usage: 命令的使用说明以字符串形式表示。
_help: 命令的帮助信息以字符串形式表示。