一、前言
相信使用过STM32CubeMX的童鞋一定体验过,生成的Keil工程首次编译的龟速
简直不能忍,又无可奈何-_-!!
不过自从ARM Compiler V6随Keil发布后很有改观。
但是STM32CubeMX默认生成的Keil工程却享受不到,尤其是附带FreeRTOS的。
二、Keil设置
按两图设置好Keil
图中Misc Control项为-D__weak="__attribute__((weak))" -D__packed="__attribute__((__packed__))" -D__NOINLINE="__attribute__ ( (noinline) )"
,
没有替换似乎也可以正常编译
三、文件替换
下载https://yun.mxtech.ltd/s/PLTTNimcnGeLxgj,
或是在C:\Users\XXX\AppData\Local\Arm\Packs\ARM\CMSIS-FreeRTOS\10.2.0\Source\portable\GCC
找到MCU内核的文件夹,用里面的port.c和portmacro.h,
替换掉STM32CubeMX生成的工程目录下,\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS
路径中对应内核的port.c与portmacro.h
四、飞一般的速度
清理工程,F7重新编译一下,全部编译完成只要3秒!!
相比以前动不动就是半分钟一分钟以上的时间,简直节约太多时间了!!
五、参考
- https://www.jianshu.com/p/18a58fee94ce
- https://blog.csdn.net/zzzw0/article/details/88286841
- http://www.firebbs.cn/thread-22706-1-1.html
- http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=615188&highlight=compiler