解决STM32CUBE+FREERTOS+LWIP+Compiler V6编译错误的方法 2019年5月22日 0 前言: 使用STM32CUBE+KEIL默认Compiler V5编译Freertos+Lwip异常慢,CPU占用过高,电脑卡顿,新出的Compiler V6能大幅度提升编译速度,故研究更换编译器。 1 所用版本和例子MCU
2、CUBE使能FREERTOS CMSIS_V1 和LWIP后,生成KEIL代码打开 此时使用默认的CompilerV5编译,时间为4分43秒,电脑为I5 7代
3、修改为CompilerV6编译器编译 3.1替换文件port.c portmacro.h CUBE生成的port.c portmacro.h不支持GNU,内部有大量的内联汇编,需更换为GCC版本 将freertos源码中的GCC/ARM_CM4F内的port.c portmacro.h替换到项目目录
3.2修改keil选项
-D__weak="__attribute__((weak))" -D__packed="__attribute__((__packed__))" -D__NOINLINE="__attribute__ ( (noinline) )"
此时编译,如只有FREERTOS没有LWIP则能编译通过了
3.3修改LWIP相关代码 注释掉 增加宏定义 修改LWIP代码主要就是增加 #define __CC_ARM 有网友知道其他方法如在KEIL里直接配置???请留言??? 4、编译 freertos+lwip总用时31s,如果单独freertos更快,约15S
联系QQ 117013107 如对你有帮助,欢迎留言