gpt4 book ai didi

arm - 嵌入式linux ARM启动地址

转载 作者:行者123 更新时间:2023-12-02 06:14:48 28 4
gpt4 key购买 nike

我按照一些文档通过 sdcard 在 ARM 板上启动嵌入式 Linux(例如:飞思卡尔 Vybrid 塔)。在文档中有构建uImage和将u-boot写入sdcard的步骤如下:

sudo dd if=u-boot.imx of=/dev/sdX bs=512 seek=2
mkimage -A arm64 -O linux -T kernel -C none -a 0x81000000 -e 0x81000000 -n
“Linux” -d Image uImage

我想知道的是他们从哪个数据表/UM/RM 或任何文档中获得编号:bs=512 seek=2, -a 0x81000000(加载地址),-e 0x81000000(入口点)

还请解释加载地址/入口点地址是什么意思?

最佳答案

What I would like to know is from which datasheet/UM/RM or any document they get the number: bs=512 seek=2, -a 0x81000000 (Load address), -e 0x81000000 (Entry point)


bs=512 seek=2规范应来自 SoC 的 NXP/Freescale 引用手册(例如“系统引导”一章的“扩展设备:SD、eSD 和 SDXC”部分)。

当配置为从 SD 卡启动时,(SoC 的)ROM 启动程序将在字节偏移 0x400(或 2 * 512 = 1024)处查找程序镜像(例如 U-Boot),这是第三个 512 字节扇区.
第一个扇区假定为 MBR,第二个扇区保留用于可选的次镜像表(使用 NXP 文档中的术语)。

Allwinner SoC 对 SD 卡使用类似的启动方案(即 U-Boot 镜像位于原始扇区中的固定位置,而不是分区的一部分),但镜像从第 17 个扇区开始。
某些 SoC(例如 Atmel)不是加载原始扇区,而是通过从 FAT 分区加载文件来从 SD 卡启动。

Please also explain what Load address/entry point address mean?



这些值指定给 mkimage 实用程序,以便它们可以安装在 uImage header 中。 U-Boot 将在 uImage 加载和解包时使用这些值。
load address为 U-Boot 指定定位镜像所需的内存地址。图像被复制到该内存地址。 entry point为 U-Boot 指定要跳转/分支到的内存地址,以便执行镜像。此值通常与 load address 的地址相同。 .

根据 (Vincent Sanders') Booting ARM Linux 的说法,对于 ARM Linux 内核,推荐的加载和入口点地址是从物理内存开始的 0x8000。 .
Building kernel uImage using LOADADDR更多细节。

关于arm - 嵌入式linux ARM启动地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39767332/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com