历史上的今天
返回首页

历史上的今天

今天是:2025年07月30日(星期三)

正在发生

2019年07月30日 | 解决STM32CubeMX生成的工程编译慢的问题

2019-07-30 来源:eefocus

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 */

推荐阅读

史海拾趣

ARCOLECTRICSWITCHES公司的发展小趣事

随着电子行业的不断发展,ARCOLECTRIC SWITCHES公司意识到单打独斗已经无法满足市场需求。因此,公司积极寻求与上下游企业的合作,共同打造完善的产业链。通过与供应商建立长期稳定的合作关系,确保原材料的稳定供应;与下游企业开展深度合作,共同研发新产品、开拓新市场。这种合作共赢的模式使得ARCOLECTRIC SWITCHES公司在行业中更具竞争力。

驰兴电感(Coilank)公司的发展小趣事

驰兴电感始终坚持“品质第一”的原则,对产品的每一个细节都进行严格把控。公司引进了先进的生产设备和检测仪器,确保产品从原材料到成品的每一个环节都符合高标准的质量要求。这种对品质的执着追求,使得驰兴电感的产品在市场上赢得了良好的口碑,树立了高品质的品牌形象。

Aavid Thermalloy公司的发展小趣事

随着电子行业的快速发展,驰兴电感紧跟市场趋势,不断拓展产品应用领域。除了传统的消费电子和通讯领域外,驰兴电感还成功将产品应用于汽车电子、网络通讯、智能家居等新兴领域。这些领域的拓展不仅为公司带来了更广阔的市场空间,也进一步提升了驰兴电感在电子行业中的地位。

中电熊猫(CEC)公司的发展小趣事

技术创新是中电熊猫持续发展的关键。公司不断深化技术改革,加大研发投入,推动产业升级。例如,在液晶面板生产线上,中电熊猫采用了世界一流的技术和设备,不仅提高了屏幕分辨率和良品率,还降低了生产成本。此外,中电熊猫还积极参与国家重大科研项目和行业标准制定工作,为行业发展做出了积极贡献。

Dawning Precision Co Ltd公司的发展小趣事

Dawning Precision Co Ltd(以下简称“Dawning”)成立于本世纪初,当时正值电子行业的快速发展期。公司的创始人张先生是一位在电子行业摸爬滚打多年的资深人士,他看到了精密制造在电子行业中的巨大潜力。然而,初创时期,公司面临着资金短缺、技术瓶颈和市场认知度低等困难。张先生带领团队夜以继日地工作,不断研发新技术,优化产品性能,同时积极寻找投资者和合作伙伴。经过几年的不懈努力,Dawning逐渐在行业中树立了良好的口碑,开始获得客户的认可。

Colibrys SA公司的发展小趣事

2013年,Colibrys迎来了一个重要的转折点——成为SAFRAN集团公司的一部分。这一转变不仅为公司带来了更多的资源和市场支持,也使其在MEMS领域的技术研发和应用得到了进一步的提升。作为SAFRAN网络的一部分,Colibrys能够充分利用网络提供的服务,将其专业的MEMS制造技能传递给更多的客户。

问答坊 | AI 解惑

夏玄雪(我喜欢的一本书,推荐你看)

我喜欢的一本书,推荐你看 呵呵…

查看全部问答>

滤波器设计资料集锦

滤波器设计资料集锦 …

查看全部问答>

疯狂的ISE软件,崩溃了

搞了一段时间ISE,几乎就要崩溃了     最近做个东西,要用到xilinx的ISe开发软件,找了很久,也下载了几个 但都是没法安装,把我搞惨了,哪位朋友能给我发一个不?版本不要太高, ise6.2等级别的,万分感谢了 我的邮箱是317930100@qq ...…

查看全部问答>

啥地方要用到30层PCB?

来自EEWORLD合作群:arm linux fpga 嵌入0(49900581) 群主:wangkj…

查看全部问答>

LED点阵屏灰度控制

利用控制74HC595的EN是能点亮LED时间,以及红,绿,兰(R,G,B)三基色叠加原理控制 不知有没有感兴趣的朋友,大家一起做做~~~…

查看全部问答>

智能家居系统中国标准

基于EIB标准的智能家居系统,供大家参考…

查看全部问答>

STM32的引脚配置确实灵活!

                                 灵活到让人有点不知所措了!…

查看全部问答>

Verilog练习和讲解

Verilog练习和讲解   基础的练习,详细的讲解,以及设计思路。…

查看全部问答>

悬浮鼠标

在N年以前,对于“磁悬浮”这个词,大多数人都会感到很陌生,但随着科技的发展,磁悬浮技术逐渐应用在人们的生活中,而众所周知的则是上海的磁悬浮列车了。顾名思义磁悬浮技术是利用磁场力使物体沿着一个轴或几个轴保持一定位置的技术措施。这个高 ...…

查看全部问答>