解决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
如对你有帮助,欢迎留言