你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

巧用 STM32CubeIDE 之编译警告

[复制链接]
STMCU小助手 发布时间:2023-2-17 13:14
1. 前言 编译警告对于工程师们来说,是再常见不过的了。对于严谨的工程师们来说,任何warning 都是不可忽视的。4 N9 T% |# I* M8 t/ D

. Y- B+ l9 a0 z+ A: y
5 [$ S0 o0 N0 f
2. 巧妙使用
$ j6 l: X/ Y$ Dwarning在 STM32CubeIDE 中,我们可以通过主动 warning(甚至 error)的方式来通知工程师,使得一些容易遗漏的配置得到重视。 # b8 q. [% X) b, u. O% a
例如,在释放参考代码给客户时,希望客户注意到里面的项目名称和项目版本,那么我们可以在代码中,通过“#error ”来强调必须要修改的信息,通过“#warning”来备注需要注意的信息。具体代码如图 1:
3 J8 c! a( _" B9 h/ V
2 u" w+ C) h5 _7 d' _& i0 Y& o

" [; f' N. }4 W$ R2 J 2O7%{MN8YP~HM](%2OB)]4C.png
+ V/ b1 G' Z5 u8 r0 }
+ r$ U9 z  i! @: b

; I2 r* y; ?- K这样,当客户编译工程时,会出现 error 和 warning,见图 2,只有将“#error”和“#warning”两行分别注释掉,才可以分别消除这两项编译信息,以此达到警示客户的目的。 ! r5 f0 j6 `$ }. o0 Z# n. |+ f* r
4 r* r; A0 U/ B4 L9 @% y* O  G2 E  ?

; W. X1 n& t7 C8 @& W G@M%O%K1VPO3M2@J2RI6P%K.png
% ]# Z- S" O2 F6 ?8 W9 J7 e
7 O+ o9 y) O& Y, i" z- Q/ A 2.1. 主动屏蔽特定的 warning
8 @) f( V# ^/ R8 ^5 D% X. n在有些场景下,我们还可以在特定的代码或者文件作用域内,主动屏蔽特定的warning。
& ?- r# m' Y! t4 A+ c' \$ S5 `例如,工程中写了一个测试函数“void MyTestFunction(void)”,但是在工程中暂时没有被调用,直接编译会得到“Wunused-function”的 warning。
8 j: c, A/ n& I' {但是如果在代码中添加这样的语句:
+ e0 z" x- u) m4 t! g#pragma GCC diagnostic ignored "-Wunused-function"。 8 z* K6 J! V3 q+ l4 B3 H/ u( t. R6 \$ U
/*此区间内,如果出现函数仅申明,但是没有被调用时,编译不产生warning*/
% z" X1 ?5 a* i% hvoid MyTestFunction(void)$ C9 k; _. y  l
{…}
. J  ~* |) j: M7 \#pragma GCC diagnostic pop 5 v+ i. z- s1 m$ o$ s9 o6 j$ \
因为我们配置了“-Wunused-function”,那么在编译时,即使 MyTestFunction 没有被调用,编译也不产生 warning。 / t1 Q/ U0 z/ t4 I' g$ O% h# \* ^
我们还可以在 STM32CubeIDE 中,通过“Help”->“Information Center”->“ReadSTM32CubeIDE Documentation”->“C/C++ Compiler”,找到 GCC 编译器文档,从而发现更多的 warning 选项,根据需要主动屏蔽更多的 warning。见图 3 :
( R9 s8 w3 S( r3 X, I" m5 U) ]; y! w4 Z

8 O$ c+ a  c3 Y; D {AV[LG]3583$()VA$U}XDPK.png
8 ~( M; Q* D& Z8 D5 u/ v0 ]$ K4 v9 Z& t
/ F7 Q2 U1 I- Y" G( N
3. 小结 + V- C. d5 e6 V) W- y! y9 _
事实上,在编译项目时,warning 和 error 同样重要,部分隐蔽的问题可能就和warning 相关。当我们对工程代码和编译器有了更深层次的了解后,可以巧妙的使用和屏蔽 warning,帮我们更好地管理项目。
; o$ [+ r; B! Q" m: W( a
+ m7 j, P( n3 r! s$ A0 a 完整版请查看:附件 巧用STM32CubeIDE之编译警告.pdf (248.44 KB, 下载次数: 12)
赞 收藏 评论0 发布时间:2023-2-17 13:14

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版