这两天在看《嵌入式Linux应用开发完全手册》(我的开发板是mini2440,书也是针对s3c2410/2440的)
看到“存储器控制”这章,有些不明白
书上说SDRAM需要初始化才能使用,SDRAM不是内存吗?内存也需要初始化吗?
之前GPIO点亮LED的代码中,也没见初始化SDRAM,但还是可以用C写程序,如果不先初始化,内存就不能用的话,那C中定义的int i;一类的变量存在哪里?
这个LED程序的汇编引导文件中,有一句「ldr sp, =1024*4 @设置堆栈,注意:不能大于4K,因为现在可用的内存只有4K」
这里设置的是什么堆栈?所谓的可用内存又在哪里?
还有,在LED程序编译好之后,使用Keil+Jlink调试,在Keil中设置的下载地址为0x30000000,这个地址是SDRAM的起始地址,如果要先初始化才能使用的话,现在程序都还没有烧写进去,为何还能往0x30000000写入程序
所以,“存储器控制”很不明白怎么回事,求高人解答。
------解决方案--------------------
可以看看启动代码