keil运行c语言输入函数,keil 编译器V6 定义函数在ram中运行-和在指定地址定义常量,keil编译器...

keil 编译器V6 定义函数在ram中运行-和在指定地址定义常量,keil编译器

之前一直是用v5编译,编译速度慢,换成V6编译速度差不多快50% ,而且arm后期只维护v5编译器不在更新v5编译器。切换到V6编译器大势所趋,把之前v5且换到v6需要如下更改:

1. CMSIS包需要更新到5.0以上

2. v5在指定地址定义常量: const uint32_t AppStartCfg[2] __attribute__((at(0x0))) = {0xffffffff,0xaaaaaaaa};

v6在指定地址定义常量: const uint32_t AppStartCfg[2] __attribute__((section(".ARM.__at_0x0")))= {0xffffffff,0xaaaaaaaa};

3, 在定义函数在RAM中运行:(做BootLoader时,freescal单片机要求flash操作相关函数必须在ram中运行)

v5编译器:

#pragma arm section code = "RAMCODE"

static uint8_t ExecRamCmd (uint8_t *cmd, uint8_t len)

{

}

#pragma arm section

然后添加链接文件:

RW_m_data m_data_start m_data_size { ; RW data

*.o(RAMCODE)

.ANY (+RW +ZI)

}

v6编译器:

#pragma clang section text = "RAMCODE"

static uint8_t ExecRamCmd (uint8_t *cmd, uint8_t len)

{

}

#pragma clang section

同样V5修改链接文件

http://www.dengb.com/Cyy/1374930.htmlwww.dengb.comtruehttp://www.dengb.com/Cyy/1374930.htmlTechArticlekeil 编译器V6 定义函数在ram中运行-和在指定地址定义常量,keil编译器 之前一直是用v5编译,编译速度慢,换成V6编译速度差不多快50% ,而且...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值