Chinaunix首页 | 论坛 | 博客
  • 博客访问: 244499
  • 博文数量: 49
  • 博客积分: 2591
  • 博客等级: 少校
  • 技术积分: 515
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-15 00:03
文章分类

全部博文(49)

文章存档

2009年(3)

2008年(46)

我的朋友

分类:

2008-05-07 15:12:28

看了bob2004的ppt,同时做了下试验,稍微能理解点了

http://blog.chinaunix.net/u/22617/showart_322222.html
switch (hdr->ih_comp) { 
 case IH_COMP_NONE:  // -C none
  if(ntohl(hdr->ih_load) == addr) { //不搬运
   printf (“   XIP %s ... ”, name);//注意屏幕信息
  } else {
   memmove ((void *) ntohl(hdr->ih_load), (uchar *)data, len);   //搬运:这里data指向实际的kernel ,把kernel搬运到hdr->ih_load处,这个值就是mkimage –d 0x30008000
  }

1. mkimage -a 0x00008000 -e 0x00008000

ih_load地址为kernel启动地址,所以tftp必须下载到其他无关地址,bootm才会执行memmove程序搬运,将addr+40的数据搬运到ih_load处 即-e的指定入口


2.mkimage -a 0x00008000 -e 0x00008040
因为指定入口为当前镜像的0x40偏移处,则直接下载到-a地址即可,不需要搬移

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