【发布时间】:2015-09-09 19:37:01
【问题描述】:
我正在尝试了解 U-boot 源 (2014.07)。我可以在 arch/arm/cpu/armv7/lowlevel_init.S 文件中看到以下代码。
#ifdef CONFIG_SPL_BUILD
ldr r9, =gdata
#else
sub sp, sp, #GD_SIZE
bic sp, sp, #7
mov r9, sp
#endif
push {ip, lr}
bl s_init
pop {ip, pc}
你能告诉我为什么 sp 被移动到 r9 寄存器 - “mov r9, sp”(对于 SPL 构建 gdata 被加载到 r9 寄存器 - “ldr r9, =gdata”)。 r9寄存器有什么具体用途吗,所以我们将sp值存储到r9。
【问题讨论】:
-
虽然它通常不会用作参数,但也许它是。 s_init 里面有什么?由于这是一个开源项目,您能否也链接到源代码?
-
s_init 函数正在设置 plls、mux 配置等。s_init 定义为@git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/armv7/…