在运行 LVGL 任务和 SPI 任务时遇到问题,如果运行 LVGL 任务,数据就会丢失。如果 LVGL 任务已注释,则 SPI 不会丢失数据。SPI 运行频率为 2 MHZ,我们正在使用LPSPI_SlaveTransferNonBlocking()。
,SPI 外设配置为传输 。
您好,
请参考官方的 lvgl 示例,看看是否存在基于相同硬件的性能问题。
此外,如果您使用 NXP GUI Guider 工具进行开发,还可以了解如何提高性能。
@Sam_Gao @Jack310West
当前 lvgl TASK 优先级小于 SPI 任务优先级。
我已尝试更改刷新率,但没有发现任何明显改善。
,在 freertos 配置中,我们启用了时间切片功能,同时还启用了抢占功能。
您好,
合理的做法是提高 SPI 任务的优先级,使其高于 LVGL 的优先级,或优化 LVGL 的性能(如降低刷新率、简化用户界面),并确保 LVGL 中没有关键部分长时间禁用中断。
通过降低时钟频率,效果会更好,但我们的使用情况需要 2 mhz,还有其他建议吗?
您好!
LVGL 运行时会丢失 SPI 数据,而注释 LVGL 时不会丢失,这强烈表明存在资源争用或 CPU 饥饿现象。LVGL 任务可能消耗了太多 CPU 周期,导致 SPI 任务或其中断服务例程 (ISR) 无法及时处理 LPSPI_SlaveTransferNonBlocking() 完成。提高 SPI 任务的优先级,使其高于 LVGL 的优先级,优化 LVGL 的性能(如降低刷新率、简化用户界面),并确保 LVGL 中没有关键部分长时间禁用中断。暂时降低 SPI 时钟速度也有助于确认它是否是吞吐量瓶颈。