首页 > 其他分享 >u-boot 启动流程

u-boot 启动流程

时间:2024-05-26 15:47:14浏览次数:23  
标签:初始化 函数 启动 流程 boot C语言 stage1 代码

启动流程

  播报 编辑 大多数BootLoader都分为stage1和stage2两大部分,U-boot也不例外。依赖于cpu体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。 1、 stage1(start.s代码结构) U-boot的stage1代码通常放在start.s文件中,它用汇编语言写成,其主要代码部分如下: (1) 定义入口。由于一个可执行的image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在rom(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接器脚本来完成。 (2)设置异常向量(exception vector)。 (3)设置CPU的速度、时钟频率及中断控制寄存器。 (4)初始化内存控制器 。 (5)将rom中的程序复制到ram中。 (6)初始化堆栈 。 (7)转到ram中执行,该工作可使用指令ldrpc来完成。 2、 stage2(C语言代码部分) lib_arm/board.c中的start armboot是C语言开始的函数,也是整个启动代码中C语言的主函数,同时还是整个u-boot(armboot)的主函数,该函数主要完成如下操作: (1)调用一系列的初始化函数。 (2)初始化flash设备。 (3)初始化系统内存分配函数。 (4)如果目标系统拥有nand设备,则初始化nand设备。 (5)如果目标系统有显示设备,则初始化该类设备。 (6)初始化相关网络设备,填写ip,c地址等。 (7)进入命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。

标签:初始化,函数,启动,流程,boot,C语言,stage1,代码
From: https://www.cnblogs.com/zxdplay/p/18213755

相关文章

  • 《计算机网络微课堂》3-9 以太网交换机自学习和转发帧的流程
    在上节课中,我们对比了在物理层扩展以太网的集线器,和在数据链路层扩展以太网的交换机。本节课我们介绍以太网交换机自学习和转发帧的流程,以太网交换机工作在数据链路层,当然也包括物理层,需要说明的是目前市场上也有包含网络层部分功能的交换机,称为三层交换机。以太网交换机收到帧......
  • YOLOv8_pose训练流程-原理解析[关键点检测理论篇]
            本篇将介绍一下YOLOv8关键点检测网络的训练流程,同样在看此篇文章之前先去看一下预测流程[YOLOv8_pose预测流程-原理解析[关键点检测理论篇],还有目标检测任务的训练流程YOLOv8训练流程-原理解析[目标检测理论篇],这两篇都是前置课程,下图是YOLOv8实例分割的网络......
  • Visio 2021下载教程|visio流程图软件的完整安装步骤
    Visio是微软公司(Microsoft)推出的一款流程图和图表制作软件。它提供了丰富的图形库和工具,可以帮助用户创建各种类型的图表、流程图、组织结构图、平面布局图等。目前最新版也是用的最广泛的版本为Visio2021。MicrosoftVisio2003-2021全版本软件安装包下载:https://pan.baid......
  • Hadoop创建文件、上传文件、下载文件、修改文件名、删除文件精细全流程
    目录一、起步流程1.创建配置参数对象---Configuration类(org.apache.hadoop.conf.Configuration)2.通过配置参数对象指定hdfs的地址3.创建HDFS文件系统的对象---带配置项---FileSystem类​二、具体操作(1)创建目录:/wordcount(2)下载文件:/data/input/word.txt下载到D:/hadoop......
  • 关于Undertow启动时的警告日志
    错误提示:当使用Undertow作为SpringBoot嵌入式服务器时,启动应用。会看到有一条 WARN 日志,如下:UT026010:BufferpoolwasnotsetonWebSocketDeploymentInfo,thedefaultpoolwillbeused大致意思是“没有给WebSocketDeploymentInfo设置Bufferpool,将会使用默......
  • 成为MySQL DBA后,再看ORACLE数据库(一、安装与启动)
    一、前言ORACLE作为世界上最牛逼的关系型数据库,也是我从事数据库行业入门学习的数据库,记得当时学习ORACLE数据库时就深感其复杂性,对很多概念一知半解、似懂非懂,当ORACLE管理员期间也遇到过不少问题,不过好在有ORACLE原厂工程师驻场,基本上问题都能解决。后来因为领导的安排和工作的......
  • 快团团团长与供应商合作流程?成熟的大团长自述!
    作为一名成熟的供货大团长,在快团团平台与供应商合作的流程中,我深知每个环节的重要性,尤其是在与头部及腰部供应链的对接中,如何平衡利润、市场适应性和安全性,是合作成功的关键。以下是从这三个维度出发的总结:1.合作前的准备与评估利润考量:头部供应链:通常拥有较强的议价能力和......
  • SpringBoot+Vue+uniapp微信小程序仓储进销存管理系统
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍随着科学研究的不断深入,有关仓储的各种信息量不断成倍增长。面对庞大的信息量,就需要有仓储管理系统来提高管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询......
  • Java项目:校园周边美食探索(java+SpringBoot+Mybaits+Vue+elementui+mysql)
    源码获取:俺的博客首页"资源"里下载! 项目介绍基于Springboot+vue实现的校园周边美食探索及分享平台本系统包含管理员、用户两个角色。管理员:用户管理、美食鉴赏管理、好友管理、收藏管理、系统管理用户:登录、注册、个人中心管理、美食鉴赏管理、好友管理、收藏管理......
  • 基于SpringBoot+Vue的在线商城系统
    !!!有需要的小伙伴可以通过文章末尾名片咨询我哦!!! ......