我想了解U-boot源(2014.07)。我可以在arch/arm/cpu/armv7/lowlevel_init.S文件中看到以下代碼。在ARM中使用r9寄存器
#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裏面有什麼?由於這是一個開源項目,你是否也可以鏈接到源代碼? – domen
s_init函數設置pll,mux配置等.s_init的定義爲@ http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/armv7 /omap-common/hwinit-common.c;h=5f50a1980157d646b1308bf8d98b529009d40d1e;hb=524123a70761110c5cf3ccc5f52f6d4da071b959 – user3693586