This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:扫描时内存不足

Guru**** 3001220 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/923126/ccs-insufficient-memory-when-scanning

工具/软件:Code Composer Studio

尊敬的

  我使用接口 GapScan_enable (0、0、0)在基于项目 multi_role 的扫描后打开代码中的扫描、几个小时后、代码将报告内存不足并停止扫描。那么、我应该在代码中修改 shoudle 的位置执行什么操作?一些相关代码如下所示:

静态 void multi_role_scanInit (void)
{
 uint8_t temp8;
 uint16_t temp16;
 //设置扫描
 //有关更多信息,请参阅用户指南中的 GAP 部分:
 // software-dl.ti.com/.../
 //注册回调以处理扫描仪事件
 GapScan_registerCb (multi_role_scanCB、空);
 //设置扫描仪事件掩码
 GapScan_setEventMask (GAP_EVT_SCAN_ENABLED | GAP_EVT_SCAN_DISABLED |
                      GAP_EVT_ADV_REPORT);
 //设置扫描 PHY 参数
 GapScan_setPhyParams (default_scan_PHY、scan_type_passive、
                      SCAN_PARAM_DFLT_INTERVAL、SCAN_PARAM_DFLT_WINDOW);
 //设置要保留的广播报告字段
 temp16 = MR_ADV_RPT_Fields;
 GapScan_setParam (scan_Param_RPT_Fields、&temp16);
 //设置扫描主 PHY
 temp8 = DEFAULT_SCAN_PHY;
 GapScan_setParam (scan_Param_Prim_phys、&temp8);
 //设置 LL 重复滤波器
 temp8 = SCAN_FLT_DUP_ENABLE;
 GapScan_setParam (scan_Param_FLT_DUP、&temp8);
// temp16 = scan_FLT_PDU_connectable_only | scan_FLT_PDU_complete_only;
 temp16 = SCAN_FLT_PDU_ADV_ONLY | SCANFLT_PDU_SCANRSP_ONLY | SCAN_FLT_PDU_COMPLEE_ONLY;
 GapScan_setParam (scan_Param_FLT_PDU_type、&temp16);
 Multi_role_doDiscoverDevices (1);
 //BleCentralApp_init();
}
bool multi_role_doDiscoverDevices (uint8_t 索引)
{
 (无效)索引;
#if (DEFAULT_DEV_DISC_BY_SVC_UUID == true)
 //扫描 DEFAULT_SCAN_DURATION x 10ms。
 //堆栈不需要记录广播报告
 //因为应用程序将按 Service UUID 过滤它们并进行保存。
 //开始扫描前将扫描结果数重置为0
 numScanRes = 0;
 GapScan_enable (0、0、0);
#else //!default_dev_disc_by_SVC_UUID
 //扫描 DEFAULT_SCAN_DURATION x 10ms。
 //让堆栈记录最多为 DEFAULT_MAX_SCAN_RES 的广播报告。
 GapScan_enable (0、DEFAULT_SCAN_DURATION、DEFAULT_MAX_SCAN_RES);
#endif // default_dev_disc_by_SVC_UUID
 //仅启用“停止发现”,并禁用主菜单中的所有其它功能
// TBM_setItemStatus (&mrMenuMain、MR_Item_STOPDISC、
//                   (MR_ITEM_ALL &~MR_ITEM_STOPDISC);
 返回(真);
}