解决Keil u5 ARM Compiler6.10.1 编译STM32CUBE生成的FreeRTOS工程失败的问题

昨天更新了keil5.25a,无奈反射弧超级长才发现keil自带了ARM"最新"的编译器v6.9,百度一下说是编译速度提高了不少,所以我也来试一下,无奈 刚编译就出错,说是License有问题,还有TOOLs.ini也找不到,再问度娘发现竟然是Win10 1803的锅,使用1709版本的童鞋并没有遇到这个问题,赶紧google一波,换用最新版ARM Compilerv6.10.1c,这次倒是开始编译了,结果编译FreeRTOS部分时报出大量错误,再次Google,发现V6的ARMCLANG编译器的语法分析基本和GCC相似,也就是说,不能再使用它编译专门为v5编译器写的程序(含内联汇编的那种,比如FreeRTOS的port.c),并且v5和v6对c的编译上也有区别,我通过一下两步从默认的v5编译器成功切换到了v6.

  • (1) 添加编译器 -D参数,并修改c/cpp编译方式
-D__weak="__attribute__((weak))" -D__packed="__attribute__((__packed__))" -D__NOINLINE="__attribute__ ( (noinline) )"
解决Keil u5 ARM Compiler6.10.1 编译STM32CUBE生成的FreeRTOS工程失败的问题_第1张图片
Snipaste_2018-06-25_19-27-28.png
  • (2) 修改CMSIS-RTOS的c文件中与ARM编译器相关的部分
解决Keil u5 ARM Compiler6.10.1 编译STM32CUBE生成的FreeRTOS工程失败的问题_第2张图片
Snipaste_2018-06-25_19-32-42.png
  • (3) 飙车了,单击全部编译,看下速度


    解决Keil u5 ARM Compiler6.10.1 编译STM32CUBE生成的FreeRTOS工程失败的问题_第3张图片
    Snipaste_2018-06-25_19-35-29.png

你可能感兴趣的:(解决Keil u5 ARM Compiler6.10.1 编译STM32CUBE生成的FreeRTOS工程失败的问题)