ffl86
July 16, 2015, 8:29am
1
请问
在开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 可以唤醒
这是什么问题?
user3
July 16, 2015, 8:35am
2
我也是开启了NVDS读写啊,什么都没改就可以进入休眠和唤醒:o,你还修改了什么吗?
ffl86
July 16, 2015, 11:28am
3
我是用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
ffl86
July 17, 2015, 3:08am
5
卡在 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
user3
July 17, 2015, 6:50am
7
ffl86 发表于 2015-7-16 19:28
我是用QBLUE1.35B里头的prj_hrps
改了
/// NVDS WRTIE SUPPORT
我对例程中的prj_hrps仅仅做了的打开NVDS WRTIE SUPPORT的修改,如下图所示,编译后可以正常运行。并没有出现你所说的卡在睡眠中的情况。你是不是还有修改过哪里呢?有没有使用git?使用了的话可以用git查看一下修改,给个补丁我帮你看看。
ffl86
July 20, 2015, 2:30am
8
user3
July 20, 2015, 3:13am
9
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
ffl86
July 20, 2015, 6:22am
10
可以动了!!!
#define CFG_MEM_RETENTION
请问这是在设定?
user3
July 21, 2015, 3:47am
11
ffl86 发表于 2015-7-20 14:22
可以动了!!!
#define CFG_MEM_RETENTION
SRAM分成8个Block,这个是定义开启哪一些Block的