Linux系统移植 uboot移植 步骤



IP地址配置:IP地址分为四段号码,前三段为网络地址   最后一段为计算机地址。 配置的是时候要保证前三段一致 最后一段不能一样。
子网掩码和网关 也要保持一致。
因为网段需要保持一致 否则网络无法连通

首先:
什么是交叉编译:交叉编译是在一个平台上生成另一个平台上的可执行代码  

为什么要交叉编译:
不同的开发环境和执行环境,都需要不同的编译工具  
我们电脑是 X86架构  我们的开发板是ARM架构  在X86架构下只能执行X86的可执行代码  arm也一样  ;我们在X86架构下直接编译的可执行文件  在ARM架构下无法执行

 那既然我们需要ARM下的可执行文件  为什么不在ARM架构下编译呢

也就是说为什么不在目标板上编译代码:

目标板资源非常有限   其硬件资源一般都只能满足特定功能需求,难以支撑开发环境的运行需求。如果在目标板上编译的话    会浪费很多资源 增加成本 百害而无一利

所以我们要在我们的电脑上 提前编译好ARM的可执行文件 然后下载到目标板上

编译的内容:uboot启动代码 、 内核

tftp服务:文本文件传输协议    用来传输 ubootpak.bin、uImage镜像文件

nfs服务:网络文件共享系统     (就是用来挂在根文件系统)

uboot移植:
    1、配置交叉编译工具链 
       打开Makefile文件   在makefile文件中配置交叉编译工具链       这个文件用于代替gcc

   为什么要代替gcc  因为编译u-boot需要很多.c和.h文件 如果用gcc编译 需要一个一个的输入 非常麻烦 浪费时间 所以用Makefile代替gcc   作为make的配置文件 非常方便
配置好交叉编译链之后

     1、删除u-boot 源码中间文件
     2、  配置u-boot源码   支持fs6818开发板
     3、编译u-boot源码 生成ubootpak.bin文件
     4、将ubootpak.bin下载到开发板中

         接下来就是运行uboot代码
在这个过程中  因为开始运行的时候 开发版中什么都没有 所以我们需要 把ubootpak.bin放在sd卡中   先用sd卡启动uboot    到FS6818界面   再把tftpboot文件夹中的ubootpak.bin文件  使用tftp命令烧写到内存中
但是内存掉电丢失 下一次再开机的时候文件就丢失了  所以我们需要把ubootpak.bin文件下载到flash中 flash掉电不丢失所以下次再启动的时候文件依然存在 
移植完uboot之后
开发板就可以启动内核了

Linux内核移植:
1、配置交叉编译工具链
 2、菜单选择方式配置内核  
因为我们的系统在用的时候还需要各种驱动  但是这些驱动文件  如果都下载到内存中 会占用很大的空间    根据我们需要的功能 我们用到什么驱动就把什么驱动配置到内核中 这样可以很好的节约空间 节省资源
3、配置好内核后  编译内核产生uImage内核镜像
4、将uImage放在   tftp下载文件存放路径下 
5、通过tftp方式直接下载到内存中 就可以启动内核了

根文件系统移植:

   通过nfs方式直接挂载根文件系统

现在系统移植就移植完了






 

你可能感兴趣的:(linux,arm)