堆栈寄存器起始地址的设置:
程序刚启动并没有启动内存管理单元MMU,真正的内存地址如下S3C2440的储存空间映射图:
ARM 使用统一编址,所以,我们得把堆栈指针设置到内存地址范围内;
NAND FLASH 启动时:
堆栈寄存器可以设为片内RAM 的最大地址:0x1000(4K)-4096
或者64MSDRAM的最大地址0x34000000(64M SDRAM的地址空间映射到BANK6,那么内存地址范围就是 0x30000000~0x34000000)。
之所以选择最大地址是因为栈的生长方向是向下的,所以选最高地址作为栈的起始地址可以预防堆栈增长而覆盖数据域;