查看: 4565|回复: 0

[原创] 【经验分享】i.MX RT1060 FlexRAM动态分配及注意事项

[复制链接]

该用户从未签到

4

主题

10

帖子

0

注册会员

Rank: 2

积分
105
最后登录
2022-5-12
发表于 2020-9-1 12:13:13 | 显示全部楼层 |阅读模式
i.MX RT1060 FlexRAM动态分配及注意事项



1 FlexRAM动态配置


    i.MX RT1060 有共有512KB的FlexRAM,可以配置为三种形态(ITCM/DTCM/OCRAM),默认ITCM/DTCM/OCRAM都是FlexRAM总容量,这并不代表ITCM/DTCM/OCRAM实际容量,只代表ITCM/DTCM/OCRAM可能的最大容量。另外还有512KB独立的OCRAM。ITCM的基地址0x0000 0000,DTCM的基地址0x2000 0000,OCRAM的基地址0x2020 0000。
1.png

i.MXRT1060支持利用IOMUXC_GPR寄存器来动态配置FlexRAM,这也是为了解决利用eFuse静态配置FlexRAM的两个主要缺点:


Fuse烧写仅可一次,因此无法多次调整FlexRAM配置
Fuse中仅4/6bit配置位,没有穷尽所有FlexRAM Bank组合
利用IOMUXC_GPR寄存器可以多次重复配置FlexRAM各形态容量,并且配置是立即生效的,而且IOMUXC_GPR寄存器仅在POR时才被复位,普通System Reset无法复位其值。利用IOMUXC_GPR寄存器配置FlexRAM需要按照如下步骤来操作:


1.1 分配Bank


  首先是指定FlexRAM各Bank的分配情况,利用IOMUXC_GPR17寄存器的FLEXRAM_BANK_CFG位,你可以自由指定每个Bank最终形态(ITCM/DTCM/OCRAM)。
2.png

1.2 激活Bank分配


      分配好各Bank形态后,将IOMUXC_GPR16寄存器的FLEXRAM_BANK_CFG_SET置位,FLEXRAM_BANK_CFG指定的配置即立刻生效,此时你去访问ITCM/DTCM/OCRAM,已经是新配置下的映射空间了。
3.png

1.3 示例代码


1. 修改link文件,编译APP
4.png

2. 在.s文件中Reset_Handler中设置GPR寄存器
5.png

3. 如果同时需要下载调试,别忘记设置debug初始化文件      
6.png

2 FlexRAM注意事项


1. 默认ITCM/DTCM/OCRAM都是FlexRAM总容量,这并不代表ITCM/DTCM/OCRAM实际容量,只代表ITCM/DTCM/OCRAM可能的最大容量
2.修改flexram之后,download报如下错误
7.png

3.修改flexram之后,debug报如下错误
8.png

       以上两种情况都需要重新上电!


4.TCM容量一定要保持最大


      至此,i.MX RT1060 FlexRAM动态分配及注意事项讲解何其乐便介绍完毕了,掌声在哪里~~~

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-10 04:36 , Processed in 0.088649 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表