主题中讨论的其他器件:C2000WARE
您好!
我正在使用 F28388D MCU CM 内核中的项目代码进行测试。 使用适用于 C2000ware_SDK 中 CM 内核的 FreeRTOS 内核的项目。
我有一个错误、我不知道解决它。 我的项目中有1个 ISR_Handler 和4个任务。
-用于 UART 中断的 ISR_Handle (由 UART Rx FIFO 满级别7/8 (14字节)触发、UART Rx 超时和 UART TX 完成)
4个任务:2个优先级为2的任务、1个优先级为1的任务和空闲任务。
我向 UART RX 发送数据包消息,中断 UART Rx FIFO 满(级别 RX 7/8 FIFO)和 UART Rx 超时,并从 UART_ISR_handler 中的数据包解析消息。
我意识到、当我发送数据包时、数据包的字节数量大约是 Rx FIFO 触发器和 Rx 超时的15倍。 一切都仍然正常。
如果 packer msg 具有 使 Rx fifo 触发器和 Rx 超时总数约超过15倍的字节数。 FreeRTOS 内核管理的所有任务都已失效。 程序卡在 FAULT_ISR 中断中。
我已检查堆栈是否溢出? 但看起来不是。
我还阅读了 FreeRTOS 文档、重点介绍第6章:中断管理- ARM cortex M 的中断嵌套 、并将 UART 中断的优先级设置为6 < CONFIGMAX_SYSCALL_INTERRUPT_PRIOTITY (5 < 5)、因为在 INTERRUPT_Handle 中、我使用了带有__ FromISR 的 FreeRTOS API。
感觉有太多的中断触发器可能会终止 RTOS 的任务?
你能给我任何意见或建议吗?