imxrt1052 flexram配置

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

posted @ 2023-07-10 14:56  ccc_zdh  阅读(172)  评论(0)    收藏  举报