D1s芯片启动流程(BROM System)分析

D1s芯片启动流程(BROM System)分析BOOT MODE0 由特定 GPIO 引脚高低电平决定启动介质 1 由 eFuse 一次性可编程存储器 来决定 1 BOOT MODE 的值从 SID 模块 寄存器 0x0 读取 决定启动介质是由 GPIO 引脚还是 eFus

大家好,欢迎来到IT知识分享网。

1、D1S芯片介绍

在这里插入图片描述

2、BROM介绍

在这里插入图片描述
在这里插入图片描述

(1)BROM(boot rom):存放启动代码的ROM,该ROM一般在芯片内部集成,是芯片上电执行的最开始代码;
(2)BROM里存放的程序主要功能:支持从USB或者SD卡强制升级;判断当前启动介质的优先级,从外部启动介质读取代码执行;
(3)BROM主要有两个模式:FEL模式是用于强制升级程序到flash中;Medium Boot module是正常启动模式,从外部启动介质读取启动代码并执行;
补充:BROM就是启动基石技术,可以参考博客:《启动基石(stepping stone)技术介绍》;

3、D1s芯片支持的启动介质

在这里插入图片描述

4、启动介质优先级

4.2.1、选择启动介质的方法

4.2.1.1、BOOT_MODE介绍

BOOT_MODE Boot_Select Type
0 由特定GPIO引脚高低电平决定启动介质
1 由eFuse(一次性可编程存储器)来决定

(1)BOOT_MODE的值从SID模块(寄存器:0x0)读取,决定启动介质是由GPIO引脚还是eFuse决定;
(2)eFuse是一次性可编程存储器,只能烧录一次,在嵌入式开发中,我接触过的都是GPIO引脚来决定,很少使用eFuse,eFuse不灵活,至少前期调试不使用eFuse,后期产品量产可以考虑;
备注:在《D1s_User Manual_V1.0.pdf》手册里没有看到0x0寄存器描述,也许在其他的文档里有说明,我猜测应该也是某个GPIO引脚来决定的;

4.2.1.2、SID模块介绍

在这里插入图片描述

在这里插入图片描述

SID是安全模块,在数据手册里没有过多介绍,需要知道安全模块里有个2Kb的eFuse可以烧写程序,在eFuse烧写的程序里有决定启动介质的代码;

4.3、通过GPIO引脚电平确认启动介质优先级

在这里插入图片描述

4.4、通过eFuse确认启动介质优先级

在这里插入图片描述

(1)eFuse_Boot_Select_Cfg决定启动介质优先级,总共分为4组,在启动时先判断高优先级的组是否有效;

5、BROM Process启动流程

在这里插入图片描述

6、Hotplug Process

在这里插入图片描述

个人理解这里的Hotplug程序对应软件上的复位,区别与按下复位按键的重启;

7、强制升级程序

7.1、如何进入到FEL模式?

在这里插入图片描述

7.2、FEL Process

在这里插入图片描述

进入到FEL程序,可以使用PC上运行的烧录工具将程序通过USB接口烧录到板子上的flash中;

8、快速启动模式

 8.1、如果进入到快速启动模式?

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148022.html

(0)
上一篇 2025-04-03 14:10
下一篇 2025-04-03 14:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信