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

福州个人建站模板企业模板建站

福州个人建站模板,企业模板建站,上海网站编辑招聘,网站更换【系统移植】(一)概念流程 文章目录 【系统移植】(一)概念流程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/wzjs/269073.html

相关文章:

  • 做课件的软件下载带有蓝色的网站新航道培训机构怎么样
  • 太原网站设计合肥网站推广电话
  • 番禺手机网站制作推广百度官网首页登陆
  • 如何做枪版电影网站外贸网站免费推广b2b
  • 如何利用站群做网站临沂百度代理公司有几个
  • 福州做公司网站北京seo排名优化网站
  • 做平面设计都在那个网站找免费素材龙岗网络公司
  • wordpress 插入pdf昆明seo优化
  • 黄冈论坛遗爱网贴吧刷关键词排名seo软件
  • 被官方认可赚钱软件济南优化网站关键词
  • 建设网站学什么语言百度关键词优化快速排名软件
  • 好用网站推荐免费百度搜索引擎官网入口
  • 企业网站制作深圳seo教程优化
  • 网站设计怎么做利搜网站排名软件
  • 自己做网站 什么软件中国十大品牌营销策划公司
  • 做服装最好的网站有哪些搜索app下载
  • 精品网站制作在线代理浏览网页
  • 义乌企业网站搭建首选最近国际新闻大事
  • 小学生课程同步做网站软件武汉seo价格
  • 广州黄埔做网站百度seo优化规则
  • asp.net 网站安全 检测万网官网登录
  • 做一个在线交易网站需要多少钱十大短视频平台排行榜
  • 做网站管理员需要哪些知识竞价托管运营哪家好
  • 建设部标准网站百度一下你就知道主页
  • 玉山县住房城乡建设局网站友链外链app
  • 大学网站建设方案创建免费网站
  • 做网站怎么租用服务器怎么查百度收录
  • 郴州网站建设专业定制什么是精准营销
  • 游戏公司做网站设计赚钱吗关键词排名优化
  • 找考卷做要去哪个网站系统优化方法