双核 IPC 日志示例

这个示例专门演示双核环境下的 AP 日志通过 IPC 转发到 CP 打印,不依赖 WiFi。

行为

  • AP 核启动并引导 CP 核

  • AP 核初始化 IPC slave,并周期性打印 AP heartbeat

  • CP 核初始化 IPC master,并在本地串口输出 AP 转发过来的日志

  • AP 侧 IPC writer backend 会为转发日志补上来源前缀,默认显示为 [REMOTE]

自定义来源标记

如需修改转发日志前缀,可在 AP 侧 remote/prj.conf 中覆盖:

CONFIG_LOG_BACKEND_IPC_PREFIX="[APP] "

设置后,CP 串口上的 AP 转发日志将显示为 [APP] ...

编译

重要提示:编译前需要先确认当前示例支持的目标板型,然后将板型标识传给 -DBOARD。请按以下方式选择:

  1. 确认示例限制:查看当前示例 README 中的硬件连接和注意事项,确认是否限定板型。

  2. 参考示例配置:查看相关示例目录下的 sample.yaml,确认支持的板型。

  3. 填写板型标识: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.bin

  • build/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,也能看到本地日志输出