解决STM32CubeMX生成的工程编译慢的问题 (Compiler V6的使用)

STM32CubeMX是一个很好的工具,不过每次修改一点点东西后,再生成的工程都要全部重新编译,用的外设多了,文件数量也多了很多,编译速度奇慢无比,实在是烦=  =。

刚开始也没找到啥好办法,网上大多数人都只是说在CubeMX里的不要设置成复制所有库文件,但是就算是这样做了,文件多一点,编译时间就要两分钟以上了。

然后看到有人说是编译器的问题,新的编译器Compiler V6速度会快很多,那就开始吧。

KEIL版本升级

旧版本的KEIL是没有的,具体可以看一下Option for Target -> Target -> ARM Compiler

于是我去下载安装了最新版本MDK-ARM Version 5.26

为了解决每次打开工程都会有的新版本DFP未安装提示(一直使用的是初学STM32的时候安装的旧版本),顺便下载安装了Keil.STM32F4xx_DFP.2.13.0.pack

STM32CubeMX版本升级

此处使用的是STM32CubeMX 5.1.0 ,STM32Cube_FW_F4_V1.24.0

旧版本的固件包好像会有问题,要用新版本的固件包又要用新版本的STM32CubeMX,对比了一下发现USB部分库文件改动比较大。

所以我只能重新配置STM32CubeMX,重新生成工程。

对比

看网上别人的操作,还要在C/C++那一页选择Language C,最好选择gun,据说是因为编译器支持的比较好。但是我选择其他的也没什么影响。

 

以下是选择旧版本Compiler V5时用的时间,2分钟多。。。真不知道之前我是怎么忍受得了的。

我的电脑CPU是i5-4200M,以前初学的时候,用的是标准库,再怎么样也不会让我等这么长时间。

 

选择新版本CompilerV6,CPU占用率飙到100%,刷刷的就编译完了。

后续

新出现的2个警告:

../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c(940): warning: '__packed__' attribute ignored when parsing type [-Wignored-attributes]
      USBx_DFIFO((uint32_t)ch_ep_num) = *((__packed uint32_t *)pSrc);
                                           ^~~~~~~~
../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h(115): note: expanded from macro '__packed'
    #define __packed __attribute__((__packed__))
                                    ^~~~~~~~~~

还没搞懂是什么意思。

 

发现printf的不能用了,pritnf会直接卡死。

实验了一下其他方法,要这样才行:

在main.c或usart.c里重定义一下

/* USER CODE BEGIN 1 */
//重映射fputc函数,此函数为多个输出函数的基础函数  
int fputc(int ch, FILE *f)  
{  
  HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,HAL_MAX_DELAY);
  return ch;
}  
/* USER CODE END 1 */

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值