|
用stm32F67bg驱动7寸800*480屏幕,emwin;一开始总是第一次下载程序运行10秒作用qspi读取FLASH错误,重新初始化qshi也不行,必须重新上电才行;排查总是屏蔽一些无关的代码就会正常,9 g5 q! Y. v! ^ 随着代码量的增加,问题越来越严重最终发现是HAL_QSPI_Receive()读取超时,改用模拟spi速度又太慢!最终查到原来是cache的问题 CACHE 如果不开,运行速度几乎下降一半,无法接受;CACHE打开, 有时软件运行正常,但仅仅增加或删除一些无关紧要的代码,立马出现异常:只要异常了,屏幕就会闪烁 $ d; t" C! U* R0 k0 M 追寻了好多帖子,查了cache机制,改了MPU的参数都无法解决问题!!!& t9 x/ P% Y% I# z) v4 Y 最终将代码优化等级从0改到default或者最高级别3,完美解决 项目还没完全结束,不知后面会不会出幺蛾子!但cache的水还是比较深,mpu的配合机制还没完全搞懂, d: A; S& ]4 ^6 B% _. k4 @ 1 j4 l7 n8 D/ q5 W; I ^8 D |
微信公众号
手机版