ARM9(S3C2440)裸板程序(C语言)使用Nor Flash启动
关于ARM9的Nor和Nand启动方式网上有很多资料,这里就不详细解释。
ARM启动程序跳转到main函数之前需要在汇编启动代码里设置堆栈,如下图所示:如果在不使用外部SDRAM,和SRAM的情况下我们只能使用s3c2440自带的4KB大小RAM,如何设置堆栈指针呢?
我们先查看ARM手册中的内存映射图:
可以看到在NAND flash下载模式下,内部自带的内存地址在0x40000000处,堆栈空间就在这里。
由于要把堆栈指针SP设置在栈顶,还要加上4KB=0x1000的偏移量即0x40001000,
ldr sp, = 0x40001000
这时候下载到Nor flash里的C程序才可以正常运行。
暂无评论,赶紧抢沙发吧