系统移植-uboot

news2024/12/23 0:33:35

目录

一、安装系统

1.移植的目的

2.系统移植过程

 Windows装机  

 Linux系统移植  

3.开发板启动过程

二、Uboot概述

1.Bootloader简介

Bootloader基本功能    

 uboot工作方式

三、SD卡存储结构


一、安装系统

在基于ARM处理器的开发板上安装Linux系统

1.移植的目的

不同架构的处理器指令集不兼容,即便是相同的处理器架构,板卡不同驱动代码也不兼容 ;    

Linux是一个通用的内核并不是为某一个特定的处理器架构或板卡设计的,所以从官方获取Linux源码后我们要先经过相应的配置使其与当前的硬件平台相匹配后才能进行编译和安装。


2.系统移植过程

 Windows装机  

1.准备Windows系统镜像、U盘启动盘  

2.进入BIOS选择启动方式(U盘启动)  

3.通过U盘中的引导程序安装系统  

4.安装Windows驱动程序

5.安装Windows应用程序

 Linux系统移植  

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

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

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

4.安装Linux驱动程序  

5.安装Linux应用程序

3.开发板启动过程

      1.开发板上电后首先运行SOC内部iROM中固化的代码(BL0),这段代码先对基本的软硬件环境(时钟等...)进行初始化,然后再检测拨码开关位置获取启动方式,然后再将对应存储器中的uboot搬移到内存,然后跳转到uboot运行  

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

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

过程:上电 --> 固件:运行CPU内部固件 --> 初始化环境 --> 判断启动方式 --> SD卡引导程序加载到内存-->内存运行-->加载到Linux内核、设备、根文件系统到内存-->Linux运行-->挂载根文件系统

二、Uboot概述

1.Bootloader简介

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

Bootloader基本功能    

  •  初始化软硬件环境    
  •  引导加载linux内核    
  •  给linux内核传参    
  •  执行用户命令

注:bootloader是启动引导程序的统称,嵌入式linux常用的bootloader是uboot    

 uboot工作方式

  • 本质是裸机程序  
  • Shell命令交互 : 裸机刷机 、系统安装
  • 能进行SOC级和板级硬件 :串口 、网口 、内存 、LCD显示
  • Uboot的生命周期: 一切都是为了启动内核

常见的Bootloader

三、SD卡存储结构

SD卡的存储以扇区为单位,每个扇区的大小为512Byte, 其中零扇区存储分区表(即分区信息),后续的扇区可自行分区和格式化;若选择SD卡启动,处理器上电后从第一个扇区开始将其中的内容搬移到内存,所以我们把uboot放到从第一个扇区开始之后的空间, 之后的空间根据个人需求可进行分区和格式化

具体制作步骤详情看实验手册-》实验四

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker版jxTMS使用指南:python服务之设备策略

本文讲解4.0版的jxTMS中python服务的设备策略,整个系列的文章请查看:docker版jxTMS使用指南:4.0版升级内容 docker版本的使用,请参考:docker版jxTMS使用指南 jxTMS实现的接口机对设备的数据采集与处理采取的是框架组…

Elastic Stack 和 Docker-Compose 入门

作者:Eddie Mitchell 随着 Elastic Stack 多年来的发展和功能集的增加,在本地开始或尝试概念验证 (POC) 的复杂性也越来越高。 虽然 Elastic Cloud 仍然是开始使用 Elastic 最快、最简单的方式,但对本地开发和测试的需求仍然非常丰富。 作为开…

【生成任务下推生成子工序生产计划,无法结单】

今天,车间反馈了一个问题,bpm结单报错。 原先定的流程是,生产任务单审批流程走完之后,下推到MES,生产子工序生产计划。 这个审批流最后要到制品,这个工单做完了,制品也包装好了,流程…

用于改进筛查的乳腺癌异常检测

介绍 乳腺癌是一种严重的疾病,影响着全世界数以百万计的妇女。即使医学领域有了进步,对乳腺癌进行识别和治疗是可能的,但发现它并在早期阶段治疗它仍然是不可能的。 通过使用异常检测技术,我们可以识别出乳腺癌中肉眼可能看不到的…

STM32——关于EXTI讲解及标准库应用(基础篇)

简介: STM32的中断包括EXTI外部中断、TIM定时器、ADC模数转换器、USART串口,SPI通信、I2C通信等一系列的外设。这篇主要来讲解关于EXTI外部中断的概念和应用。EXTI(External Interrupt)是一个非常重要的外部中断模块,…

chatgpt赋能python:Python多条图形绘制在一张图里的实现方法及应用

Python多条图形绘制在一张图里的实现方法及应用 作为一款优秀的编程语言,Python在数据可视化方面有着非常出色的表现。然而有时候我们需要在一张图里绘制多条不同的图形,这时候Python又有什么好的解决方案呢?本文将介绍多种方法实现Python在…

10个最流行的可生成图像嵌入向量的预训练AI模型

