Chinaunix首页 | 论坛 | 博客
  • 博客访问: 314437
  • 博文数量: 75
  • 博客积分: 2710
  • 博客等级: 少校
  • 技术积分: 706
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-21 14:19
文章分类

全部博文(75)

文章存档

2011年(10)

2010年(22)

2009年(43)

我的朋友

分类: 嵌入式

2009-08-27 16:25:45

    前一篇文章已经对u-boot在skyeye下的nand启动进行了介绍,现在把我用skyeye模拟整个嵌入式系统的流程进行说明:

1、使用mknandfalshdump能创建一块nand flash,并且初始加载我们的u-boot,相当于我们把u-boot使用jtag烧写进了nand;但是由于mknandfalshdump的功能限制(也可自己修改一个,一次jtag多个image),我们不能把内核和文件系统等都使用这种方法烧写进去。其实我们在有实际硬件的情况下也不是使用jtag将其烧写的。生成的nand如果不重新初始化里面的内容是不变的。

还存在的问题:u-boot没有nor时怎么移植,使u-boot启动时没有flash:64K这一项?(即不使用norflash)(望高手指点)

2、内存和nand使用的分配有提前进行。
(1)nand分配
0x000000-0x100000(1M) u-boot(其实还包括部分环境变量的存储)
0x100000-0x400000(3M) kernel
0x400000-0x2c00000(40M) filesystem
0x2c00000-0x4000000(20M) user
(2)内存分配
u-boot:0x33f80000-
kernel(uImage):0x30008000-
filesystem(cramfs):0x32000000-(暂时占用,为tftp烧写cramfs的位置)

3、内核移植,网上文章很多,不再多说,提一点:make uImage产生的文件不可用,需自己使用mkimage生成uImage,Load address为0x30008000,Entry point为0x30008040(留出空间给参数)

4、u-boot的下载模式与启动模式
调试内核时uboot使用tftp下载到内存中,然后bootm即可;真正使用时将内核加载到内存,然后写入nand的适当位置(这里是0x20000000),下次启动直接从nand读取到内存即可。

5、文件系统模拟
只有kernel系统是不能正常启动的,我们使用busybox制作文件系统,注意内核参数bootargs一定要写正确;/linuxrc,/etc/init.d/rcS,/etc/inittab,/etc/fstab要好好研究,以实现您的系统的正常启动。

整个系统启动之后,可以考虑移植内核驱动,移植应用程序,调试驱动程序,移植图形界面了。

这里仅仅是简单介绍了流程,陆续会将整个设计学习过程的详细步骤和注意事项分几篇文章进行介绍。
阅读(1049) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~