历史上的今天
返回首页

历史上的今天

今天是:2025年03月05日(星期三)

正在发生

2020年03月05日 | STM32开发笔记94: 忽略PlatformIO中的特定警告

2020-03-05 来源:eefocus

单片机型号:STM32F091RCT6


尝试在PlatformIO中使用STM32Cube进行项目的开发工作,第1次编译,即出现如下图的警告。

该警告在GCC中有详尽的解释:


Allows the compiler to assume the strictest aliasing rules applicable to the language being compiled.  For C (and C++), this activates optimizations based on the type of expressions.  In particular, an object of one type is assumed never to reside at the same address as an object of a different type, unless the types are almost the same.  For example, an "unsigned int" can alias an "int", but not a "void*" or a "double".  A character type may alias any other type.


简而言之, 在该参数激活的情况下,编译器希望不同类型的对象不会指向同一个地址。比如像这段代码:


int retLen;

someSetFunc((unsigned long*)&retLen);

printf("ret len = %dn",retLen);

实际上,我们在实际开发过程中,是不会出现问题的,如果是自己写的代码,可以严格要求自己,进行修正,修正代码如下:


union u_retLen

{

int retLen;

unsigned long ptr;

};

someSetFunc(&u_retLen.ptr);

printf("ret len = %dn",u_retLen.retLen);

但如果不是自己的代码,进行修正终归不好,但可以采取下列方法予以屏蔽。


1、打开出现警告的文件,本例中是


C:.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverSrcstm32f0xx_hal_crc.c


2、在程序最前方,加入下列语句即可。-Wstrict-aliasing即为希望忽略的警告。


#ifdef __GNUC__

#pragma GCC diagnostic push

#pragma GCC diagnostic ignored "-Wstrict-aliasing"

#endif

3、再次编译,没有任何警告出现。


推荐阅读

史海拾趣

GETEDZ ( HVGT)公司的发展小趣事
在设计电路时要充分考虑电路的安全性,采取必要的保护措施,如设置过载保护、短路保护等。
Data Device Corporation公司的发展小趣事

在电子行业中,竞争日益激烈,DDC也面临着诸多挑战。然而,DDC始终保持着清醒的头脑和坚定的信念,积极应对挑战并寻找机遇。通过不断优化产品结构、提高生产效率、降低成本等措施,DDC不断提高自身的竞争力。同时,DDC还积极关注行业发展趋势和市场变化,及时调整战略方向,确保公司能够在激烈的竞争中立于不败之地。

请注意,这些故事是基于DDC公司的发展历程和事实进行的概述,具体的细节和情节可能需要根据实际情况进行补充和调整。

富瀚(Fullhan)公司的发展小趣事
在保证高性能和高可靠性的同时,新中兴GDH电动机保护器还具有较高的性价比优势,为用户节省成本。
Alpha (Taiwan)公司的发展小趣事

Alpha (Taiwan)公司自创立之初,便致力于电子技术的研发与创新。面对日益激烈的市场竞争,公司不断投入资金,引进先进设备,吸引了一批优秀的研发人才。这些人才凭借深厚的专业知识和敏锐的市场洞察力,成功开发出一系列具有竞争力的电子产品,如高性能的芯片、精密的传感器等。这些产品的推出,不仅提升了公司的市场地位,也为公司的快速发展奠定了坚实基础。

西博臣(CYBERSEN)公司的发展小趣事

广州西博臣科技有限公司(简称西博臣)成立于2001年,从创立之初就专注于湿度传感器的研发和生产。公司是国内最早从事高分子湿度传感器研发并进行规模化生产的厂家之一,凭借其独特的技术实力和对行业的深刻理解,逐渐在市场中崭露头角。

EOS POWER INDIA Pvt公司的发展小趣事

在追求经济效益的同时,EOS也注重可持续发展和环保责任。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。EOS还投入资金建设了环保设施,确保生产过程中的废弃物得到有效处理。此外,公司还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了EOS的社会责任感,也为公司的长期发展奠定了坚实的基础。

问答坊 | AI 解惑

一些经典CC++程序源码

这是一些经典的C或C++得程序源码,希望对大家的学习有帮助…

查看全部问答>

2005年全国电子大赛作品文集含源码

本帖最后由 paulhyde 于 2014-9-15 09:08 编辑 2005年全国电子大赛作品文集含源码,(凌阳单片机)希望对大家有帮助  …

查看全部问答>

跪求单片机控制无线模块的程序

本帖最后由 paulhyde 于 2014-9-15 09:43 编辑 rt  …

查看全部问答>

TI2000系列DSP开发应用【视频】

传一个小视频 TI2000系列DSP开发应用【视频】…

查看全部问答>

声纳传感器有人用过吗

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

查看全部问答>

3D电视国标制定完成或试水亚运会

本帖最后由 jameswangsynnex 于 2015-3-3 19:56 编辑 中国拥有完整知识产权的3D电视系统已经制定完成。昨日(7月21日),《每日经济新闻》从数字音视频解码技术标准工作组 (以下简称“AVS工作组”)获悉,最新版本的标准已经于六月底完成定稿,今日将 ...…

查看全部问答>

开关电源启动时间慢

14串14并驱动原理图如下: 反激式,输出51v恒流420ma; 上电有3-4秒延迟; 如果将启动电阻R9,R10,R21,R22改成总电阻110K的电阻时,并且电容C6 改成47U,启动时间会变快;才不到1秒 电阻起到缓冲电流的作用,减小充电电流;同时降低IC启动功耗 ...…

查看全部问答>

IIC地址问题

我们公司的一个项目,W78E52往W78E58传送数据, W78E52用的是P3^2、P3^3发送,W78E58用P2^0、P2^1来接收; 想问下是通过什么传送的呢,IIC吗?那怎么知道这2个芯片的地址呢? 还是其它传送? 请高手指教,帮帮忙,谢谢! …

查看全部问答>

求助!帮我看看无线通信模块代码哪里错了

要实现的功能: 主机按一个键P3^4,发送一次数据从机对比数据是不是需要的数据,是的话从机蜂鸣器响 出现的问题是: 1、按下键,主机一直在发数据,从机始终没有接收到,从机不做任何反应 2、另外可能是程序不稳定,还会出现一个问题:没有把24L ...…

查看全部问答>