解决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) )"
Snipaste_2018-06-25_19-27-28.png
  • (2) 修改CMSIS-RTOS的c文件中与ARM编译器相关的部分
Snipaste_2018-06-25_19-32-42.png
  • (3) 飙车了,单击全部编译,看下速度


    Snipaste_2018-06-25_19-35-29.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容