基于IAR配置GD32使用TCMSRAM指定变量地址空间

基于IAR配置GD32使用TCMSRAM指定变量地址空间

概要

最近项目需要基于IAR开发GD32F450ZKT6,此MCU为Cortex-M4带浮点型内核,最高主频200MHz,片上Flash 3MB,片上SRAM 256KB,
片上SRAM分为SRAM0(112KB)、SRAM1(16KB)、SRAM2(64KB)、TCMSRAM(64KB)4块组成,SRAM0、SRAM1、SRAM2定义在
0x2000_0000~0x2002_FFFF 192KB连续空间,TCMSRAM紧密耦合SRAM定义在0x1000_0000~0x1000_FFFF空间,其工程集成了
FREERTOS、LWIP协议栈、DSP LIB、以及TIM PWM输出、TIM输入捕获测量信号频率、外部引脚中断、USART、SPI通讯以及
FFT数据处理等,0x2000_0000~0x2002_FFFF 192KB的片上SRAM已见底,急需使用TCMSRAM的64KB空间。

配置流程

整个配置是现在.icf文件中定义TCMSRAM的起始地址、结束地址、Size大小,
define symbol region_RAM1_start = 0x10000000;
define symbol region_RAM1_end = 0x1000FFFF;
define region RAM1_region = mem:[from region_RAM1_start to region_RAM1_end];
place in RAM1_region { section .sram };
然后在工程中使用下列命令可定义一组数组:
#pragma default_variable_attributes = @ “.sram” //启用指定
float fft_inputV[FFT_LENGTH2]; //fft输入数组
float fft_outputV[FFT_LENGTH]; //fft输出数组
float fft_inputI[FFT_LENGTH
2];
float fft_outputI[FFT_LENGTH];
#pragma default_variable_attributes = //退出指定

打开工程Options —>linker,编辑.icf文件

在这里插入图片描述
在这里插入图片描述

代码中定义一组数组

在这里插入图片描述

编译生成的MAP文件

下图显示相关变量定义到了TCMSRAM所在空间在这里插入图片描述在这里插入图片描述

如图所示代表TCMSRAM使用成功

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值