当前位置: 首页 > news >正文

网站建设公司哪里找学校网站改版

网站建设公司哪里找,学校网站改版,国家电子商务平台,湖南省建筑工程信息网【系统移植】(一)概念流程 文章目录 【系统移植】(一)概念流程1.基础概念2.整体系统移植流程3.开发板启动流程 1.基础概念 操作系统:向下管理硬件,向上提供接口。对于复杂的东西已经实现好了,只…

【系统移植】(一)概念流程

文章目录

  • 【系统移植】(一)概念流程
    • 1.基础概念
    • 2.整体系统移植流程
    • 3.开发板启动流程

1.基础概念

操作系统:向下管理硬件,向上提供接口。对于复杂的东西已经实现好了,只需调用它提供的接口即可。对于Linux操作系统大致可以分为五类,1.进程;2.内存管理(malloc、free);3.网络协议(tcp、udp…);4.文件系统;5.设备管理(这些是底层硬件,由Linux操作系统来进行直接的管理,在ARM编程中,我们都是直接对寄存器进行操作硬件,而对于有操作系统的,是在操作系统内部进行管理的)

什么叫顶层开发或者说应用层开发:就是通过调用操作系统的一些API接口,来实现应用软件(进程、线程、网络编程这些知识,直接知道这些函数怎么样来用,就足够了)

设备文件:就是让应用程序来控制底层硬件的文件

系统移植:说白了就是给ARM开发板安装一个Linux操作系统,让其能够调用Linux下的一些API接口。(装系统很快,但大部分我们做的是移植的工作,让系统与对应的硬件相匹配)

移植:不同架构的处理器指令集不兼容,即便相同的处理架构,板卡不同驱动代码也不兼容。(你可以理解为都是用的stm32f103芯片,但是外设电路不一样)

Linux 是一个通用的内核并不是为了某一个特定的处理器架构或板卡设计的,所以从官方获取Linux源码后我们要先经过相应的配置使其与我们当前的硬件平台相匹配后才能进行编译和安装。(Linux本质也是代码写出来的,是由汇编和C语言写成的,那么汇编有x86的也有ARM的,这也就代表用x86的汇编写的Linux在ARM上面跑不了,我们大部分时间就花在了配置Linux源码上,让软件与我们的硬件相匹配)

对于上层的应用开发,假设我写了一个创建进程的程序,放到你的电脑上,只要你的电脑上面有Linux系统,这个代码就可以跑。但是对于底层代码,操控硬件的这些,我在这个板子上面能跑,换到另外一个板子上面就跑不了了。

image-20241215154831986

移植流程:

从网上下载到源码;进行相应的配置;编译(因为是源码所以要编译);安装

注意这个编译是要在我们自己的主机Linux下进行编译,但是安装是在要安装Linux系统的那个板子上面进行安装。

整个学习过程我们要重过程,轻细节。熟悉把Linux系统安装到板卡上面的流程,而不是研究源码

2.整体系统移植流程

对比Windows装机:

  1. 准备Windows系统镜像,U盘启动盘(里面会装老毛桃\大白菜这些软件,他会引导镜像进行安装)
  2. 开机按F10进入BIOS选择启动方式(U盘启动)

BIOS:基本输入输出系统,他本质也是一个软件,是电脑生产厂家固化到主板上的

启动方式:光驱启动(就是光盘)、硬盘启动、U盘启动。设置为那个就会首先执行那个介质下的程序

  1. 通过U盘中的引导程序安装系统
  2. 安装Windows驱动程序

重启电脑之后发现,网卡驱动,显示器驱动,鼠标驱动这些都不能用,这个时候就要安装驱动。

驱动:就是一个程序软件,来驱动底层硬件工作

  1. 安装Windows应用程序(QQ、腾讯视频这些)

Linux系统移植:

  1. 准备Linux内核镜像(就是系统安装包),SD卡启动盘(也要刷引导程序,这个引导程序就是uboot,来引导和安装系统)
  2. 开机上电配置引导加载程序(Bootloader,BL0),启动方式为SD卡启动(它是固化在系统只读存储器(ROM)中的一段代码)
  3. 通过SD卡中的引导程序安装系统(比如把系统安装到emmc硬盘里面)
  4. 安装Linux驱动程序(刚装完的系统很多硬件用不了,比如我要驱动一个mpu6050)
  5. 安装Linux应用程序(进程线程,这些上层软件,APP软件)

U-Boot(Universal Boot Loader)和Bootloader这两个术语之间的关系可能会有些混淆,但它们实际上是这样的:

  1. Bootloader:这是一个通用术语,指的是任何用于启动操作系统的程序。Bootloader是计算机启动过程中加载的第一个软件,它的任务是初始化硬件,然后加载操作系统内核到内存中。Bootloader可以是任何特定于硬件平台或操作系统的程序。

  2. U-Boot:这是一个特定的Bootloader实现,它是开源的,并且被设计为通用的,可以用于多种不同的硬件平台和架构。U-Boot提供了Bootloader的基本功能,如硬件初始化、加载内核、命令行界面等。

