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

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_MODEBoot_Select Type
0由特定GPIO引脚高低电平决定启动介质
1由eFuse(一次性可编程存储器)来决定

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在起飞的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值