zoukankan      html  css  js  c++  java
  • ARM开发板系统移植-----u-boot的编译

      

      本文和另外两篇姊妹篇都是为了说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果。其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发板上运行的uboot的方法步骤。

      说明:笔者使用的开发平台---RetHat linux系统,开发板---Friendly mini2440

       在开始讲述系统移植的具体方法之前,先大致了解一下嵌入式系统的软件组成:

      

         从上面这个图可以看出,嵌入式系统的软件组成主要包括bootloader、内核以及根文件系统。当然还有bootloader传给内核的参数列表以及没画出来的应用软件。其中bootloader在开发板一上电就会被硬件自动载入内存并最先获得CPU的使用权。bootloader完成一些列的初始化工作,包括加载剩余的bootloader到内存中、初始化CPU(设置CPU各个功能模块到一个合适的状态,比如工作模式、关闭看门狗、设置向量表、设置堆栈等等)、初始化板载硬件资源如内存、串口、网卡、usb等等。当bootloader顺利完成以上工作以后,它就会将内核加载到内存中,并且传递启动的参数给内核,最后启动内核。

      内核的工作就相对复杂得多了,不过基本上都是初始化硬件以及内核使用到的各种列表,并且启动相应的进程完成相应的工作,这里就不详细介绍。日后再撰文详细介绍内核启动过程都完成了哪些工作。不过这里需要了解的是内核在启动中会挂载一个根文件系统,作为后续系统各种文件系统的挂载点。

      uboot的编译事实上很简单,大致可以分为两步:

      1、配置uboot:此步骤是为了能够配置出适合在开发板使用的代码以便进行编译,进入uboot顶层目录使用如下命令:

          make mini2440_config

      2、编译uboot:此步骤编译出uboot的二进制可执行文件,使用如下命令:

          make ARCH=arm CROSS_COMPILE=arm-linux-

          完成上面两个步骤之后可以在顶层目录中找到可执行代码:u-boot.bin,这就是烧写到开发板的二进制映像。

  • 相关阅读:
    nginx article
    学习历程
    GRPC
    学习记录
    JAVA知识点记录
    flag
    读的文章
    This usually happens because your environment has changed since running `npm install`.
    expandedRowKeys、expandedRowsChange、expand
    服务端高并发分布式架构演进之路
  • 原文地址:https://www.cnblogs.com/linzizhang/p/4817336.html
Copyright © 2011-2022 走看看