在特定硬件上移植U-Boot时,
函数必须解析标头才能使OS入口点跳入其中。
说,函数get是全局“ C”变量uint32_t osentry
的os入口点。
如何将此值设置为U-Boot shell命令'go'
?
我看到U-Boot go(shell)命令,必须设置为go $entry
在几个示例中,我看到该条目是固定地址设置为外壳环境值。
对我而言,它在全局'C'变量中。
答案 0 :(得分:0)
如何在C中将全局变量值设置为shell环境变量?
使用 env_set_addr()函数设置环境变量以用作普通程序变量中的地址。
来自 include / common.h :
/**
* env_set_addr - Set an environment variable to an address in hex
*
* @varname: Environment variable to set
* @addr: Value to set it to
* @return 0 if ok, 1 on error
*/
附录
由于某种原因,我在我使用的代码库中找不到此函数。
您忽略了所使用的U-Boot版本。
env_set()及其朋友显然是在2017.09版中引入的,以取代 setenv()及其朋友。
在用sprintf格式化后,我使用了类似的setenv()。
从2011.12版本开始,简单的 setenv()已使用 setenv_addr()和/或 setenv_hex()进行了增强,它将转换无符号的长整数,为您的十六进制数字字符串。
如果您仍在使用早于2011.12的U-Boot版本,则必须按照您的描述进行操作。