迁移学习的出现进一步加速了计算机视觉——图像分类用例的快速发展。 在大型图像数据集上训练计算机视觉神经网络模型需要大量的计算资源和时间。 幸运的是,通过使用预训练模型可以缩短时间和资源。 利用预训练模型的特征表示的技术称为迁移学习。 预训练通常使用高…

《MySQL(三):基础篇- 函数》

文章目录 3. 函数3.1 字符串函数3.2 数值函数3.3 日期函数3.4 流程函数 3. 函数 函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中 已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应…

Vue.js 中的响应式原理是什么?

Vue.js 中的响应式原理是什么? Vue.js 是一种流行的前端框架,它使用了一种称为“响应式”的技术来实现数据绑定。这意味着当数据发生变化时,Vue.js会自动更新相关的视图,而无需手动操作DOM。在本文中,我们将深入探讨V…

【SCI征稿】Elsevier旗下中科院2区TOP, 仅1周见刊, 6月11日截稿 (文末有好)~

一、【期刊简介】 中科院2区智能计算类SCI (TOP/6.11截稿) 【期刊概况】IF:8.0-9.0, JCR1区, 中科院2区; 【终审周期】走期刊部系统,3-5个月左右录用; 【检索情况】SCI&EI双检;正刊; 【数据库收录年份】2001年…

RHCE练习题目【更新至】

文章目录 第一题、安装和配置ansible第二题、创建和运行ansible临时命令第三题、使用剧本安装软件包第四题、使用RHEL系统脚色第一问、配置时间同步第二问、配置selinux 第五题、使用Ansible Galaxy安装角色第六题、创建和使用角色第七题、从Ansible Galaxy使用角色第八题、创建…

一文搞定国民N32G435高负载串口通信

副标题:USRAT无硬件双缓冲条件下的软件双缓冲 一、前言 在单片机中,USART的通信一般都是最常用也最先去接触的串口外设,在一般的小数据量应用中一般不需要考虑USART串口(以下简称为串口)的高负载能力,比如…

第六十五天学习记录:高等数学:函数与极限(宋浩板书)

C语言学习后,曾为先学C还是数据结构纠结了半天。在看数据结构前言的时候,发现学习数据结构之前还需要一定的数学基础。虽然涉及到的数学基础不多,但想到以前大学高数,现代不是60分万岁就是不到80分,好像就概率论稍微了…

【Python】Python系列教程-- Python3 循环语句(十七)

文章目录 前言while 循环无限循环while 循环使用 else 语句简单语句组for 语句for...elserange() 函数break 和 continue 语句及循环中的 else 子句pass 语句 前言 往期回顾: Python系列教程–Python3介绍(一)Python系列教程–Python3 环境…

Treap C++代码实现

一、全部代码 #include <iostream> #include <cstdlib> #include <time.h>using namespace std;//Treap结构 struct TreapNode {TreapNode *pLeft, *pRight;int value, fix; };//左旋 void TreapLeftRotate(TreapNode* &pCur){//首先&#xff0c;找到当…

平衡树原理讲解

平衡树——Treap 文章目录 平衡树——TreapBST定义性质操作插入insert(o, v)删除del(o, v)找前驱 / 后继get_prev(o)、get_next(o)查找最大 / 最小值get_min(o)、get_max(o)求元素排名get_rank(o)查找排名为 k k k的元素get_value_by_rank 平衡树左旋、右旋zag(o)、zig(o)左旋右…

Vue路由(vue-router)详细讲解指南

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成&#xff0c;让构建单页面应用变得易如反掌。路由实际上就是可以理解为指向&#xff0c;就是我在页面上点击一个按钮需要跳转到对应的页面&#xff0c;这就是路由跳转&#xff1b; 首先我们来学习三个单词&…

运维小白必学篇之基础篇第八集:LVM实验

LVM实验 实验一&#xff1a; 使用/dev/sdb磁盘完成以下操作&#xff1a; 1、创建5个物理卷&#xff0c;组成大小为10G的卷组vgtest 2、创建大小为3G的逻辑卷lv1&#xff0c;格式化xfs文件系统&#xff0c;实现开机自动挂载 3、为lv1逻辑卷扩容至5G&#xff0c;然后查看扩容之…

男子路遇“纸片鸟”,AI帮忙免惹祸

据报道&#xff0c;近日&#xff0c;河南洛阳一网友在路边偶遇一只“纸片鸟”&#xff0c;小鸟远看像一张纸片&#xff0c;样子十分奇特&#xff0c;而且还死死地盯着自己&#xff0c;像是求救&#xff0c;后来他用手机一查发现是二级保护动物“黄斑苇鳽”&#xff0c;便报警处…

排水管网监测预警系统:为城市排水建设提质增效

最近&#xff0c;城市生命线安全工程占据着行业的头条榜单&#xff0c;与民众生活密不可分的城市基础设施&#xff0c;包括城市的燃气、桥梁、供水、排水、供热、综合管廊等被称为城市生命线。城市生命线安全工程是城市更新和新型城市基础设施建设的重要内容&#xff0c;其主要…