使用OTA唤醒休眠后芯片死机

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
8个职位/0个新职位
最后一篇文章
万华奇方
离线
最后一次见到:3个月2周前
已加入:2020-01-02 07:07
使用OTA唤醒休眠后芯片死机

我在SDK中发现了一个bug。当我把辅助引导加载程序放入外部闪存时,当芯片从休眠中唤醒。它将卡在“system\u DA14531.c”重新应用带隙regs。

如果((GetBits16(HIBERN\u CTRL\u REG,HIBERNATION\u ENABLE)==1)和&(GetBits16(SYS\u CTRL\u REG,REMAP\u ADR0)>1)){//应用BANDGAP\u REG值SetWord16(BANDGAP\u REG,booter\u val.BANDGAP\u REG);//应用CLK_RC32M_REG值SetWord16(CLK_RC32M_REG,booter_val.CLK_RC32M_REG);//应用CLK\u RC32K\u REG值SetWord16(CLK\u RC32K\u REG,booter\u val.CLK\u RC32K\u REG);//应用调试器配置SetBits16(SYS_CTRL_REG,debugger_ENABLE,booter_val.dbg_cfg);}

当我们从休眠中唤醒ExtFlash中的二级botloader存储时,每当我们在休眠前设置什么时,在唤醒后REMAP\u ADR0总是>1。它将重新应用这些regs。

但是在引导加载程序中,散布文件没有定义“otp\ucs\ubooter”部分的地址。这将导致对这些regs应用不正确的值。它会导致芯片死亡!

LR\ U 1 0x07FC0000 0x00008000{;加载区域大小\u区域ER\u 1+0 0x00002000{;加载地址=执行地址*.o(RESET,+First)*(InRoot$$Sections)启动\u DA14531.o系统\u DA14531.o}ER\u 2 0x07FC8000 0x3000{;将它推到SysRAM的末尾。ANY(+RO)。ANY(+RW+ZI)。ANY(STACK)};***************************************************************************************************************************************;在地址0x07FCB000(0x07FC8000+0x3000)上方,RAM不应为空;由辅助引导加载程序使用,并且应保持未初始化状态。缓冲器;由DA14531使用的TRNG软件机制只能使用未初始化的;RAM空间以生成随机种子;未初始化的RAM数据的最大大小,可以馈送到;TRNG buffer,是0xA00自DA14531 flash编程器(UART版本);使从0x07FCB000到0x7FCBA00的内存空间保持未附加状态。;**********************************************************************}

这是引导加载程序使用的散点文件。没有“otp\u cs\u booter”部分。

现在,让我们看看SDK关于“otp\ucs\ubooter”部分的散点文件。

LR\u IROM1 0x07fc0000 0xc0{;ERU IROM1 0x07fc0000 0xc0{;加载地址=执行地址*.o(RESET,+FIRST).ANY(otp\u cs\u booter)}

它集。任何(otp\U cs\U引导程序)。所以从休眠状态唤醒不会导致应用程序卡住,它只会导致辅助引导加载程序卡住!

请告诉我,当我把bootloader烧成OTP时,这个bug会消失吗?

或者,我能用这个方法来解决吗?

尔乌1+0×00002000{;加载地址=执行地址*.o(RESET,+First).ANY(otp\u cs\u booter);在这里添加节*(InRoot$$Sections)startup\u DA14531.o system\u DA14531.o}

将节添加到bootloader scatter.ANY(otp\u cs\u booter);在此处添加节

设备:
PM\U对话框
离线
最后一次见到:1天15小时前
工作人员
已加入:2018-02-08 11:03
你好,

你好,

谢谢你的反馈。您能指出您使用的SDK版本吗?

谢谢,下午好

万华奇方
离线
最后一次见到:3个月2周前
已加入:2020-01-02 07:07
我使用的是SDK版本:6.0.14

我正在使用SDK版本:6.0.14.1114和修补程序

PM\U对话框
离线
最后一次见到:1天15小时前
工作人员
已加入:2018-02-08 11:03
你好,

你好,

谢谢你的意见。让我评估他们,我很快就会通知你。

桑斯克,下午

艾德怀特1
离线
最后一次见到:6个月1周前
已加入:2020-10-02 23:29
这是一个确认的错误吗

这是SDK中确认的错误吗?我还面临着休眠和在Flash中使用辅助引导加载程序的问题

万华奇方
离线
最后一次见到:3个月2周前
已加入:2020-01-02 07:07
为什么对话没有

为什么总理还没注意到呢?

PM\U对话框
离线
最后一次见到:1天15小时前
工作人员
已加入:2018-02-08 11:03
大家好,

大家好,

抱歉耽搁了。我们正在做这件事,本周末会回来的。

谢谢,下午好

PM\U对话框
离线
最后一次见到:1天15小时前
工作人员
已加入:2018-02-08 11:03
大家好,

大家好,

请查看一个更新的软件示例,演示如何在休眠模式下配置DA14531。这是下载它的链接:DA14531配置休眠和状态感知休眠模式. 在运行这个示例之前,我建议首先检查README文件。

谢谢,下午好