Linux 运行的时候是先把nand flash里面编译好的uImage完完全全的拷贝到RAM中,然后开始运行的吗
有没有可能uImage特别大,比ram都大,这样是不是就不能运行了呢,所以这个就和编译的时候是选择编译到内核还是编译成模块相关是吧,...
有没有可能uImage特别大,比ram都大,这样是不是就不能运行了呢,所以这个就和编译的时候是选择编译到内核还是编译成模块相关是吧,
展开
1个回答
展开全部
一般是开发过程中是先把uboot载到nor中,然后通过nor中的uboot再把uboot跟linux 内核,根文件系统下到nandflash,它的最终位置应该是在nandflash。
至于nor跟nand有什么区别,nor里面的代码可以直接运行,不需要加载到RAM(内存),而nandflash里面的代码需要加载到RAM才能运行,nor的速度没有ram快,所以一般最终版本的代码应该下载到nand,系统启动的时候会自动拷贝nand里面的前面4k代码到ram中,你这4k的代码必须完成硬件初始化并且把其余的代码全部拷贝到ram中,ram运行速度当然比nor快,这就是为什么最终版本的代码应该放在nand的原因。
至于nor跟nand有什么区别,nor里面的代码可以直接运行,不需要加载到RAM(内存),而nandflash里面的代码需要加载到RAM才能运行,nor的速度没有ram快,所以一般最终版本的代码应该下载到nand,系统启动的时候会自动拷贝nand里面的前面4k代码到ram中,你这4k的代码必须完成硬件初始化并且把其余的代码全部拷贝到ram中,ram运行速度当然比nor快,这就是为什么最终版本的代码应该放在nand的原因。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询