双核 IPC 日志示例
源码位置: samples/subsys/logger/dual_core_ipc 查看源码
这个示例专门演示双核环境下的 AP 日志通过 IPC 转发到 CP 打印,不依赖 WiFi。
行为
AP 核启动并引导 CP 核
AP 核初始化 IPC slave,并周期性打印
AP heartbeatCP 核初始化 IPC master,并在本地串口输出 AP 转发过来的日志
AP 侧 IPC writer backend 会为转发日志补上来源前缀,默认显示为
[REMOTE]
自定义来源标记
如需修改转发日志前缀,可在 AP 侧 remote/prj.conf 中覆盖:
CONFIG_LOG_BACKEND_IPC_PREFIX="[APP] "
设置后,CP 串口上的 AP 转发日志将显示为 [APP] ...。
编译
重要提示:编译前需要先确认当前示例支持的目标板型,然后将板型标识传给 -DBOARD。请按以下方式选择:
确认示例限制:查看当前示例
README中的硬件连接和注意事项,确认是否限定板型。参考示例配置:查看相关示例目录下的
sample.yaml,确认支持的板型。填写板型标识:SDK 内置板型的标识为
boards/下的目录名。例如实际使用的板型目录为boards/<板型名称>/,则编译参数填写为-DBOARD=<板型名称>。
在 SDK 根目录执行编译,并将命令中的 <示例路径> 和 <板型名称> 替换为实际值。
Linux 使用 build.sh:
# 通用命令
./build.sh -C -S samples/<示例路径> -DBOARD=<板型名称>
# 示例:使用 arcs_evb 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_evb
Windows PowerShell 使用 build.ps1:
# 通用命令
.\build.ps1 -C -S samples/<示例路径> -DBOARD=<板型名称>
# 示例:使用 arcs_evb 开发板
.\build.ps1 -C -S samples/<示例路径> -DBOARD=arcs_evb
Note
确保已安装对应平台的工具链和 ListenAI 开发工具包。Windows 环境请先执行 .\env.ps1 或直接使用 .\build.ps1 自动加载环境。
注意事项:-DBOARD 填写的是板型标识,不是芯片系列名称。如果示例有板型专用配置或额外编译参数,以示例 README 中的说明为准。
执行一次构建会同时生成:
build/dual_core_ipc_cp.binbuild/remote/dual_core_ipc_ap.bin
烧录
guardian 会按照 sample.yaml 中的 images 配置依次烧录 AP 和 CP 两个 bin。
如需手动烧录,可执行:
./tools/burn/cskburn -s /dev/ttyUSB0 -b 3000000 0x0 build/remote/dual_core_ipc_ap.bin -C arcs
./tools/burn/cskburn -s /dev/ttyUSB0 -b 3000000 0x80000 build/dual_core_ipc_cp.bin -C arcs
build/merged.bin 仍会保留,供需要单镜像烧录的场景使用。
预期结果
ttyACM0(CP)能看到类似[REMOTE] I/ap_main ... AP heartbeat的输出AP 侧仍保留 console backend;如接出 AP UART,也能看到本地日志输出