次级引导程序中的扩展睡眠模式

5个帖子/ 0新
最后一篇
Muneyuki Ishihara.
离线
最后一次露面:3年9个月前
加入:2016-11-25 08:11
次级引导程序中的扩展睡眠模式

亲爱的对话支持,

我们将使用DA14580 +外部闪光灯。

一旦电压施加到电源,我希望通过推动键唤醒和加载IMG1或IMG2,即可切换到扩展睡眠模式。

如何更改DA14580扩展睡眠模式并通过次级引导程序中的正交解码器唤醒。

我试图将寄存器修改如下,但似乎没有改变睡眠模式。

scb-> scr | = 1 << 2;

setbits16(pmu_ctrl_reg,periph_sleep,1);//关闭外围电源域
setbits16(sys_ctrl_reg,ret_sysram,1);//保留系统RAM
setbits16(sys_ctrl_reg,otp_copy,0);//禁用OTP副本
setBits16(CLK_16M_REG,XTAL16_BIAS_SH_ENABLE,0);//如果睡眠已经决定,将偏差设置为“0”

设备:
mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨muneyuki ishihara,

嗨muneyuki ishihara,

我不太明白你想做什么,请允许我对系统进行一些澄清以及它的工作原理。设备将睡觉的事实,意味着它会消耗较少的功率,在没有应用程序中没有动作。因此,通常该器件启动从SPI闪存加载图像并开始广告,在广告间隔之间,它才能睡觉,以便在不需要时消耗电源。当设备的时间醒来才能宣传,整个系统通电设备完成广告事件,它倒回睡眠。因此,只要睡眠被激活,每个BLE示例都可以实现此睡眠并唤醒功能。辅助引导加载程序不是启用FW的BLE,它只是一个FW,它具有多个功能性,一个功能性是选择闪存中的两个图像中的哪一个将在Sysram中下载以便执行。

因此,操作如下,设备上电,辅助引导加载程序运行(多个图像引导通常用于拟议,但它可以被修改以在其他条件下选择适当的图像)。辅助引导加载程序选择要将哪个图像加载和下载到Sysram,在下载完成后,设备被重置,BLE_ENIabled FW运行(睡眠并根据应用程序唤醒并唤醒)。那么,你能澄清你的问题,让我理解吗?

谢谢mt_dialog.

Muneyuki Ishihara.
离线
最后一次露面:3年9个月前
加入:2016-11-25 08:11
亲爱的对话支持

亲爱的对话支持

抱歉缺乏信息。

我希望在重置或电源重启时,能够选择通过用户操作启动的图像。

我将准备两个不同的图像。例如,IMG1被操作为正常操作程序,IMG2作为测试程序操作。
如果按下“key1”,则加载“IMG1”,并按下“key2”时,从次级引导加载程序中从SPI闪存加载“IMG2”。
它可以用下面的程序实现,但电源是浪费的。所以,我希望用“睡眠”和“唤醒(GPIO)”来实现它来节省电力。

--- ex:不是睡眠计划(但电力被浪费)----
而(1)
{
if(gpio_getpinstatus(gpio_key_1_port,gpio_key_1_pin)== gpio_key_push_status)
{
LoadImage = IMG1;
休息;
}
否则if(gpio_getpinstatus(gpio_key_2_port,gpio_key_2_pin)== gpio_key_push_status)
{
LoadImage = IMG2;
休息;
}
}

-----------------

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨muneyuki ishihara,

嗨muneyuki ishihara,

正如我所提到的辅助引导加载程序不是启用的FW或实施睡眠,ARM继续运行,并且所有外围设备都在开启。从启用BLE的设备中占用睡眠机制并将其附加到引导加载程序FW是不实现的,但它是合理的。您可以尝试将机制从Arch_main.c文件中的main_func()函数模仿到辅助引导加载程序的主循环(包括WFI()),以便设备运行一次,然后在WFI中等待()在低功率状态下。此外,您还必须移动唤醒控制器驱动程序并将其设置为才能从预定义的GPIO中唤醒设备。

谢谢mt_dialog.

Muneyuki Ishihara.
离线
最后一次露面:3年9个月前
加入:2016-11-25 08:11
谢谢您的帮助。

谢谢您的帮助。