RDK S100 Can通讯问题,请帮忙看看,紧急,

根据你的问题描述和日志,CAN8/CAN9 自收发自测失败的核心原因是:配置文件未正确映射硬件通道

快速排查步骤

1. 检查配置文件

CAN 通讯需要正确配置 ipcf_channel.json 文件:

cat /app/Can/can_multi_ch/config/ipcf_channel.json

CAN8 发送、CAN9 接收的正确配置应如下:

{
  "enable": true,
  "channels": [
    {
      "name": "bypass",
      "hw_chan": 9,
      "sw_chan": 0,
      "baudrate": 500000,
      "role": "receiver"
    },
    {
      "name": "bypass",
      "hw_chan": 8,
      "sw_chan": 0,
      "baudrate": 500000,
      "role": "transmitter"
    }
  ]
}

2. 确认跳线帽连接

从你的接线图看,需要确认:

  • CAN8_TX 连接 CAN9_RX
  • CAN8_RX 连接 CAN9_TX
  • 跳线帽已插入对应位置(MCU 扩展板上的 CAN 回路选择跳线)

3. 正确测试命令

# 终端1:启动接收(先启动)
sudo ./canhal_get bypass

# 终端2:启动发送
sudo ./canhal_send bypass 8

4. 查看你的日志关键错误

从你上传的日志看,关键错误是:

[CANHAL][ERROR][ipcf_dev.cpp:136]:HorizonHal_IPCF_Recv of id:0 failed, ret is -11

错误码 -11 表示通道未正确初始化或配置不匹配

常见问题

  1. 配置文件未修改:默认配置可能不是 CAN8/CAN9 组合
  2. 波特率不匹配:确保收发双方波特率一致(默认 500K)
  3. 跳线帽位置错误:MCU 扩展板上有多个跳线选择,需确认选择的是 CAN8/9 回路
  4. 权限问题:确保使用 sudo 运行

参考资源

建议先检查配置文件内容,然后发出来,我可以帮你确认配置是否正确。