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