Thread 中讨论的其他部件:TMDSCNCD263、 TCA6416、 Sysconfig
工具/软件:
您好!
我尝试运行 TI 的 canfd_external_read_write.c 示例 、该示例位于:
我按照示例中的说明、将 TMDSCNCD263 控制卡开发套件设置到运行 PCAN 视图的 Windows 计算机。
我将`canfd_external_read_write_am263x-cc_r5fss0-0_nortos_ti-arm-clang`导入到我的 CCS 版本 20.1.1 (20.1.466)、在可用的调试器下编译和运行代码。
我有两个问题。
1)
我发现我需要注释 L97 `mcanEnableTransceiver ()`来运行程序。 https://github.com/TexasInstruments/mcupsdk-core/blob/next/examples/drivers/mcan/canfd_external_read_write/canfd_external_read_write.c#L97
如果我没有收到该错误信息`Cortex_R5_0:asserted:0.181s:.../canfd_transmitter.c:SetupI2CTransfer:103:SystemP_Success == status failed!!` 在终端上。
这 可以评论出来吗? 为什么会发生这种情况?
2)
在注释掉 canfd_external_read_write.c L97 `mcanEnableTransceiver()`后。
运行代码时、我可以确认 TX 正在工作、因为我的 PCAN 视图会显示传入的 CAN FD 消息。 如果我从 PCAN 视图发送多条 CAN ID 为 0x0 的消息、程序就会收到这些消息而不会出现问题。 通过调试工具、我 看到调用了`MCAN_INTR_SRC_DEDICATED_RX_BUFF_MSG`和`CANFD_receiveBufferInterrupt`的中断状态。 https://github.com/TexasInstruments/mcupsdk-core/blob/next/source/drivers/mcan/v0/canfd.c#L319
但是、当我发送的 CAN ID 不是 0x0 的消息时、我会看到中断状态`MCAN_INTR_SRC_RX_FIFO0_NEW_MSG`、并调用`CANFD_processFIFOElements`。 这对第一条非 0 CAN ID 消息成功有效。 但是、 接收到的第二个非 0 CAN ID 消息会导致硬故障。
ptrCanMsgObj = ptrCanFdObj->rxMapping[fifoStatus.getIdx]; 具有 getIdx 返回 1、ptrCanMsgObj 被赋予值 0 、因为 rxMapping[1]仍为 NULL、而 解除引用 ptrCanMsgObj 会导致崩溃。 https://github.com/TexasInstruments/mcupsdk-core/blob/next/source/drivers/mcan/v0/canfd.c#L198
如何以不同的方式配置/设置 CAN FIFO、以便它可以成功从任何扩展 CAN ID 接收多条 CAN 消息? (我仍然需要 64B canfd 消息)。 我尝试使用配置设置来专门用于支持 CAN FD - FIFO、但没有成功。
谢谢!