Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10017
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 42
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-06 13:55
个人简介

专注嵌入式系统移植20年~

文章分类

全部博文(5)

文章存档

2015年(4)

2014年(1)

我的朋友

分类: 嵌入式

2015-12-04 10:17:38

问题1:移植内核镜像时,u-boot.img和u-boot.bin区别是什么?为什么不用u-boot.bin?

: 1、下图是将u-boot.img替换为u-boot.bin后系统的启动情况,(调试工具为minicom)

  img_not_bin

由图可知,Pandaboard启动时候读取的文件即为u-boot.img,若确实想用u-boot.bin启动,则需要对Pandaboard重新进行设置。因此本人使用u-boot.img作为本项目的启动文件。

2、bin文件有些是直接编译出来的,有些是elf文件转换过来的,特点是:没有elf的重定向表,必须载入到指定的地址上才能运行,是纯二进制代码,比如如果入口是0x40000,那么bin文件必须载入到这个地址,换到别的地址上就无法工作。  

   bin文件本质上就是一个没有重定向的二进制可执行文件,理论上任何系统上的可执行文件(比如exe文件)都可以转化成bin文件。

  img文件是镜像文件,理论上拿bin文件直接当img文件也是没问题的,但通常img文件(特指嵌入式系统里烧uboot的img文件)可以是一个或者多个bin文件+基本文件系统(含引导代码)的镜像。通常包含引导代码的img文件不用严格考虑入口地址,因为引导代码会把bin文件载入到正确的地址上。

结论:拿bin文件当image文件用,没问题,但要注意入口地址。拿一个标准的img文件有时候可以不考虑入口地址,但最好还是用正确的入口地址比较好。

问题2:Linux内核移植使用的是Ubuntu内核中提取的源码,那为什么会把它称为Gentoo Linux的移植和裁剪?

:1、内核的编译环境是Gentoo。

2、根文件部分的文件全部取自Gentoo。
 
3、最重要的一点,Gentoo的特色就是从源代码建立系统,而内核源码并不是区分发行版的特征,Gentoo环境下的交叉编译工具链能把Ubuntu的源代码编译出gentoo系统的内核映像文件uImage,换句话说,我们只是借段Ubuntu的源代码用用,一番改头换面之后还是Gentoo的。

4、内核使用Ubuntu是因为Ubuntu的内核源码相对稳定,方便使用。

问题3:裁剪之后的性能比较?

:1、体积比较

  QQ截图20140723125951

2、性能比较(测试程序为简单递归程序)

  QQ截图20140723130036

结论:裁剪后的系统性能改善不显著,后期有待优化。


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