Soc的Bring Up流程

这篇具有很好参考价值的文章主要介绍了Soc的Bring Up流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1、Bring Up流程

img

SOC (System on a Chip) bring-up是一个复杂的过程,涉及到硬件、固件和软件的集成和验证,以下是一个基于BROMSPLUBOOTLinux的启动流程的概述:

  1. BROM (Boot Read-Only Memory)启动:启动的最初阶段,在这个阶段,系统会执行芯片ROM里面的代码,这部分代码主要用来检查启动模式,包括NORNandEmmc等,然后从对应的存储介质中加载SPL(Secondary Program Loader)代码。

  2. SPL (Secondary Program Loader)启动SPL属于Uboot的一部分,它的主要作用就是:初始化硬件并加载完整的U-boot,主要体现在初始化时钟、看门狗、DDRGPIO以及存储外设,最后将U-boot代码加载到DDR中执行。

  3. U-Boot启动U-boot的主要作用是:引导加载KernelDTSU-boot在启动之后,同样初始化Soc硬件资源,然后会计时等待,并执行默认的启动命令,将KernelDTS信息从存储介质中读取出来并加载到内存中执行。

  4. Kernel启动:在U-Boot加载了内核映像和设备树之后,系统会启动Linux。在这个阶段,系统会初始化各种硬件设备,加载驱动程序并启动用户空间应用程序。

更多干货可见:高级工程师聚集地,助力大家更上一层楼!

 文章来源地址https://www.toymoban.com/news/detail-746152.html

2、常见问题

img

Q:为什么上一个阶段已经初始化了硬件资源,下一个阶段为何重复初始化?

A

  1. 每个阶段的硬件初始化,其目标和需求都不同,硬件配置也会不一样,因此在不同阶段进行不同的初始化。

  2. 硬件状态可能会改变,在SOC启动过程中,硬件状态可能会因为电源管理、时钟管理等原因而改变,这可能需要在每个阶段都重新初始化以确保其正确工作

  3. 为了保证硬件资源的可靠性,最好每个阶段都重新初始化一次

 

QU-boot加载内核时,会进行重定位的操作,这一操作有何意义?

A

  1. U-boot的重定位,主要作用是为了 给内核提供一个连续的、大的内存空间,供内核和其他应用程序使用

  2. U-boot的加载过程分两个阶段,即:SPLU-boot

  • SPL阶段,主要将U-boot代码从Flash中加载到RAM指定位置

  • U-boot阶段,U-boot会将自身从RAM的开始部分移动到RAM的末尾,占用高地址空间,从而让低地址空间可以作为一个连续的,大的内存空间供内核和其他应用程序使用。

 

Q:在Bring Up中,为了保证启动时间,如何裁剪?

A

启动时间的裁剪是一个重要的步骤,其主要目标是缩短从电源打开到操作系统完全启动的时间。

  1. 优化Bootloader:减小Bootloader的代码大小,减少硬件初始化(只初始化必要硬件设备)等

  2. 优化Kernel:减少启动服务数量,优化服务的启动顺序,使用预加载技术等方法来实现。

  3. 使用快速启动模式:一些SOC支持快速启动模式,这种模式下,SOC会跳过一些不必要的硬件初始化和自检过程,从而更快地启动。

  4. 使用休眠和唤醒技术:一些SOC还支持休眠和唤醒技术,这种技术可以将系统的状态保存到非易失性存储器中,然后关闭系统。当系统再次启动时,可以直接从非易失性存储器中恢复系统的状态,从而更快地启动。

 

 

