This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LC4357:使用 FreeRTOS 时的 CAN 总线发送错误

Guru**** 2425270 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1321906/tms570lc4357-can-bus-transmit-error-with-freertos

器件型号:TMS570LC4357

尊敬的所有人:

我在 TI 开发套件中使用 TMS570LC43x 微控制器的项目中遇到错误、此后我打开本主题。 我正在使用不同的通信外设、包括 SPI 和 CAN。 在后一种情况下、我希望通过 CAN1 Broacast 执行数据的循环传输、而不需要中断(因为预计 CAN 通道上不会接收到信息请求)。 起初、我成功地完成了这段传输过程、能够在输出端传输和读取数据。

然后、我介绍了 FreeRTOS 任务管理、以便能够通过以太网端口引入 UDP 通信。 此后、我不再能够使 CAN 正常工作、因为我总是在 CAN 寄存器中遇到错误(通常在 LEC 寄存器中出现 ACK 或格式错误)。 我已经尝试以最高优先级为 CAN 传输创建一个单个任务、让可以在任务调度程序启动之前进行传输、甚至在执行传输时创建一个关键段、以防不必要的中断损坏任务。 不过,我也不知道该怎么说。 我认为、与只有没有 FreeRTOS 的 CAN 的代码进行比较时、这可能与不同微控制器外设和功能的链接器文件、存储器管理或初始化例程有关。

我乐意接受您提出的任何可以帮助我解决问题的建议。

感谢您的关注和帮助