在测试中发现STM32H743的Log串口打印消息整条丢失,属于Cache一致性问题,可能的原因如下:
1、所调用的用于Cache操作的库函数存在Bug;
2、在ISR中启动串口DMA传输;
3、启动DMA传输过于频繁。
解决办法:
1、通过MPU禁用一片内存区域的Cache功能,用该内存区域作为Log串口缓冲区;
2、不允许在ISR中启动串口DMA传输;
3、当缓存数据超过1024字节才能启动串口DMA传输。
在测试中发现STM32H743的Log串口打印消息整条丢失,属于Cache一致性问题,可能的原因如下:
1、所调用的用于Cache操作的库函数存在Bug;
2、在ISR中启动串口DMA传输;
3、启动DMA传输过于频繁。
解决办法:
1、通过MPU禁用一片内存区域的Cache功能,用该内存区域作为Log串口缓冲区;
2、不允许在ISR中启动串口DMA传输;
3、当缓存数据超过1024字节才能启动串口DMA传输。