i.MX RT105X如何使用外部SDRAM

原创 2022-06-18 16:14:00 Rt1052 外部SDRAM

很多时候,芯片内部RAM空间不够的时候,需要用到SDRAM。正常情况下,CPU一上电,内部RAM就已经初始化好了,而对于外部的SDRAM,则需要先初始化RT105X的SDRAM控制器(SEMC),才能向SDRAM可寻址空间copy数据。

1、一般情况下,SDRAM初始化代码存储在dcd_sdram[]数组中,boot ROM code在进入_main之前已经调用了dcd码,即已经初始化了sdram。问题就出在这个dcd码上,不同型号的sdram芯片,初始化过程也是不同的,dcd码当然也就不同,所以,为了适配自己的板子,需要更改官方板子对应sdram初始化dcd码,即将自己板子上的sdram型号对应的dcd码替换原来的dcd码。前面已经说了,所谓的dcd码不过是由sdram初始化代码转化成的一堆16进制数据组成的数组。所以,我们要想完成dcd码覆盖工作,就需要先将sdram初始化代码转化为dcd码数组,使用工具dcdgen.exe即可完成转化。

2、如果没有dcdgen.exe工具,还有另一种简单的方法达到初始化SDRAM的目的。

打开系统工程中startup_MIMXRT1052.s文件,找到如下代码:

Reset_Handler   PROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  SystemInit
                IMPORT  __main
                CPSID   I               ; Mask interrupts
                LDR     R0, =0xE000ED08
                LDR     R1, =__Vectors
                STR     R1, [R0]
                LDR     R2, [R1]
                MSR     MSP, R2
                LDR     R0, =SystemInit
                BLX     R0
                CPSIE   i               ; Unmask interrupts
                LDR     R0, =__main
                BX      R0
                ENDP

由此可以看到,在进入_main之前,有个SystemInit函数,我们只需将初始化SDRAM的代码,放进SystemInit函数末尾,让boot ROM code进入_main之前,进行sdram初始化。这个SystemInit函数存在于startup_MIMXRT1052.c文件中。

如下在SystemInit末尾添加SDRAM_Init()函数:


  SystemInitHook();
 /////////////////////////add by zzzppp//////////////////////////// 
  #ifdef SDRAM_INIT
   SDRAM_Init();
   #endif
  /////////////////////////////////////////////////////////////////
}

这样,即使boot ROM code提前执行了错误的SDRAM初始化dcd码也没关系,因为在系统初始化结束时(SystemInit函数末尾),又一次执行了正确的SDRAM。



相关产品 >

  • FET1052-C核心板

    iMXRT核心板采用NXP iMXRT1050系列的i.MX RT1052跨界处理器设计,兼容MCU与MPU各自领域特点。iMXRT1052主频高达600MHz是单片机界的性能怪兽。iMXRT1052作为一款跨界核心板,采用 Cortex-M7架构微控制器,主频却高达600MHz,高密度的512KB TCM SRAM和16MB的高速SDRAM,超快的实时响应,超低的功耗,超强处理性能赋予了RT1052视频编解码能力。


    了解详情
    FET1052-C核心板
  • OK1052-C开发板

    飞凌提供的i.MXRT105x系列单片机,iMXRT1052单片机基于NXP Cortex-M7 i.MX RT1052跨界处理器设计,底板+核心板分离结构,开发更简单,imxrt1052核心板仅售68元,欢迎致电400-699-6866咨询。推荐iMXRT单片机,性价比高。 了解详情
    OK1052-C开发板

推荐阅读 换一批 换一批