imxrt1052 flexram配置

发布时间 2023-07-10 15:04:37作者: ccc_zdh
imxrt1052的ram默认配置是256k ocram,128k DTCRAM ,128K ITCRAM 现在修改为128K OCRAM 256K DTCRAM 128K ITCRAM 1.首先修改启动文件, Reset_Handler: cpsid i /* Mask interrupts */ /*memory config 只有16种配置,不能随意配置 ;IOMUX_GPR17 = 0B 0101 1010 1010 1111 1111 1010 1010 0101 0x5aaffaa5 ; O O D D D D I I I I D D D D O O ; O: OCRAM D: DTCRAM I: ITCRAM ; OCRAM 4*32K = 128K DTCRAM 8*32K = 256K ICRAM 4*32K=128K */ LDR R0, =0x400AC044/*IOMUX_GPR17*/ LDR R1, =0x5AAFFAA5/*CONFIG FLEXRAM*/ STR R1, [R0] /* ;IOMUX_GPR14 |= (8<<16)|(9<<20); ;设置ram大小 ITCRAM 128K DTCRAM 256K */ LDR R0, =0x400AC038/*IOMUX_GPR14*/ /*IOMUX_GPR14 = IOMUX_GPR14 & 0X00FFFF*/ LDR R2,[R0] LDR R3, =0X00FFFF AND R1,R2,R3 STR R1,[R0] /* 10:512K 9: 256K 8:128K 7:64K 6:32K 5:16K 4:8K 3:4K 0:0K */ LDR R1, =0X08 MOV R2,R1,LSL#16 /* 0X08 << 16 ITCRAM*/ /* 10:512K 9: 256K 8:128K 7:64K 6:32K 5:16K 4:8K 3:4K 0:0K */ LDR R1, =0X09 MOV R3,R1,LSL#20 /* 0X09 << 20 DTCRAM*/ ORR R1,R2,R3 LDR R2,[R0] ORR R1,R1,R2 STR R1, [R0] /*IOMUX_GPR16 |= 0X07*/ LDR R0, =0x400AC040 LDR R1,[R0] ORR R1,R1,#0X07 /*ENABLE FLEXRAM */ STR R1, [R0] /*end memory config*/ .equ VTOR, 0xE000ED08 ldr r0, =VTOR 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 2.修改链接文件 #define m_itcram_start 0x00000000 #define m_itcram_size 0x00020000 #define m_dtcram_start 0x20000000 #define m_dtcram_size 0x00040000 #define m_ocram_start 0x20200000 #define m_ocram_size 0x00020000