You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用蓝牙指令致协处理器卡死(NUCLEO-WB16CC BLE开发)

STM32WB BLE广播载荷更新接口调用挂起问题

问题背景

  • 开发目标:修改BLE广播信标内的载荷数据
  • 硬件平台:基于双核STM32WB15CC的NUCLEO WB16CC开发板

故障现象

调用aci_gap_update_adv_data(sizeof(manuf_data), manuf_data)接口时,程序会在自行添加的两处// LED注释对应的代码行之间挂起,相关代码段如下:

static void SendCmd(uint16_t opcode, uint8_t plen, void *param)
{
  // vorac
  HAL_GPIO_WritePin(0x48000400, ((uint16_t)0x0020), 0);  // LED1
  pCmdBuffer->cmdserial.cmd.cmdcode = opcode;
  HAL_GPIO_WritePin(0x48000400, ((uint16_t)0x0001), 0);  // LED2

  pCmdBuffer->cmdserial.cmd.plen = plen;
  memcpy( pCmdBuffer->cmdserial.cmd.payload, param, plen );

  hciContext.io.Send(0,0);

  return;
}

已确认线索

  • pCmdBuffer指针非空,其指向的内存原始定义为PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static TL_CmdPacket_t BleCmdBuffer;
  • 若将该缓冲区修改为普通全局变量,程序挂起位置会下移到hciContext.io.Send(0,0);代码行
  • 初步怀疑故障与双核核间通信机制有关,暂未定位问题根源,寻求对应排查建议

内容的提问来源于stack exchange,提问作者Vorac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 22:48:22