u-boot 内存分布的问题,关于IRQ_STACK_START
int interrupt_init (void)
{
/*
* setup up stacks if necessary
*分配IRQ与FIQ使用的栈空间
*/
/*IRQ_STACK_START why -4 ?*/
IRQ_STACK_START = _armboot_start - CONFIG_SYS_MALLOC_LEN - CONFIG_SYS_GBL_DATA_SIZE - 4;
FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;
return arch_interrupt_init();
}
u-boot stage2 初始化数组中的函数
有个疑问:IRQ_STACK_START = _armboot_start - CONFIG_SYS_MALLOC_LEN - CONFIG_SYS_GBL_DATA_SIZE - 4;为什么要-4呢?
u-boot 的堆栈是满递减,还是空递减呢