iar中 让代码在sram中运行

环境:iar 8.40.1  MCU:mk64

1.关键字__ramfunc

        iar中可以利用关键字__ramfunc将函数放在ram中,带__ramfunc的函数调用不带__ramfunc的函数会出现警告,同时cpu 执行速度会变慢。__ramfunc不能指定地址。

 

  

        

        ox1fff0015是sram中

2.通过修改icf文件

       1.添加自动copy

initialize by copy { readwrite, section RAMCODE};

       2.将section RAMCODE放到ram中

place in DATA_region                        {section RAMCODE};

       3.添加测试代码

       

//方式1
 void testfun(void) @"RAMCODE"
{
  uint8_t a=3, b=4, c;
  c=a+b; 
  PRINTF("\r\n c is value is %d\r\n", c);
}
//方式2
#pragma location = "RAMCODE" 
void testfun(void) //@"RAMCODE"
{
  uint8_t a=3, b=4, c;
  c=a+b; 
  PRINTF("\r\n c is value is %d\r\n", c);
}
//方式3 该方法可以同时将多个函数放到 RAMCODE中
#pragma default_function_attributes = @"RAMCODE" 
void testfun1(void) //@"RAMCODE"
{
  uint8_t a=3, b=4, c;
  c=a+b; 
  PRINTF("\r\n c is value is %d\r\n", c);
}

void testfun2(void) //@"RAMCODE"
{
  uint8_t a=3, b=4, c;
  c=a+b; 
  PRINTF("\r\n c is value is %d\r\n", c);
}
    .
    .
    .
#pragma default_function_attributes =

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值