用stm32F67bg驱动7寸800*480屏幕,emwin;一开始总是第一次下载程序运行10秒作用qspi读取FLASH错误,重新初始化qshi也不行,必须重新上电才行;排查总是屏蔽一些无关的代码就会正常,6 o, M% V( L+ |' b. S; W 随着代码量的增加,问题越来越严重最终发现是HAL_QSPI_Receive()读取超时,改用模拟spi速度又太慢!最终查到原来是cache的问题 CACHE 如果不开,运行速度几乎下降一半,无法接受;CACHE打开, 有时软件运行正常,但仅仅增加或删除一些无关紧要的代码,立马出现异常:只要异常了,屏幕就会闪烁. W9 G2 a% Y( F1 @ F 追寻了好多帖子,查了cache机制,改了MPU的参数都无法解决问题!!! 最终将代码优化等级从0改到default或者最高级别3,完美解决 项目还没完全结束,不知后面会不会出幺蛾子!但cache的水还是比较深,mpu的配合机制还没完全搞懂/ Z- F- c& D4 P7 f+ j1 y0 Q / B7 J) ?! w r9 m |