本帖最后由 zyz0926 于 2025-3-1 14:13 编辑
#申请原创# R501内存资源相应介绍以及配置方法
G32R501访问FLASH和RAM有三套接口,分别是ITCM、DTCM和BusMatrix。ITCM用于访问程序空间,可以访问FLASH和RAM;DTCM只能访问数据空间,因此只能访问RAM。BusMatrix既可以访问程序空间也可以访问数据空间,因此也支持对FLASH和RAM的访问,访问的地址见下图。
G32R501有640KB的Flash空间,其中BANK0为128KB,BANK1为512KB。
G32R501有128KB的RAM空间,分为CPU0_ITCM、CPU1_ITCM、CPU0_DTCM、CPU1_DTCM、SRAM1、SRAM2、SRAM3共7个区间。各区间的初始大小如下图所示,通过ITCM和DTCM可以获得最快速的程序和数据空间的访问速度。
如下图所示
根据实际的测试结果,ITCM的访问接口实际的运行性能比BusMatrix会存在30%左右的优化。具体的配置方式为:
用户通过该界面选取第二条路径即可,如果没有发现第二条路径,需要进行PACK包升级,有可能是安装包过旧导致的。
同时,在SCT文件内,定义ROM起始地址为 0x00100000。
#define __ROM_BASE 0x00100000 //ITCM路径下的FLASH起始地址
#define __ROM_SIZE 0x00040000
;#define __ROM_BASE 0x08000000 //BusMatrix路径下的FLASH起始地址
;#define __ROM_SIZE 0x00080000
G32R501可通过可编程静态存储子系统CFGSYS进行RAM资源空间重分配。静态分配的地址为:TAOSMS_STATIC_CFG (*(uint32_t *)0x50020064)
开发者可通过仿真模式下,在memory界面下读取地址数据来确认当前芯片所处的静态存储状态。
G32R501在各个静态配置下,相应RAM的七区间分配图如下,用户可以根据自身程序的架构特点来自定义RAM空间。
当用户出现程序仿真时,进入系统默认中断循环的异常状态时,需要优先排查内存空间分配,优先通过上述方法确认内存分配是否异常。
|
感谢分享~~欢迎了解参与原创奖励活动:https://bbs.21ic.com/icview-3431776-1-1.html