TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC26X2R1: 死机问题定位

Part Number:LAUNCHXL-CC26X2R1

开发板运行一段时间后死机,如何定位死机原因?

Nick Sun:

您好,

死机的原因可能是多方面的,软件硬件都有可能,

您能否描述一下是在何种情况下碰到的这种情况,硬件方面是launchpad还是您客制化的板子?软件方面是在跑什么程序,有使用到相关的一些SDK吗?

感谢您的支持,期待您的回复。

,

DaZhuang:

硬件:官方开发板LAUNCHXL-CC26X2R1

工程:multi_role_CC26X2R1_LAUNCHXL_tirtos7_ticlang

修改项:

一、修改角色为Observer,在case GAP_DEVICE_INIT_DONE_EVENT事件完成后打开 GapScan_enable(0, 0, 30);持续扫描,并在MR_EVT_ADV_REPORT事件中打印扫描到的MAC和RSSI,运行3分钟后出现卡住,类似死机现象。(去掉扫描结果打印后,在定时器(3S)中加打印字符串,但是在后续挂机中定时器中打印也出现死机现象只不过运行90分钟才出现。,怀疑是UART打印速率过高导致死机?) 

二、去除了官方打印和界面,自己添加打印,修改代码如下,Printf为向外部task调用打印接口(单Task调用)

创建一个Uart任务

Uart初始化

任务实体

给外部提供的打印接口

,

Nick Sun:

您好,

您可以尝试把您的工程打包直接发文件压缩包过来,我们可以实际上手测试查找相关问题。

感谢您的支持。

,

DaZhuang:

SDK:  simplelink_cc13xx_cc26xx_sdk_6_41_00_17

6747.multi_role_CC26X2R1_LAUNCHXL_tirtos7_ticlang.rar

,

Nick Sun:

您好,

感谢您的快速跟进,我们这边会进行测试,有结论及时联系您。

,

DaZhuang:

您好!

麻烦问下这个问题有进展了吗?

,

DaZhuang:

您好!

麻烦问下这个问题有进展了吗?

,

Nick Sun:

您好,

您的问题已经同步给产线工程师,他们给反馈后会即使答复您

,

DaZhuang:

map文件可以定位问题,那么死机后可以用该文件获取dump文件吗?或者说死机后无法查看堆栈

,

Nick Sun:

您好,

收到工程师的回复:

根据您的描述,应用似乎不需要使用多角色项目(multirole project)。如果正在实施观察员角色(observer role),那么我们会建议从 simple_central 开始并根据需要修改项目。

您能否尝试对 simple_central 项目执行更改并验证该现象是否仍然存在?

另外,7.10 SDK 已经发布了一段时间,我们会建议您始终使用最新的 SDK,以确保得到最新的错误修复、功能和优化。

,

DaZhuang:

我可以尝试其他工程或SDK,

问题:CC26x2芯片死机时是否支持查看其堆栈(死机信息)?如果可以麻烦同步下方法,谢谢!

,

DaZhuang:

更换了别的任务,依旧打印一段时间死机

我想长期扫描    函数 GapScan_enable(0, 0,0)应该在哪里调用?

,

Nick Sun:

您好,

收到工程师的和回复:

首先,为什么您要扫描这么长时间?保持在扫描模式会消耗大量电量。

也许更推荐做一些周期扫描来避免这个问题。

还要确保调用函数以在正确的位置进行扫描(检查它在simple_central中调用的位置),因为如果不分配内存,它可能会遇到“内存不足”问题。

要真正了解崩溃的来源, 请用sniffer记录一些BLE痕迹( BLE traces)。

,

DaZhuang:

如图高亮部分,buf为Static时不死机,去掉static时死机,当为局部buf时减小size为32时也不会死机,是不是芯片堆栈管理的问题?

case MR_EVT_ADV_REPORT: { GapScan_Evt_AdvRpt_t* pAdvRpt = (GapScan_Evt_AdvRpt_t*) (pMsg->pData);

static int8_t buf[128] = {0}; memset(buf, 0, sizeof(buf)); snprintf(buf, sizeof(buf), "MAC: %s, RSSI: %d\r\n", Util_convertBdAddr2Str(pAdvRpt->addr), pAdvRpt->rssi); DoPrint(gPrintHand, "Discovered: %s", buf); if (pAdvRpt->pData != NULL) {   ICall_free(pAdvRpt->pData); }    break; }

,

Nick Sun:

您好,

我们工程师认为可能和持续扫描(continuous scanning)有关。工程师还是希望您可以尝试抓取BLE Trance。

可能和扫描方式不当也有关系。如果扫描不正确,设备可能会耗尽内存导致崩溃。

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC26X2R1: 死机问题定位
分享到: 更多 (0)