从U-boot使用tftpboot时,是否将软件映像加载到非易失性RAM中?
我有一个连接到RHEL工作站的Xilinx开发板。从U-boot使用tftpboot时,是否将软件映像加载到非易失性RAM中?
我有U-boot通过JTAG加载并使用minicom连接到它。
然后我tftpboot helloworld独立应用程序。
这些图像去哪里?
我知道我在指定一个loadaddr,但我不完全理解其含义。
当我运行独立应用程序时,我在串行控制台上得到各种输出。
第一次让它正常工作,但是在构建时开始尝试不同的东西。
它几乎像我打破记忆的感觉,但我在电源循环后假设任何tftp'd将会丢失。
这个问题依然在电源循环中发生。
这些图像去哪里?
U-Boot的命令语法如下:
tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
您可以明确指定存储目标地址为loadAddress参数。
当从命令中省略loadAddress参数时,则内存目标地址默认为环境变量loadaddr的值。
请注意,其他几个U-Boot命令也使用此变量,例如“bootp”,“rarpboot”,“loadb”和“diskboot”。
我知道我指定了一个loadaddr,但我不完全理解其含义。
当我运行独立应用程序时,我在串行控制台上得到各种输出。
loadAddress只是传输文件将被写入的内存的起始地址。
对于独立应用程序,此loadAddress应与用于链接此程序的CONFIG_STANDALONE_LOAD_ADDR相匹配。
同样,执行这个独立应用程序的“go”命令应该使用相同的CONFIG_STANDALONE_LOAD_ADDR。
例如,假设电路板的物理内存从0x20000000开始。
为了允许程序使用可用存储器的最大量,该程序被配置成在启动:
#define CONFIG_STANDALONE_LOAD_ADDR 0x20000000
为了方便装载,定义环境变量(在U-Boot的提示):
setenv loadaddr 0x20000000
假设SERVERIP变量与TFTP服务器的IP地址所定义,然后将U型引导命令
tftpboot hello_world.bin
应该从服务器检索该文件,并将其存储在0x20000000。
使用
go 20000000
执行程序。
我一个电源周期的任何tftp'd会丢失后承担。
它应该。
但是在电源周期结束后,“易失”内存可能会持续存在的情况是不可预测的。你也不能确定一个默认值,比如全零或全零。除非知道已经初始化并写入,否则动态RAM的内容应始终假定为未知。
从U-boot使用tftpboot时,是否将软件映像加载到非易失性RAM中?
仅当您的主板具有非易失性主内存(例如铁氧体内核或电池供电的SRAM,这不太可能)时。
您可以使用“md”(内存显示)命令来检查RAM。