我发现也许是SDK中的错误。当我将二级引导加载程序放入外部闪光灯时,芯片从休眠唤醒时。它将陷入“system_da14531.c”重新应用Bandgap Regs。
if((getbits16(hibern_ctrl_reg,hibernation_enable)== 1)&&(getbits16(sys_ctrl_reg,remap_adr0)> 1))){//应用bandgap_reg值setword16(bandgap_reg,booter_val.bandgap_reg);//应用clk_rc32m_reg值setword16(clk_rc32m_reg,booter_val.clk_rc32m_reg);//应用clk_rc32k_reg值setword16(clk_rc32k_reg,booter_val.clk_rc32k_reg);//应用调试器配置setbits16(sys_ctrl_reg,debugger_enable,booter_val.dbg_cfg);}
当我们从eREDFLASH唤醒次击静电时,每当我们在Hibernate之前设置的时候,rawap_adr0将始终>唤醒。它将重新申请这些regs。
但是在引导加载程序中,分散文件未定义“otp_cs_booter”部分`s地址。它将导致对这些regs应用不正确的价值。它会导致芯片死了!
lr_1 0x07fc0000 0x00008000 {;加载区域size_region er_1 +0 0x00002000 {;加载地址=执行地址* .o(重置,+第一)*(Inroot $$部分)startup_da14531.o system_da14531.o} er_2 0x07fc8000 0x3000 {;将其推到Sysram .any(+ Ro).any(+ RW + Zi).any(堆栈)};***************************************************************************;以上地址0x07fcb000(0x07fc8000 + 0x3000),RAM不得;由辅助引导加载程序使用,并应保持未初始化。缓冲区;DA14531 TRNG软件机制使用必须仅使用未初始化;RAM空间以产生随机种子。 ; ; The maximum size of the uninitialized RAM data, which can be fed to the ; TRNG buffer, is 0xA00 since the DA14531 flash programmer (UART version) ; leaves unattached the memory space from 0x07FCB000 to 0x7FCBA00. ; *************************************************************************** }
这是引导程序使用的分散文件。没有“OTP_CS_BOOTER”部分。
现在,让我们看到SDK的分散文件有关“OTP_CS_BOOTER”部分。
lr_irom1 0x07fc0000 0xc0 {;ER_IROM1 0x07FC0000 0xC0 {;加载地址=执行地址* .o(重置,+第一个).any(otp_cs_booter)}}
它设置了.any(otp_cs_booter)。因此,从休眠唤醒Wone的原因应用程序卡住,它只导致二级引导程序卡住了!
请告诉我,当我将bootloader刻录到OTP时,错误会消失吗?
或者,我可以使用这种方法来解决吗?
er_1 +0 0x00002000 {;加载地址=执行地址* .o(重置,+第一).any(otp_cs_booter);添加部分*(Inroot $$部分)startup_da14531.o system_da14531.o}
将部分添加到引导加载程序分散.any(otp_cs_booter);在此添加部分
设备:
嗨,您好,
谢谢你的反馈。您能否注明您正在使用的SDK版本?
谢谢,PM_DIALOG.
i`M使用SDK版本:6.0.14.1114使用修补程序_001
嗨,您好,
谢谢你的意见。让我评估他们,我很快就会通知你。
Thansk,PM_Dialog.
这是SDK中的确认错误吗?我也面临休眠问题,并在闪存中具有辅助引导加载程序
为什么对话框_PM没有注意到它?
嗨,大家好,
为延迟道歉。我们正在努力,并将在本周末回来。
谢谢,PM_DIALOG.
嗨,大家好,
请查看更新的SW示例,演示如何在休眠模式下配置DA14531。这是下载它的链接:DA14531配置休眠和状态感知休眠模式。在运行此示例之前,我建议首先检查自述文件。
谢谢,PM_DIALOG.