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開發板

推薦閱讀 換一批 換一批