我在看关于睡眠模式的一些资料,
1 .在Traning_04_sleep_modes_current_measurement_v1.0.pdf中设置为深度睡眠时,程序烧录在OTP中?只能这样做吗?烧录在eepm中不可以吗?
2 .我没看懂哦- b - 006和Traning_04_有什么关系啊?感觉怎么讲的不是一个东西!前者文档中讲的CFG_EXT_SLEEP在需求方的工程中也没有。
3 .在DA1458x_IOT的工程中,我看有好多地方写了这句
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
{
periph_init ();
}
这个是唤醒后重新初始化外设的意思吗?为什么需求方的工程中和上述资料都没有讲这个吗?
4 .唤醒后程序是从哪里开始执行的?主要()还是进入睡眠的地方?如果说是睡眠的地方,那我该怎么设置程序从哪里进入睡眠呢?
问题有点多,麻烦啦,谢谢!
设备:
1。如果是深度睡眠,一般因为考虑保留memory里存的一些信息,建议代码只能烧在OTP里面。但是如果你不需要保存,直接冷启动,你用外部flash或者E2PROM也没问题。
调用这个SetBits16 (PMU_CTRL_REG RESET_ON_WAKEUP 1);直接重启
2. um - b - 006有点像睡眠模式设计的思路,列出了一些软件的回调接口.CFG_EXT_SLEEP是在SDK3里面出现的;在DSP SDK5的工程里面,有个宏做了同样的事情,静态sleep_state_t app_default_sleep_mode = ARCH_SLEEP_OFF;//可以改
3 .一般涉及睡眠的工程都会加这个,需求方里的工程里有啊,在BLE_WAKEUP_LP_Handler函数里面会访问到
4 .唤醒后,会首先回到中断处理函数BLE_WAKEUP_LP_Handler里面,处理完后会从之前“用水”停下来的地方继续走。睡眠的判断都在main_func里面。
可是Traning_04_sleep_modes_current_measurement只是修改了一些配置文件就实现了睡眠功能。用户到底需不需要按照嗯- b - 006介绍的那样去修改呢?还是只按照Traning_04_sleep_modes_current_measurement的说的区修改(我用的需求方的工程修改的)。有没有示例工程给看一下啊?
谢谢
直接宏来控制就可以,对睡眠模式来说,不需要修改现有的代码就能实现。