求助高手,关于在nand-flash上面加载linux的问题,CPU不支持从NAND-FLASH boot。
时间:2006-03-10
来源:互联网
我目前正在设计一个powerpc的嵌入式系统,cpu用的是mpc8248,使用linux操作系统。
在我的系统中,有32-64MB的sdram,我用了一片512KB的NOR-FLASH用于存放bootloader,用一片256MB的nandflash来存放linux系统及应用。该cpu不像mpc8347或者arm2410那样支持nandflash boot。
因为成本和系统复杂度的考虑,我希望能够用编程器直接将bootloader烧进8位的norflash(plcc封装),待bootloader起来后,通过网口或者串口将linux的系统当到nandflash里面,并且从nandflash里面加载linux系统,另外还需要在linux系统以外的空间建立文件系统,linux起来后将该文件系统加载到指定的目录下面。
我是硬件工程师,对于linux系统的移植不在行,请高手帮忙解答一下:
1)这样做,可行不可行?
2)难度有多大,需要多大的工作量?
3)有没有人曾经这么做过,并且有现成的经验和代码供参考?
谢谢高手了,系统设计中,急盼回复。
在我的系统中,有32-64MB的sdram,我用了一片512KB的NOR-FLASH用于存放bootloader,用一片256MB的nandflash来存放linux系统及应用。该cpu不像mpc8347或者arm2410那样支持nandflash boot。
因为成本和系统复杂度的考虑,我希望能够用编程器直接将bootloader烧进8位的norflash(plcc封装),待bootloader起来后,通过网口或者串口将linux的系统当到nandflash里面,并且从nandflash里面加载linux系统,另外还需要在linux系统以外的空间建立文件系统,linux起来后将该文件系统加载到指定的目录下面。
我是硬件工程师,对于linux系统的移植不在行,请高手帮忙解答一下:
1)这样做,可行不可行?
2)难度有多大,需要多大的工作量?
3)有没有人曾经这么做过,并且有现成的经验和代码供参考?
谢谢高手了,系统设计中,急盼回复。
作者: bg4uat 发布时间: 2006-03-10
这样是可行的,也是唯一的方法用nor+nand。如果bootloader作得好,则可以直接将系统直接放在nand上,启动系统。
作者: 风雪狂客 发布时间: 2006-03-10
我有个参考实现,你可以考虑一下
1.NOR-FLASH分成两部分:
第一部分用于存放bootloader
第二部分用于存放一个小的linux内核的压缩档(负责nandflash驱动和加载文件系统)
bootloader负责硬件初始化,然后将小内核展到RAM中运行,
在小内核运行起来后,按相应的文件系统,读入标准内核,然后再将标准内核展开到RAM中,然后再重新运行标准内核,这样实现起来应该比较容易,不要在bootloader中,做nandflash的驱动和文件系统的方面的事情,充分利用linux的资源
1.NOR-FLASH分成两部分:
第一部分用于存放bootloader
第二部分用于存放一个小的linux内核的压缩档(负责nandflash驱动和加载文件系统)
bootloader负责硬件初始化,然后将小内核展到RAM中运行,
在小内核运行起来后,按相应的文件系统,读入标准内核,然后再将标准内核展开到RAM中,然后再重新运行标准内核,这样实现起来应该比较容易,不要在bootloader中,做nandflash的驱动和文件系统的方面的事情,充分利用linux的资源
作者: nl_beijing 发布时间: 2006-03-10
[QUOTE=nl_beijing]我有个参考实现,你可以考虑一下
1.NOR-FLASH分成两部分:
第一部分用于存放bootloader
第二部分用于存放一个小的linux内核的压缩档(负责nandflash驱动和加载文件系统)
bootloader负责硬件初始化,然后将小内核展到RAM中运行,
在小内核运行起来后,按相应的文件系统,读入标准内核,然后再将标准内核展开到RAM中,然后再重新运行标准内核,这样实现起来应该比较容易,不要在bootloader中,做nandflash的驱动和文件系统的方面的事情,充分利用linux的资源
[/QUOTE]
这样做的确是个好办法,我想了解一下,这样做的话,nor-flash的空间需要多大?512KB够不够?
1.NOR-FLASH分成两部分:
第一部分用于存放bootloader
第二部分用于存放一个小的linux内核的压缩档(负责nandflash驱动和加载文件系统)
bootloader负责硬件初始化,然后将小内核展到RAM中运行,
在小内核运行起来后,按相应的文件系统,读入标准内核,然后再将标准内核展开到RAM中,然后再重新运行标准内核,这样实现起来应该比较容易,不要在bootloader中,做nandflash的驱动和文件系统的方面的事情,充分利用linux的资源
[/QUOTE]
这样做的确是个好办法,我想了解一下,这样做的话,nor-flash的空间需要多大?512KB够不够?
作者: bg4uat 发布时间: 2006-03-11
我觉得用2个内核是多此一举和增添复杂度和麻烦度
小内核载入大内核要保存恢复的状态很多,地址相同,上下文相同,还要有应用程序支持,有那空间,岂不是一次就载入一个大内核更精简?内核代码比程序代码紧凑多了。
只要bootloader支持载入内核,系统不就起来了么
驱动什么的只要起来了,内核模块都可以放在文件系统里了
小内核载入大内核要保存恢复的状态很多,地址相同,上下文相同,还要有应用程序支持,有那空间,岂不是一次就载入一个大内核更精简?内核代码比程序代码紧凑多了。
只要bootloader支持载入内核,系统不就起来了么
驱动什么的只要起来了,内核模块都可以放在文件系统里了
作者: 魔芋 发布时间: 2006-03-12
[QUOTE=bg4uat]这样做的确是个好办法,我想了解一下,这样做的话,nor-flash的空间需要多大?512KB够不够?[/QUOTE]512空间已经够了,小内核用压缩档,大概300K左右就够了,不存在上下文及状态保存的问题,用同一内核不同配置文件即可,不要维护BOOTloader和内核两个版本的驱动程序
作者: nl_beijing 发布时间: 2006-03-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28