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

5个帖子 / 0新
最后一篇文章
Muneyuki Ishihara
离线
最后一次露面:3年10个月前
加入: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示例就会实现此睡眠和唤醒功能。辅助引导加载程序不启用BLE FW,它只是具有多个功能功能的FW,一个功能功能是选择闪存中的两个图像中的哪个将在Sysram中下载,以便执行。

因此,操作如下,设备电源供电并运行二次引导程序(多个图像引导通常适用于SUOTA,但可以修改以在其他条件下选择适当的图像)。辅助引导加载程序选择要加载的图像并将其下载到Sysram,下载完成后,设备已重置并运行BLE_ENABLED FW运行(根据应用程序睡眠和醒来)。那么,您能否澄清您的问题,以便我理解?

谢谢mt_dialog

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

亲爱的对话支持

很抱歉缺乏信息。

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

我将准备两个不同的图像。例如,IMG1作为正常操作程序操作,并且IMG2作为测试程序操作。
如果按下“ key1”,则加载了“ img1”,并且按下“ key2”时,“ img2”是从辅助引导程序中的SPI闪存中加载的。
它可以通过下面的程序实现,但是浪费了力量。因此,我想用“睡眠”和“唤醒(gpio)”意识到这一点,以节省功率。

--- ex:不睡眠计划(但浪费了力量)----
而(1)
{
if(gpio_getpinstatus(gpio_key_1_port,gpio_key_1_pin)== gpio_key_key_push_status)
{
loadImage = img1;
休息;
}
否则if(gpio_getpinstatus(gpio_key_2_port,gpio_key_2_pin)== gpio_key_key_push_status)
{
loadImage = img2;
休息;
}
}

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

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

嗨,Muneyuki Ishihara,

正如我提到的那样,次级引导加载程序不启用BLE或实施睡眠,手臂一直在运行,所有外围设备都在打开。从启用BLE的设备中获取睡眠机制并将其连接到引导加载程序FW是未实现的,但它是合理的。您可以尝试从Arch_main.c文件中从main_func()函数中模拟机制到辅助启动程序的主循环(包括WFI()),以便设备运行一次,然后在WFI中等待()处于低功率状态。另外,您还必须移动唤醒控制器驱动程序并进行设置,以便从预定义的GPIO唤醒设备。

谢谢mt_dialog

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

谢谢您的帮助。