
【前言】 今天准备使用STM32F769I-DISC1的SDRAM做为LVGL的显存来使用,复制的是官方的驱动工具包stm32f769i_discovery_sdram.c 但移植好文件后,运行不正常,通过调试发现进入MemManage_Handler异常。经查看资料,分析,发现我的没有对MPU进行设置,造成了异常。下面记录一下我的排查方法。 1、移植的步骤不细说,把文件移植好后,修改宏配置,编译是通过的。 2、将 3、为此我搜寻了一下资料,添加打印信息到运行前面。并且把初始化放到串口初始化之后。运行到这里时打印出信息: Initializing Initializing SDRAM Bank 1 SDCR address: 0xA0000140 4、通过查找,以及结合异常中断,建对0xA0000000的内存进行内存保护配置。同时我也查找到了官方的内存试验,发现他是对这块单元进行配置的。 【解决方法】 我将0xA000000MPU设置代码复制到工程。再运行,发现就可以成功的通过了。 【思考】 在stm32F7xx中添加了MPU的机制,因此在内存使用中,必须考虑到MPU的机制。 |