.
.
arch/arm/lib/stack.c
1 int arch_reserve_stacks(void)
2 {
3 #ifdef CONFIG_SPL_BUILD
4 gd->start_addr_sp -= 128; /* leave 32 words for abort-stack */
5 gd->irq_sp = gd->start_addr_sp;
6 #else
7 /* setup stack pointer for exceptions */
8 gd->irq_sp = gd->start_addr_sp;
9
10 # if !defined(CONFIG_ARM64)
11 # ifdef CONFIG_USE_IRQ
12 gd->start_addr_sp -= (CONFIG_STACKSIZE_IRQ + CONFIG_STACKSIZE_FIQ);
13 debug("Reserving %zu Bytes for IRQ stack at: %08lx\n",
14 CONFIG_STACKSIZE_IRQ + CONFIG_STACKSIZE_FIQ, gd->start_addr_sp);
15
16 /* 8-byte alignment for ARM ABI compliance */
17 gd->start_addr_sp &= ~0x07;
18 # endif
19 /* leave 3 words for abort-stack, plus 1 for alignment */
20 gd->start_addr_sp -= 16;
21 # endif
22 #endif
23
24 return 0;
25 }
- 3번 줄의
CONFIG_SPL_BUILD
은 정의되어 있지 않아 if문은 수행되지 않습니다. - 10번 줄에서 우리는 ARM 32bit용으로 build하였으므로 if문이 수행됩니다.
- 11번 줄에서
CONFIG_USE_IRQ
은 정의되어 있지 않아 if문은 수행되지 않습니다.