微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > cc2541写flash会导致蓝牙断开

cc2541写flash会导致蓝牙断开

时间:10-02 整理:3721RD 点击:

我现在的应用,收到写特征值参数后要调用osal_snv_write写入flash

这样在测试时发现会有蓝牙断开的情况,断开的reason是0x3F,HCI_ERROR_CODE_MAC_CONN_FAILED

这是什么原因导致的呢?写flash时间过长导致蓝牙底层处理超时?

有何解决方法?

我前面可能没说清楚

我确定是写flash导致的蓝牙断开,因为注释掉就不会了

我问的是写flash导致蓝牙断开的原因以及解决方法

进一步跟踪发现是flash页擦除函数耗时20ms导致呆掉的

如果擦除要这么长时间,那么势必会影响正常的Task,怎样解决这个问题呢?

最终我通过设置DEFAULT_DESIRED_MIN_CONN_INTERVAL 和DEFAULT_DESIRED_MAX_CONN_INTERVAL解决了这个问题

注意这些连接参数要生效,DEFAULT_ENABLE_UPDATE_REQUEST要设为TRUE

对ios而言,MIN_CONN_INTERVAL + 20ms要不大于MAX_CONN_INTERVAL,

否则所有参数无效,ios用自己的默认参数,我测试它那个很快,擦flash会断

MIN_CONN_INTERVAL  设为40 (50ms),MAX_CONN_INTERVAL 56 (70ms),测了几款苹果和安卓,擦flash不会断了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top