系统移植简介

  • 系统移植基础知识
  1. 嵌入式系统分层

硬件(ARM)、操作系统(Linux)、应用软件

  1. 硬件层:是基础的硬件模块、比如我们用到的ARM、IIC、LED灯等都属于硬件层的东西。具体被软件控制的单元。
  2. 操作系统:我们使用的Linux系统、Windous等。在硬件层的基础上实现进程管理、内存管理、设备管理等,并且可以给应用软件层提供API接口。
  3. 应用软件:操作系统之上的应用程序。IO编程、网络编程、QT设计的软件,需要调用操作系统提供的API进行程序设计、设计完成之后在操作系统上运行。
  1. 课程内容

系统移植课程可以简单的理解为,在ARM处理器的开发板上(硬件平台),安装Linux系统。就像我们平时在电脑主板上安装Windous系统一样。

  1. 移植的目的

学ARM课程时,讲过我们使用的不同处理器,他的指令集是不兼容的,即便我们使用相同的处理器,不同产品的板卡所使用的驱动代码也不兼容,比如你使用A型号声卡、我使用B型号的声卡,那我们的驱动程序也会有区别。这就导致我们不能够像Windous一样直接安装通用系统就行了,嵌入式开发中,我们需要对Linux系统进行定制化处理,换句话说就是匹配我们使用的硬件层设备。

Linux是一个通用的内核但不是某个特定处理器或者说板卡专用系统,所以我们从官网获取到的Linux源码需要我们结合自己实际硬件设备(板卡)进行配置,才能够编译和安装。

  1. 课程特点及如何学习

特点:应用广泛(像医疗、军事、航空航天等,生活中随处可见嵌入式系统)

学习:

思维方式:配置、编译、安装(结合我们自己实际的硬件设备进行配置、配置好之后进行编译、编译完成进行安装)

学习方法:重方法、轻细节。把握整体思路、建立通用思维。(重点学会移植的方法、建立通用思维之后在以后的工作中再扣细节的东西)

原则:最短的时间学习最有用的东西。

  1. 系统移植过程

  1.准备Linux内核镜像、SD卡启动盘

  2.通过拨码开关选择启动方式(SD启动)

  3.通过SD卡中的引导程序安装系统

  4.安装Linux驱动程序

  5.安装Linux应用程序

  1. 开发板启动过程

开发板上电(复位)之后,首先运行SOC内部的IROM中固化好的代码(BL0),这段代码对基本的软硬件环境(时钟、堆栈等)进行初始化,之后检测拨码开关的位置(不同的硬件设备表现形式不一样,但是目的都是对不同的引脚进行配置)获取启动方式,之后将对应存储器中的Uboot搬移到内存中,然后跳转到Uboot运行。

Uboot开始运行后首先对开发板上的软硬件环境进一步初始化、然后将Linux内核、设备树(dtb)、根文件系统(rootfs)从外部存储器(或者网络)搬移到内存,然后跳转Linux运行。

Linux开始运行后先对系统环境做初始化,当系统启动完成后、Linux再从内存中(或网络)挂载根文件系统。

  1. 总结-(系统移植步骤)

uboot移植

linux内核移植(包含设备树)

根文件系统移植

  • Uboot概述

Bootloader简介

 在操作系统运行之前运行的一小段代码,用于将软硬件环境进行初始化到一个合适的状态,为操作系统的加载运行做准备(其本身不是操作系统)

 基本功能:

  初始化软硬件环境

引导加载Linux内核

给Linux内核传参

执行用户命令

 

为什么使用Uboot

Uboot需要解决的问题

  1. 自己能开机启动
  2. 能引导操作系统内核启动并给内核传参
  3. 供系统部署功能
  4. 能进行SOC级和板级硬件
  5. Uboot生命周期

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值