当前位置: 代码迷 >> 驱动开发 >> nand flash 的生产镜像不是page的整数倍,该如何解决
  详细解决方案

nand flash 的生产镜像不是page的整数倍,该如何解决

热度:221   发布时间:2016-04-28 10:35:38.0
nand flash 的生产镜像不是page的整数倍
最近在做生产镜像(kernel和APP是放在NAND flash中的,loader放在SPI中),flash是128M的,pagesize=2048,但是做出来的镜像loader引导不起来kernel; 我们做出来的镜像大小不能被2048整除,也不能被2048+64整除,kernel起不来和这个有关系吗?请高手指点
------解决方案--------------------
貌似写NAND的单位为page,最后一个补满一个page。
------解决方案--------------------
应该和镜像大小木有关系,最好调试走一遍看看问题在哪里!
如果loader正常,那么就看loader从nand加载镜像时读的是哪一块,是不是kernel所在位置;kernel读出来放在RAM中的位置对不对等等……
------解决方案--------------------
引用:
只起来了loader,有木有办法把kernel读出来,怎么读



关键看你的loader是什么loader了。
比如,u-boot
如果是release版本的,那是无法执行命令的。如果其环境变量保存于nand等可写区域中的话,那可以使用命令来读。如果是内嵌在代码中的话那就没法了。
再如果是debug版本的,那就好办了,执行相应命令nand mem_add nand_add image_size就可以将nand中位置为nand_add大小为image_size的内核镜像读取到mem_add中
  相关解决方案