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.

[参考译文] RTOS/TMS320F28335:编译优化方面的 SYS/BIOS 错误?

Guru**** 2538930 points
Other Parts Discussed in Thread: TMS320F28335, SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/608246/rtos-tms320f28335-a-bug-of-sys-bios-about-compile-optimization

器件型号:TMS320F28335
Thread 中讨论的其他器件: SYSBIOS

工具/软件:TI-RTOS

你好吗?

  在 TMS320F28335中使用 SYSBIOS 时遇到问题。 我正在尝试实现 任务块 CAN 通信接口。 主要包括名为'postCanMailBlock'的发送接口和 名为'pendCanMailBlock'的发送接口。 此外、还有一个 HWI 函数用于从硬件端口接收 CAN 消息、还有一个 CAN 侦听任务用于处理这些发送和 接收请求。  当调用'postCanMailBlock'时, 要发送的消息将被推入一个发送缓冲区,该缓冲区由邮箱使用 mailbox_send API 实现。 然后 、CAN 侦听任务将获取此发送事件并通过调用硬件层函数发送此消息。 类似地、硬件端口接收到的 CAN 帧将被推送到接收缓冲器中、该缓冲器也由 HWI 函数中的邮箱实现、 并且 CAN 侦听任务将读取接收缓冲区并将接收到的消息发布到相应的用户自身的接收缓冲区(每个用户都可以创建一个 CanMailBox 结构、该结构维护一个专用的接收缓冲区。)

,、程序在运行一段时间后崩溃、提示"任务或 Swi 调度程序被禁用"。 我不在程序中使用任何 Hwi 禁用或 swi 禁用或任务禁用函数。 跟踪代码后、我发现任务调度程序确实已禁用、但我无法确认哪条语句会导致该任务调度程序。 然后 、为了跟踪 BIOS 步骤和步骤的代码、我 在自定义编译选项中关闭 BIOS 的编译优化。 但是   ,在编译优化结束后没有出现这种现象。 所以,这是 SYS/BIOS 的内部编译优化错误,或者其它原因?  此外、  我的程序中没有空闲任务或函数、但这似乎与我的问题无关。 我的 BIOS 版本是 BIOS_6_35_01_29,CCS 是5.4,编译器版本是 V6.4.6,XDCtools 版本是3.25.06.96。

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

    当你从 Hwi 调用这些函数时、你是否传递了一个非零超时? 在哪里可以看到"任务或 Swi 调度程序被禁用"?

    Todd