SDRAM的初始化,参照一些手册和代码,还是比较容易做出一个小例子:初始化sdram后(主要是设置一些寄存器)将从nandflash复制到sram中的代码,再复制到sdram中去执行。这里比较难理解的一个地方就是:cpu如何从sram中跳到sdram中去至执行:
(1)在链接程序时,指定链接地址-Ttext 0x30000000, 编译程序,将elf转换为bin格式,将斌格式的可执行文件反汇编,对于地址相关指令,是含有链接地址信息的,这点比较奇怪,bin格式的可执行文件不是不包含链接地址信息吗,然而,在一些教程中,及时编写在sram中运行的程序,也喜欢指定链接地址信息,经过我试验,其实不指定效果是一样的
(2)第二种方法最直接,在复制到sdram之后,直接改变pc指针就行。不过这个要先算好下一条执行指令的地址
目前是有这些疑问,后续我弄明白之后再来完善。