当前位置: 代码迷 >> 驱动开发 >> 请问访问开发板0x0地址处的内存区域的方法
  详细解决方案

请问访问开发板0x0地址处的内存区域的方法

热度:26   发布时间:2016-04-28 11:01:31.0
请教访问开发板0x0地址处的内存区域的方法
开发板中配置,S3C2410+NAND FLASH+SDRAM;
其中,SDRAM的地址为0x3000 0000;另外,由于需要从NAND FLASH启动,在地址0x0000 0000处有一块SRAM作为辅助(stepping stone),大小是4K。
启动原理是,系统上电后,硬件会自动将NAND FLASH的前4k代码拷贝到SRAM中,从SRAM中启动系统,系统启动后SRAM就不再用了。
现在的问题是,打算系统启动后,利用一下SRAM,但是不知道在linux下如何去访问SRAM。

话说,设置寄存器的时候都是需要访问绝对地址的,为什么现在直接访问绝对地址就不行呢?

------解决方案--------------------
看一下启动代码
------解决方案--------------------
这个问题挺有意思,事实上把nand第一个4k代码拷贝到sram的是一个mcu之类的控制器,他有自己的一小块rom,存放着访问nand的驱动,可以不经过处理器就进行设备间访问.nand不像nor,不可以进行xip直接读取指令并执行,所以必须有这步.
可以写一个驱动,禁止cache,然后直接访问0-4kb, 读出来看看是不是启动代码.不过最好不要在操作系统下读,不然不知道禁止cache会发生什么情况.可以在uboot某处加入代码读取.
  相关解决方案