特性
片内启动 ROM
包含具有系统内编程(ISP)功能的引导加载程序
基于软件实现的 Ed25519 算法的安全启动过程
支持低功耗的挂起恢复过程
从 NOR Flash 启动
将 PSRAM 用作存储器
片内启动 ROM
包含具有系统内编程(ISP)功能的引导加载程序
使用多种硬件或软件引擎加密算法的安全启动过程
支持低功耗的挂起恢复过程
从 NOR Flash 启动
将 PSRAM 用作存储器
片内启动 ROM
包含具有系统内编程(ISP)功能的引导加载程序
使用多种硬件或软件引擎加密算法的安全启动过程
支持低功耗的挂起恢复过程
从 NOR Flash 启动
将 PSRAM 用作存储器
片内启动 ROM
包含具有系统内编程(ISP)功能的引导加载程序
使用多种硬件或软件引擎加密算法的安全启动过程
支持低功耗的挂起恢复过程
从 NAND Flash 或 NOR Flash 启动
将 PSRAM 或 DDR 用作存储器
启动地址
复位后,处理器将 PC 加载为矢量表中定义的复位向量的值,该地址由硬件固定。KM4 和 KM0 均从地址 0x0000_0000
启动。
CPU |
启动地址 |
类型 |
---|---|---|
KM4 |
0x0000_0000 |
KM4 ITCM ROM |
KM0 |
0x0000_0000 |
KM0 ITCM ROM |
复位后,处理器将 PC 加载为矢量表中定义的复位向量的值,该地址由硬件固定。KM4 和 KR4 均从地址 0x0000_0000
启动。
CPU |
启动地址 |
类型 |
---|---|---|
KM4 |
0x0000_0000 |
KM4 ITCM ROM |
KR4 |
0x0000_0000 |
KM0 ITCM ROM |
复位后,处理器将 PC 加载为矢量表中定义的复位向量的值。对于 KM4 和 KR4,该值由硬件固定在 0x0000_0000
地址。相比之下,DSP 使用可配置的值,从用户定义的地址启动。
CPU |
启动地址 |
类型 |
---|---|---|
KM4 |
0x0000_0000 |
KM4 ITCM ROM |
KR4 |
0x0000_0000 |
KR4 ITCM ROM |
DSP |
用户可配置 |
Flash/SRAM/PSRAM |
复位后,处理器将 PC 加载为矢量表中定义的复位向量的值,该地址由硬件固定。KM0 (LP)、KM4 (HP) 和 CA32 (AP) 均从地址 0x0000_0000
启动。
CPU |
启动地 |
类型 |
---|---|---|
KM0 |
0x0000_0000 |
KM0 ITCM ROM |
KM4 |
0x0000_0000 |
KM4 ITCM ROM |
CA32 |
0x0000_0000 |
CA32 BUS ROM |
引脚描述
SoC 通过 LOGUART (PB4
/ PB5
)或 USB 将代码下载至 Flash 中(ISP)。ISP 模式由 PB5
在启动时的状态决定。
启动模式 |
PB5 (DOWNLOAD_MODE) |
描述 |
---|---|---|
No ISP |
高电平 |
跳过 ISP,IC 尝试从 Flash 启动 |
ISP |
低电平 |
IC 通过 LOGUART/USB 进入 ISP 模式 |
SoC 通过 LOGUART (PA19
/ PA20
)或 USB 将代码下载至 Flash 中(ISP)。ISP 模式由 PA20
在启动时的状态决定。
启动模式 |
PA20 (DOWNLOAD_MODE) |
描述 |
---|---|---|
No ISP |
高电平 |
跳过 ISP,IC 尝试从 Flash 启动 |
ISP |
低电平 |
IC 通过 LOGUART 进入 ISP 模式 |
SoC 通过 LOGUART (PA19
/ PA20
)或 USB 将代码下载至 Flash 中(ISP)。ISP 模式由 PA20
在启动时的状态决定。
启动模式 |
PA20 (DOWNLOAD_MODE) |
描述 |
---|---|---|
No ISP |
高电平 |
跳过 ISP,IC 尝试从 Flash 启动 |
ISP |
低电平 |
IC 通过 LOGUART 进入 ISP 模式 |
SoC 通过 LOGUART (PB23
/ PB24
)或 USB 将代码下载至 Flash 中(ISP)。ISP 模式由 PB24
在启动时的状态决定。
启动模式 |
PB24 (DOWNLOAD_MODE) |
描述 |
---|---|---|
No ISP |
高电平 |
跳过 ISP,IC 尝试从 Flash 启动 |
ISP |
低电平 |
IC 通过 LOGUART/USB 进入 ISP 模式 |
备注
量产之后,可以通过烧写特定的 eFuse 位来永久禁止进入 ISP 模式。
启动流程
芯片上电或硬件复位后,硬件将以 150MHz 的频率启动 KM4。整个启动过程由片内 Boot ROM 处理,且始终由 KM4 执行。
在 KM4 执行 bootloader 代码时,KM4 会为 KM0 建立运行环境。
KM4 启动 ROM
KM4 ROM 检查是否进入 ISP 模式
KM4 安全启动,ROM 验证 bootloader 签名(可选)
KM4 引导至 bootloader
KM4 bootloader 根据
ameba_bootcfg.c
文件重新设置 SoC 的时钟频率开启 TrustZone 功能后,KM4 bootloader 根据
ameba_boot_trustzonecfg.c
文件建立非安全运行环境KM4 bootloader 加载 KM0 固件并验证签名(可选)
芯片启动流程图
芯片上电或硬件复位后,硬件将以 150MHz 的频率启动 KM4。整个启动过程由片内 Boot ROM 处理,且始终由 KM4 执行。
在 KM4 执行 bootloader 代码时,KM4 会为 KR4 建立运行环境。
KM4 启动 ROM
KM4 ROM 检查是否进入 ISP 模式
KM4 安全启动,ROM 验证 bootloader 签名(可选)
KM4 引导至 bootloader
KM4 bootloader 根据
ameba_bootcfg.c
文件重新设置 SoC 的时钟频率开启 TrustZone 功能后,KM4 bootloader 根据
ameba_boot_trustzonecfg.c
文件建立非安全运行环境KM4 bootloader 加载 KR4 固件并验证签名(可选)
芯片启动流程图
芯片上电或硬件复位后,硬件将以 150MHz 的频率启动 KM4。整个启动过程由片内 Boot ROM 处理,且始终由 KM4 执行。
在 KM4 执行 bootloader 代码时,KM4 会为 KR4 和 DSP 建立运行环境。
KM4 启动 ROM
KM4 ROM 检查是否进入 ISP 模式
KM4 安全启动,ROM 验证 bootloader 签名(可选)
KM4 引导至 bootloader
KM4 bootloader 根据
ameba_bootcfg.c
文件重新设置 SoC 的时钟频率开启 TrustZone 功能后,KM4 bootloader 根据
ameba_boot_trustzonecfg.c
文件建立非安全运行环境KM4 bootloader 加载 KR4 固件并验证签名(可选)
KM4 bootloader 加载 DSP 固件并验证签名(可选)
芯片启动流程图
芯片上电或硬件复位后,硬件将以 200MHz 的频率启动 KM4。整个启动过程由片内 Boot ROM 处理,且始终由 KM4 执行。
在 KM4 执行 bootloader 代码时,KM4 会为 KM0 和 CA32 建立运行环境。
KM4 启动 ROM
KM4 ROM 检查是否进入 ISP 模式
KM4 安全启动,ROM 验证 bootloader 签名(可选)
KM4 引导至 bootloader
KM4 bootloader 根据
ameba_bootcfg.c
文件重新设置 SoC 的时钟频率开启 TrustZone 功能后,KM4 bootloader 根据
ameba_boot_trustzonecfg.c
文件建立非安全运行环境KM4 bootloader 加载 KM0 固件并验证签名(可选)
KM4 bootloader 加载 CA32 固件并验证签名(可选)
芯片启动流程图
是否从 NOR Flash 或 NAND Flash 启动取决于 OTP 中的设置。此外,还可以选择 PSRAM 或 DDR 来存储代码和数据。
启动 API
API BOOT_Reason()
用于获取芯片启动的原因,其函数原型为:
u32 BOOT_Reason(void);
这个 API 的返回值会通过 LOGUART 进行打印。初次上电时,该 API 的默认返回值为 0
,其他重启原因的返回值可通过下表查询。返回值相关的宏定义位于 sysreg_aon.h
文件中。
项目 |
描述 |
---|---|
简介 |
获取启动原因 |
参数 |
无 |
返回值 |
启动原因。可选值包括:
|
项目 |
描述 |
---|---|
简介 |
获取启动原因 |
参数 |
无 |
返回值 |
启动原因。可选值包括:
|
项目 |
描述 |
---|---|
简介 |
获取启动原因 |
参数 |
无 |
返回值 |
启动原因。可选值包括:
|
项目 |
描述 |
---|---|
简介 |
获取启动原因 |
参数 |
无 |
返回值 |
启动原因。可选值包括:
|