今天突发奇想,打算将代码搬运到外挂的SDRAM运行!查了各种资料,确定是可以的!但是要先把SDRAM调试好,再想下一步!配置好以后,代码出问题了,debug的时候,发现进入了
void MemManage_Handler(void)死循环中。如下:
void MemManage_Handler(void)
{
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
/* USER CODE END W1_MemoryManagement_IRQn 0 */
}
}
后来查资料,是因为用stm32cubemx配置(stm32f767)默认开启了内存保护模式,于是就尝试把内存保护模式关闭,果然能正常使用了!记录下来当作笔记同时希望能给刚学习的同学参考下!
1 STM32CUBEMX配置的时候,需要把MPU功能关掉,如下图:
其中2号框可打开可不打开,还没研究有什么影响,但是我测试了,SDRAM都是可以正常用的
2 在SDRAM配置里面,写保护也要关掉,其他参数按照自己的配置和SDRAM参数填进去就行了