本帖最后由 lszisgood 于 2020-12-2 23:23 编辑
i.MXRT1011内部集成了128KB RAM,通过连接四线QSPIFlash+PSRAM方式可以扩展外部大容量的RAM。
普通SDRAM初始化代码存储在dcd_sdram[]数组中,boot ROM code在进入_main之前已经调用了DCD代码,实现SDRAM初始化。但FLexSPI接口的PSRAM初始化没有现成的参考例子。根据i.MX RT MCU的启动流程,我们可以通过另一种简单的方法实现PSRAM初始化。下面以APS6404L为例演示如何在I.MX RT上使用PSRAM。 分析KEIL工程启动汇编代码startup_MIMXRT1011.s,在进入_main之前,有个SystemInit函数。我们只需将初始化PSRAM的代码,放进SystemInit函数末尾,进行PSRAM初始化。PSRAM完成初始化后,系统就可以自动分散加载代码和数据到PSRAM内存空间。
在SystemInit末尾添加psram_init_main()函数。由于这个函数是在系统分散加载之前,因此需要手工加载拷贝PSRAM初始化代码和数据到指定TCM内存空间运行。
测试工程源代码可以从下面链接下载:
提取码:tvj7
|