最近在做生产镜像(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是什么loader了。
比如,u-boot
如果是release版本的,那是无法执行命令的。如果其环境变量保存于nand等可写区域中的话,那可以使用命令来读。如果是内嵌在代码中的话那就没法了。
再如果是debug版本的,那就好办了,执行相应命令nand mem_add nand_add image_size就可以将nand中位置为nand_add大小为image_size的内核镜像读取到mem_add中