zoukankan      html  css  js  c++  java
  • mdk Arm Compiler V6注意事宜

    Arm Compiler V6发布已经好久,考虑到各种麻烦,懒得转换。

    近期研究iar对代码的优化,忽然发现V6版本的优化也很不错,遂对之前的代码做了一些升级,当然过程比较坎坷,一些要点记录一下:

    1. 分散加载文件

    ; V6: armclang
    #! armclang --target=arm-arm-none-eabi -mcpu=cortex-m3 -E -x c
    
    ; V5: armcc
    #! armcc -E

    分散加载文件中定义宏的时候,V5比较简单,V6需要修改一下。

    2. C语言宏的连接问题

    V5的宏连接,##对连接内容没有限制,但是V6只能连接一个符号。

    比如:GPIOA##->ORD,这里面的符号“->”会出错。

    3. CPU底层接口ISB

    在cpu底层代码中,之前使用的__isb, 现在变成了__builtin_arm_isb,__isb会报错。

    #define __ISB()        __builtin_arm_isb(0xF);

    4. 数据段的定义l

    1 // V5:
    2 #pragma arm section rwdata="EXT_RAM" zidata="EXT_RAM"
    3 #pragma arm section rwdata="" zidata=""
    4 
    5 // V6
    6 #pragma clang section data="EXT_RAM" bss  ="EXT_RAM"
    7 #pragma clang section data="" bss  =""
    8 
    9 In Arm Compiler 5, the section types you can use this pragma with are rodata, rwdata, zidata, and code. In Arm Compiler 6, the equivalent section types are rodata, data, bss, and text respectively.

    5. TODO...

    博客园:http://www.cnblogs.com/linux-farmer/
  • 相关阅读:
    python实现清屏
    列表/字典/集合解析式和生成器
    SQL——pivot的用法
    前端的3大类描述
    2019-耦合性斗争笔记
    前端基础语法
    解决winform在win10下字体模糊的问题
    Xamarin.Android打包设置
    N0---我的编程教学提纲
    N0---关于变量
  • 原文地址:https://www.cnblogs.com/linux-farmer/p/13339684.html
Copyright © 2011-2022 走看看