ARM引导加载程序:TEXT_BASE的值

ARM引导加载程序:TEXT_BASE的值,arm,bootloader,Arm,Bootloader,在我们开始编写引导加载程序时,正确计算TEXT_BASE的值很重要,但是我还没有找到一个教程来解释如何根据平台数据表或其他资料找到这个值。例如,对于arm920t和sumsang s3c24x0,u-boot定义文本_BASE=0x33F80000,原因如下: SMDK2410有一组64 MB DRAM 3000'0000至3400'0000 Linux内核预计为3000'8000,条目3000'8000可选,ramdisk为3080'0000 我们将自己加载到33F8'0000 下载区域为33

在我们开始编写引导加载程序时,正确计算TEXT_BASE的值很重要,但是我还没有找到一个教程来解释如何根据平台数据表或其他资料找到这个值。例如,对于arm920t和sumsang s3c24x0,u-boot定义文本_BASE=0x33F80000,原因如下:

SMDK2410有一组64 MB DRAM
3000'0000至3400'0000
Linux内核预计为3000'8000,条目3000'8000可选,ramdisk为3080'0000
我们将自己加载到33F8'0000
下载区域为3300'0000

有人能解释一下逻辑吗?谢谢


ps:我还希望知道u-boot加载到ram后的内存布局、每个数据/指令部分的地址、bss、rodata、zi等以及大小。我希望有人能给我一些关于anaylyse的教程,谢谢

TEXT\U BASE
是U-boot映像的基址,也就是它开始执行的位置,这并不奇怪。因此,如果U-boot直接从闪存运行,那么它就是闪存的地址。或者,如果ROM/固件负责加载U-boot,那么它就是RAM U-boot中加载到的任何地址。因此,如果您将
TEXT\u BASE
设置为不同的地址,它将链接错误,并且可能在重新定位步骤中中断


至于图像布局,有什么问题吗?阅读链接器脚本,或者只运行一个构建,然后反汇编创建
u-boot.bin
ELF映像。

可能重复的,为什么不使用新信息更新该问题。如果你认为它不能被拯救,至少删除另一个。你的PS不适合,也许你应该找一个邮件列表或留言板?一个邮件列表?我真的不知道如何找到一个合适的邮件列表并使用它。事实上,我也使用ARM社区,我只是不知道在哪里可以得到答案。这并不是特定于手臂的。看看这些,试试看,然后问。我使用了u-boot的邮件列表,但经理拒绝了我的问题,也许TEXT_BASE的值与电路板相关,所以当我们决定电路板时,我们直接通过config.mk文件获得值。我们使用它,而不是计算/修改它。无论如何,谢谢你的信息。这让我想出了一个可能的答案。