数码资讯
理解uboot执行过程中添加命令
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
引导加载程序是嵌入式系统软件开发的第一步。它连接操作系统和硬件平台。这是非常重要的用于嵌入式系统的后续软件开发和占据整个development.u-boot很大比例是一种流行和强大的bootloader,可以支持多种architectures.lh7a400是基于ARM922T内核的32位RISC芯片的夏普公司生产。本文介绍了U-Boot的功能和特点,以及移植过程中对lh7a400处理器。我希望能帮助你更好地理解uboot命令的执行过程。
具体内容如下:
U-Boot命令为用户提供了互动功能,实现了常用命令数十名。如果开发板需要一个非常特殊的操作,你可以添加一个新的u-boot命令。
每个的U-Boot命令是由u_boot_cmd宏定义,宏是在包括 /命令定义。h头文件,并且每个命令定义一个cmd_tbl_t结构。
#定义u_boot_cmd(名称、maxargs,代表,CMD,使用帮助)
cmd_tbl_t __u_boot_cmd_ # #名字struct_section = =
{ #名字,maxargs,代表,CMD,用法,帮助}
所以每个U-Boot命令有一个结构来描述。一个结构的成员变量包括命令的名称、参数的最大数量,重复数,执行命令的功能,用法,和帮助。
命令进入控制台是由普通 /命令程序解释C.(这就是我要找的)find_cmd()负责匹配输入的命令从列表中找到相应的命令结构。
基于u-boot命令的基本框架,来分析一个简单的高速缓冲存储器操作命令,你可以添加新的命令的方式。
(1)定义缓存命令。所有u-boot命令旗中有定义 / cmd_confdefs。H.
#定义cfg_cmd_cache 0x00000010ull内容* / / *数据缓存。
如果你有更多的命令,你必须在这里添加一个定义。
(2)缓存的命令操作功能。以下是在普通/ cmd_cache指挥部指令缓存的代码。C文件。
#如果(config_commands cfg_cmd_cache)
静态变量on_off(const char *)
{此函数解析参数,判断为打开缓存,还是封闭缓存
如果(StrCmp(S,对)= = 0){ / /参数on
返回(1);
否则如果}(StrCmp(S,关闭)= = 0){ / /参数off
返回(0);
}
返回(- 1);
}
国际do_icache(cmd_tbl_t * cmdtp,中断标志,int argc、argv char * { })
{用于指令缓存操作功能
开关(argc){
情况2的数量:参数为1,执行打开或关闭缓存操作指令。
开关(on_off(argv { 1 })){
案例0:(icache_disable) / /打开缓存;
打破;
案例1:icache_enable(缓存); / /关闭指令
打破;
}
下降槽
情况1的数量:参数为0,获取缓存状态/指令
printf(指令缓存为锡
icache_status()关闭);
返回0;
默认值:其他缺省打印命令指令
printf(用法:N %锡
返回1;
}
返回0;
}
hellip;hellip;
u_boot_cmd( / /宏定义命令
高速缓冲存储器,2, 1,do_icache /指令缓存指令的执行功能,do_icache(命令)
内容-启用或禁用指令cachen / /帮助信息
打开,关闭
- enable or disable instruction cachen
);
hellip;hellip;
# endif
在U-Boot命令都是由__u_boot_cmd_ # #名字所描述的结构是明确的,u_boot_cmd定义在两线包括 /命令。H.
#定义u_boot_cmd(名称、maxargs,代表,CMD,使用帮助)
cmd_tbl_t __u_boot_cmd_ # #名字struct_section = =
{ #名字,maxargs,代表,CMD,用法,帮助}
还有,别忘了在普通/ makefile编译目标文件添加。
(3)打开的config_commands选项的命令标志。文件从一个# if语句需要预处理包含命令功能的程序,config_commands选项在开发板的配置文件中定义的。例如,SMDK2410平台具有以下的定义包括 / / SMDK2410配置H.
/ ***********************************************************
*命令定义
*********************************************************** /
#定义config_commands
(config_cmd_dfl |
cfg_cmd_cache |
cfg_cmd_reginfo |
cfg_cmd_date |
cfg_cmd_elf)
根据这3个步骤,你可以添加一个新的u-boot命令。
具体内容如下:
U-Boot命令为用户提供了互动功能,实现了常用命令数十名。如果开发板需要一个非常特殊的操作,你可以添加一个新的u-boot命令。
每个的U-Boot命令是由u_boot_cmd宏定义,宏是在包括 /命令定义。h头文件,并且每个命令定义一个cmd_tbl_t结构。
#定义u_boot_cmd(名称、maxargs,代表,CMD,使用帮助)
cmd_tbl_t __u_boot_cmd_ # #名字struct_section = =
{ #名字,maxargs,代表,CMD,用法,帮助}
所以每个U-Boot命令有一个结构来描述。一个结构的成员变量包括命令的名称、参数的最大数量,重复数,执行命令的功能,用法,和帮助。
命令进入控制台是由普通 /命令程序解释C.(这就是我要找的)find_cmd()负责匹配输入的命令从列表中找到相应的命令结构。
基于u-boot命令的基本框架,来分析一个简单的高速缓冲存储器操作命令,你可以添加新的命令的方式。
(1)定义缓存命令。所有u-boot命令旗中有定义 / cmd_confdefs。H.
#定义cfg_cmd_cache 0x00000010ull内容* / / *数据缓存。
如果你有更多的命令,你必须在这里添加一个定义。
(2)缓存的命令操作功能。以下是在普通/ cmd_cache指挥部指令缓存的代码。C文件。
#如果(config_commands cfg_cmd_cache)
静态变量on_off(const char *)
{此函数解析参数,判断为打开缓存,还是封闭缓存
如果(StrCmp(S,对)= = 0){ / /参数on
返回(1);
否则如果}(StrCmp(S,关闭)= = 0){ / /参数off
返回(0);
}
返回(- 1);
}
国际do_icache(cmd_tbl_t * cmdtp,中断标志,int argc、argv char * { })
{用于指令缓存操作功能
开关(argc){
情况2的数量:参数为1,执行打开或关闭缓存操作指令。
开关(on_off(argv { 1 })){
案例0:(icache_disable) / /打开缓存;
打破;
案例1:icache_enable(缓存); / /关闭指令
打破;
}
下降槽
情况1的数量:参数为0,获取缓存状态/指令
printf(指令缓存为锡
icache_status()关闭);
返回0;
默认值:其他缺省打印命令指令
printf(用法:N %锡
返回1;
}
返回0;
}
hellip;hellip;
u_boot_cmd( / /宏定义命令
高速缓冲存储器,2, 1,do_icache /指令缓存指令的执行功能,do_icache(命令)
内容-启用或禁用指令cachen / /帮助信息
打开,关闭
- enable or disable instruction cachen
);
hellip;hellip;
# endif
在U-Boot命令都是由__u_boot_cmd_ # #名字所描述的结构是明确的,u_boot_cmd定义在两线包括 /命令。H.
#定义u_boot_cmd(名称、maxargs,代表,CMD,使用帮助)
cmd_tbl_t __u_boot_cmd_ # #名字struct_section = =
{ #名字,maxargs,代表,CMD,用法,帮助}
还有,别忘了在普通/ makefile编译目标文件添加。
(3)打开的config_commands选项的命令标志。文件从一个# if语句需要预处理包含命令功能的程序,config_commands选项在开发板的配置文件中定义的。例如,SMDK2410平台具有以下的定义包括 / / SMDK2410配置H.
/ ***********************************************************
*命令定义
*********************************************************** /
#定义config_commands
(config_cmd_dfl |
cfg_cmd_cache |
cfg_cmd_reginfo |
cfg_cmd_date |
cfg_cmd_elf)
根据这3个步骤,你可以添加一个新的u-boot命令。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。