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 432K = 128K DTCRAM 832K = 256K ICRAM 432K=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  阅读(213)  评论(0)    收藏  举报