c/c++语言开发共享keil 编译器V6 定义函数在ram中运行-和在指定地址定义常量

之前一直是用v5编译,编译速度慢,换成V6编译速度差不多快50% ,而且arm后期只维护v5编译器不在更新v5编译器。切换到V6编译器大势所趋,把之前v5且换到v6需要如下更改: 1. CMSIS包需要更新到5.0以上 2. v5在指定地址定义常量: const uint32_t AppStartC …

之前一直是用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修改链接文件

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/601378.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