所以,区别在于:

  • Bootloader 是一个泛指,指的是启动操作系统的任何程序。
  • U-Boot 是Bootloader的一个特定实例,是一个具体的软件产品,具有广泛的适用性和功能。

简而言之,U-Boot是Bootloader的一种,但Bootloader这个术语可以指任何类型的启动加载程序,包括U-Boot以及其他如GRUB(GRand Unified Bootloader)、LILO(Linux Loader)等。

**EMMC:**就是电脑里面的硬盘,掉电不丢失数据。我们需要把系统装到这个里面。

3.开发板启动流程

  1. BL0会上电首先读取介质启动方式,把SD卡中的uboot复制到内存ROM里面,之后BL0就停了。

  2. 搬运Linux:然后就轮到了uboot进行一些引导程序,他会把emmc里面的Linux系统复制到内存ROM。(前提是外存已经安装好Linux系统安装包)

  3. 搬运dtb(设备树):uboot把外存的dtb(Device Tree Blob)设备树,也复制到内存ROM,(Linux内核将驱动代码和设备信息进行了分离,由设备树来进行管理,好处就是硬件改动或者平台升级的时候,驱动程序不用改,只修改硬件信息就可以了。可以理解为DTB+Linux=Linux内核)

  4. 搬运rootfs(根文件系统):它本身就是一个文件,不是程序也不是代码也不属Linux范畴。后续详细讲解

  5. Linux系统真正开始运行:Linux把根文件系统挂载(也可以通过网络也挂载)过来用,可以理解为把根文件系统读过来用并使用

专业一点的说法:

  1. 开发板上电后首先运行SOC内部的IROM中固化的代码(BL0),这段代码先对基本的软硬件环境(时钟等…)进行初始化,然后再检测启动方式,然后再将对应的存储器中的uboot搬移到内存,然后跳转到uboot运行
  2. uboot开始运行后首先对开发板上电软硬件环境做进一步的初始化,然后将Linux内核、设备树(dtb)、根文件系统(rootfs)从外部存储器(或网络)搬移到内存,然后跳转到Linux运行
  3. Linux开始运行后先对系统环境做初始化,当系统启动完成后,Linux再从内存中(或网络)挂载根文件系统

image-20241215180819546

总结:我们需要移植的一共有4个。

  1. uboot移植
  2. Linux内核(包含设备树)
  3. 根文件系统移植

寻址空间(地址空间):CPU可以进行读和写寄存器或内存,但是读写范围是有限的,这个范围由地址总线的宽度决定,假如你是32位的,那么就是2的32次方,4GB。

地址映射表:一般芯片手册都会给出,那些内存分配给了那些寄存器用(诸如网卡、iic、spi)

http://www.dtcms.com/a/409575.html

相关文章:

  • 东莞公司网站制作要多少钱北极鱼wordpress
  • wordpress查询成绩seo泛站群
  • 南京网站开发联系南京乐识163邮箱官方注册入口
  • 网站做海外的防护广州网络公司有哪些
  • 环保主题的网站模板网站安全需做哪些监测
  • 网站开发需会的课程wordpress转typecho插件
  • 大型门户网站建设的意义织梦免费机械网站源码
  • 站长百科 wordpress免费网站模板 php
  • 英文网站 icp备案号可信网站认证代理
  • 一个app网站聊城做手机网站
  • 威海网站建设公司哪家好114网站制作
  • 临沧网站搭建学网络营销好就业吗
  • 河北唐山 网站建设wordpress 个人资料页
  • 做网站和APP需要多少钱钢筋网片规格型号
  • 淘宝网现状 网站建设系统设置友情链接有什么作用
  • 连云港建设网站公司wordpress 自定义字段 调用
  • 秦皇岛做网站优化价格网站app用什么语言开发的
  • 男女做污视频网站大连开发区招聘网站
  • 江苏省住房和建设厅网站wordpress同时登录
  • 一级a做爰电影片免费网站可以做链接的网站
  • 网站搜索引擎优化报告贵州省城乡建设部官方网站
  • 专业网站北京最新消息今天新闻
  • diy定制网站哪个餐饮店微网站做的有特色
  • 网站开发技术负责那些泰州网站设计哪家好
  • 网站开发现状及研究意义教程网站搭建
  • 合肥网站设计 goz洛阳网站建设哪家好
  • 郑州网站建设天强科技在线api
  • 湖南网站托管哪家好网站对公司的意义
  • 哪个网站设计好东莞最新情况 最新消息
  • wordpress站点目录打造一个网站需要多少钱