amobbs.com 阿莫电子论坛

 找回密码
 注册
bottom↓
查看: 918|回复: 132

NRF51822使用了softdevice之后无法存储数据到Flash的问题

[复制链接]
发表于 2018-4-22 08:25:48 | 显示全部楼层 |阅读模式
请问各位坛友,我在使用NRF51822的时候想要利用其FLASH来存储一些参数,但是发现这样的问题:
FLASH存储操作如果是在BLE协议栈启动前发生,那么会有效;FLASH存储操作如果是在BLE启动之后发生,那么则无效(即无法修改FLASH中的实质数据);

再问一个问题:我在代码中定义了一个软件定时器,一开始它会每隔2S进入一次超时回调函数,但如果蓝牙一直没有连接上的话这个定时将不再能够超时回调(看上去就像芯片已经跑飞了)。

各位坛友有碰到这样的问题吗?该如何解决?
发表于 2018-4-23 14:40:22 | 显示全部楼层
第一个问题:建议详细阅读 Nordic 的文档,使能 softdevice 后的 flash 操作是有一定条件的(尤其是蓝牙在连接状态)。
第二个问题:猜测这个软件定时器与内部蓝牙使用的是同一个硬件定时器,所以,蓝牙那边一出现问题,软件定时器也挂了。建议,先解决蓝牙为什么没有连接上的问题吧。
 楼主| 发表于 2018-4-23 20:23:15 | 显示全部楼层
pingdan32 发表于 2018-4-23 14:40
第一个问题:建议详细阅读 Nordic 的文档,使能 softdevice 后的 flash 操作是有一定条件的(尤其是蓝牙在 ...

第一个问题现在没有完全解决,不过有一个折中的方案:使用一小块RAM(让它不初始化)来存储配置参数,这样只要电池没有卸掉就可以当作。另外加一块EEPROM作为 存储了。NRF51822的FLASH操作搞了不少测试都不行,暂时放弃。

第二个问题已经解决:是因为广播结束后进入了深度睡眠,把这个禁掉就可以了。
发表于 2018-5-9 11:46:09 | 显示全部楼层
百果 发表于 2018-4-23 20:23
第一个问题现在没有完全解决,不过有一个折中的方案:使用一小块RAM(让它不初始化)来存储配置参数,这 ...

恭喜
第一个问题,这个确实不太好弄,我看Nordic的官方资料,已经列出了所有的可能会导致flash操作的问题(由于BLE)
第二个问题,有点乌龙,哈哈
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号-1 )

GMT+8, 2020-4-6 22:44

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表