在目前STM32H7带XIP和外置PSRAM的框架下,RCC的配置需要在bootloader阶段完成(即片上flash的boot代码),原因如下 当XSPI时钟使能的时候,XSPICKP会被置为1,这时候下表所示的多个时钟配置将不允许修改 因此,如果要使用XSPI做XIP,则XIP部分的app代码不应对RCC配置再做修改 要使用PSRAM,相关初始化需要在bootloader阶段完成,然后app配置的时候,可以使用从0x90000000开始的地址来对PSRAM来进行访问。 下面介绍Template_XIP_Boot工程中相关的配置 1、使用MX_XSPI1_Init对XSPI1进行初始化 2、使用MX_EXTMEM_MANAGER_Init进行内存映射 3、完成这个步骤之后,已经可以在bootloader或者NOR FLASH的XIP中对0x90000000起始的地址进行访问了 下面在NOR FLASH的XIP中实现对0x90000000起始的地址进行访问,代码如下 其中XSPI1_BASE定义如下 在调试模式下运行这段代码,可以看到0x90000000开头的memory内容如下 说明对应的内容可以正确写入
|