到了这里,关于Soc的Bring Up流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Trace32 SRST和TRST、system.attach 和 system.up的区别

    目录 TRST-Resets the JTAG TAP controller and the CPU internal debug logic SRST- Resets the CPU core and peripherals SYStem.Mode Down SYStem.Mode Nodebug SYStem.Mode Prepare SYStem.Mode Go SYStem.Mode Attach SYStem.Mode StandBy SYStem.Mode Up 下图为Trace32工具为ARM debug设计的 JTAG pin 脚图:  其中,TRST和SRST信号是可选的。 Test Res

    2024年02月06日
    浏览(61)
  • Clone (back up) hard disk (system) | Hardware

    本文约 3825 字,阅读大约需要 10 分钟 A. 可克隆 IDE、SATA、M.2 接口硬盘 IDE接口硬盘: SATA 接口硬盘: M.2接口硬盘: B. 可克隆文件硬盘 C. 可用于备份 / 迁移系统(快照),一块硬盘中存储多个系统分区(仅用于存储) D. 已经过测试可完整克隆的系统:Windows 10 系列、Windows S

    2024年02月15日
    浏览(30)
  • 【云计算】什么是BYOC(Bring Your Own Cloud)?

    BYOC(Bring Your Own Cloud)是一种概念,指的是个人或组织使用自己喜欢的云服务提供商来存储和管理他们的数据和应用程序的做法。它允许用户自己搭建云基础设施,而不是依赖公司或组织提供的默认云服务。 BYOC的工作原理如下: 自定义云环境:BYOC允许用户选择自己喜欢的云

    2024年02月21日
    浏览(28)
  • Bring Your Data!Self- supervised Evolution of Large Language Models

    这篇论文提出了一种自监督的评估方式来衡量大型语言模型的能力和局限性。常规的基于数据集的评估方式存在一些缺点: 需要不断新建数据集。 存在数据集和模型训练数据交叉的问题,影响评估结果。 难以评估模型在实际部署中的表现。为了弥补这些缺点,论文提出了自监督

    2024年02月16日
    浏览(32)
  • 3D基础:Y-Up和Z-Up

    推荐:用 NSDT编辑器快速搭建可编程3D场景 所有 3D 工具都包含具有 X、Y 和 Z 轴的 3 维环境。 这些工具中的 X 轴方向相同,即使用前视图时从左到右的水平线。 但是,不同的 3D 工具可能具有不同的 Y 轴和 Z 轴方向。 有些3D工具是Y-Up的,这意味着Y轴是一条垂直线; 其他的是

    2024年02月09日
    浏览(26)
  • unity_Vector3.up 和 transform.up 的区别

    Vector3.up : 即 Vector3(0, 1, 0) Vector3.down : 即 Vector3(0, -1, 0) Vector3.forward : 即 Vector3(0, 0, 1) Vector3.back : 即 Vector3(0, 0, -1) Vector3.right : 即 Vector3(1,0, 0) Vector3.left : 即 Vector3(-1, 0, 0) 在 Scene 中画线(脚本挂给Cube)  结果 transform.up : 即 Vector3.up transform.forward : 即 Vector3.forward tra

    2023年04月14日
    浏览(20)
  • 关于 Unity 的 Transform.up 和 Vector3.Up 的测试

    Unity官方文档的 Transform.up 链接 测试方法:提取刚体,坐标系,Space模式为参数,使用上下左右表示物体移动和旋转,测试不同情况的位移和旋转,Console选择Collapse模式 测试脚本 TestScript 如下: 测试场景物体布局如下图: 刚体速度和Translate对比 相同点: 旋转的Space模式不会

    2024年02月03日
    浏览(39)
  • gitlab down: redis: 0s, normally up, want up; run:log

    1),查看gitlab的状态,发现redis的状态是down 解决:启动redis,重启gitlab 发现redis还是down。 2),查看redis 的日志 报错: 解决注销 677 行《io-threads 1》,再查看日志, 再注销报错678行,查看日志redis正常, 登录gitlab正常。

    2024年02月12日
    浏览(32)
  • docker-compose up -d和docker-compose up --build的补充

    docker-compose up -d 命令用于启动已定义在 docker-compose.yml 文件中的服务容器,并以守护进程的方式在后台运行。 具体解释如下: docker-compose : 是一个用于定义和运行多个容器应用的工具。 up : 用于创建并启动容器。 -d 或 --detach : 表示以守护进程的方式运行容器,即在后台运行,

    2024年02月15日
    浏览(26)
  • only up 游戏分析

    这是一个玩法很简单的跑酷游戏,你必须找到一条可行的道路,一直往上走,直到终点。稍有闪失就会掉下去,重新开始。 ①在开始挑战之前,先抬头规划一下路线 ②请相信带着你自动行驶的火车、无人机等道具,他能帮助你更快的到达更后面的道路 ③积极的寻找并尝试使

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包