Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28340
  • 博文数量: 3
  • 博客积分: 60
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-26 20:05
文章分类

全部博文(3)

文章存档

2011年(3)

我的朋友

分类: 嵌入式

2011-09-20 22:21:38

这种方法比较简单,就是利用uboot自带命令usbboot来实现启动,也算是最粗糙的一种。

1.在配置文件中添加一系列有关USB的支持。
uboot编译启动后输入
usb start
usbboot 0x30800000 0:1
这里的0是usb设备0,1是第一分区
当然,这里肯定会失败,因为usb storage中还没有必须的内核文件呢。

2.usbboot是从指定分区的起始位置拷贝内核文件到指定的地址。
因为没有找到合适的拷贝工具,于是使用uboot自带的usb命令进行复制。
先把内核拷贝到内存,再从内存拷贝到usb storage。
tftp 0x30800000 uImage_n35
usb write 0x30800000 0x1f80 0x1000
这里要注意的一点是起始block和blknum都应该是16进制,如果觉得麻烦,可以把do_usbboot中获取参数的simple_stroul改为10进制。

内核文件准备完毕后,最终的启动命令为:
usb start; usbboot 0x30800000 0:1; bootm 0x30800000 //因为usbboot会自动识别分区起始位置的内核头,内核头中指明了内核大小。

阅读(7335) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~