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

nRF5340-DK实现简单BLE项目时HCI驱动端点绑定失败求助

错误原因分析

日志中的-11对应Zephyr的-EAGAIN错误,说明HCI驱动无法与nRF5340的Network Core(BLE控制器所在核心)建立IPC连接,核心原因是双核配置缺失或烧录流程不正确。nRF5340采用双核架构,BLE控制器运行在Network Core,Application Core需要通过IPC机制与它通信,若相关配置未开启或Network Core固件未烧录,就会触发该错误。

解决步骤

1. 补充prj.conf核心配置

在现有配置基础上添加以下内容,开启IPC和BLE控制器支持:

# 开启IPC通信(双核必备)
CONFIG_IPC=y
# 启用BLE控制器(由Network Core提供)
CONFIG_BT_CTLR=y
# 配置HCI主机中断优先级和工作栈大小
CONFIG_BT_CTLR_HOST_IRQ_PRIO=0
CONFIG_BT_CTLR_HOST_WORKQ_STACK_SIZE=2048
# 暂时关闭扩展广播(先确保基础功能正常)
# CONFIG_BT_EXT_ADV=y

2. 修正广播模式(可选,若需要手机连接)

原代码中使用BT_LE_ADV_NCONN是不可连接广播,nRF Connect可以发现但无法发起连接。如果需要后续连接,修改广播启动参数为可连接模式:

err = bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad), NULL, 0);

3. 确保Network Core固件已烧录

nRF5340需要同时烧录Application Core和Network Core的固件:

  • 方法1:使用nRF Connect Programmer单独烧录Network Core固件,可从NCS SDK路径modules/nrf/drivers/bluetooth/hci_rpmsg获取对应版本的net_core_image.hex。
  • 方法2:开启自动合并双核固件,在prj.conf中添加:
    CONFIG_BOOTLOADER_MCUBOOT=y
    CONFIG_BUILD_OUTPUT_HEX=y
    CONFIG_MULTICORE_IMAGE=y
    CONFIG_MCUBOOT_IMAGE_NUMBER=2
    
    编译后会生成包含双核固件的合并hex文件,直接烧录即可。

4. 验证板级配置

确认编译时使用的是nRF5340-DK的正确板级配置,比如编译命令指定-b nrf5340dk_nrf5340_cpuapp(Application Core),避免误选Network Core配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:43:12