SLEEP&NVDS

请问
在开NVDS读写的功能后
进休眠模式就不能唤醒
这是哪边的问题
我有修改 sleep_init
// power down all unretention memory all the time.
// if you want to use the unretention memory in the active mode, remove the following snippet.
// syscon_SetPGCR1WithMask(QN_SYSCON,
// (SYSCON_MASK_DIS_MEM1
// | SYSCON_MASK_DIS_MEM2
// | SYSCON_MASK_DIS_MEM3
// | SYSCON_MASK_DIS_MEM4
// | SYSCON_MASK_DIS_MEM5
// | SYSCON_MASK_DIS_MEM6
// | SYSCON_MASK_DIS_MEM7),
// QN_MEM_UNRETENTION);

不然会卡在 HardFault_Handler
但现在还是没办法唤醒

可是用J-LINK DEBUG 可以唤醒

这是什么问题?

我也是开启了NVDS读写啊,什么都没改就可以进入休眠和唤醒:o,你还修改了什么吗?

我是用QBLUE1.35B里头的prj_hrps
改了
/// NVDS WRTIE SUPPORT
#define CFG_NVDS_WRITE
就不能用了

仿真调试會卡在HardFault_Handler

ffl86 发表于 2015-7-16 19:28
我是用QBLUE1.35B里头的prj_hrps
改了
/// NVDS WRTIE SUPPORT

有没有跟进代码调试看一下卡在哪里了?还有你的优化等级不要打太高,否则很容易会卡在sleep_init这里;:lol

卡在 wakeup_by_sleep_timer(__32K_TYPE); 里的

__STATIC_INLINE void syscon_SetPGCR2WithMask(QN_SYSCON_TypeDef *SYSCON, uint32_t mask, uint32_t value)
{
__wr_reg_with_msk((uint32_t)&SYSCON->PGCR2, mask, value);
}

优化等级 LEVEL3

ffl86 发表于 2015-7-17 11:08
卡在 wakeup_by_sleep_timer(__32K_TYPE); 里的

你试试降低优化等级看看:)

ffl86 发表于 2015-7-16 19:28
我是用QBLUE1.35B里头的prj_hrps
改了
/// NVDS WRTIE SUPPORT

我对例程中的prj_hrps仅仅做了的打开NVDS WRTIE SUPPORT的修改,如下图所示,编译后可以正常运行。并没有出现你所说的卡在睡眠中的情况。你是不是还有修改过哪里呢?有没有使用git?使用了的话可以用git查看一下修改,给个补丁我帮你看看。

git还不太会用

整包丢上来…
链接:http://pan.baidu.com/s/1i3vlZvR 密码:lwqm

1.你用的例程不是FireBLE的源码,是SDK中的源码。我只进行了是否可以开机初始化的测试。
2.在usr_config.h中修改以下位置:
/// Memory retention
#define CFG_MEM_RETENTION (MEM_BLOCK1 | MEM_BLOCK2 | MEM_BLOCK3 | MEM_BLOCK6 | MEM_BLOCK7)
开启MEM_BLOCK3后sleep_init才能过。
3.警告部分,建议如下修改
#if QN_NVDS_WRITE
char *test1=“Helon”;
uint8_t test2[5]={0};
nvds_tag_len_t length=strlen(test1);

if (NVDS_OK==nvds_put(NVDS_TAG_WR_TESET,length,(uint8_t *)test1))
{
nvds_get(NVDS_TAG_WR_TESET,&length,test2);
}
#endif

可以动了!!!

#define CFG_MEM_RETENTION
请问这是在设定?

ffl86 发表于 2015-7-20 14:22
可以动了!!!

#define CFG_MEM_RETENTION

SRAM分成8个Block,这个是定义开启哪一些Block的