打印
[STM8]

IAR调用STM8L15x_itc.c文件编译时警告PE940

[复制链接]
409|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lizye|  楼主 | 2022-6-9 19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Warning[Pe940]: missing return statement at end of non-void function "ITC_GetCPUCC"请问各位大神这个警告应该怎么解决。这个库函数定义的是无符号返回,但实际函数中没有return语句,加上return还是提示警告。

使用特权

评论回复
沙发
wyjie| | 2022-6-9 19:18 | 只看该作者
不参加编译就可以了选择那个stm8s_itc.c 鼠标右击,Options 选择Exclude from build .我的芯片不用那个功能,所以不编译这个文件了。

使用特权

评论回复
板凳
juventus9554| | 2022-6-9 19:20 | 只看该作者
我也吓了一跳,正在找是为什么的时候,忽然想起这里有汇编,所以就仔细看了看注解。

使用特权

评论回复
地板
juventus9554| | 2022-6-9 19:22 | 只看该作者
#ifdef _COSMIC_

  _asm("push cc");

  _asm("pop a");

  return; /* Ignore compiler warning, the returned value is in A register */

#elif defined _RAISONANCE_ /* _RAISONANCE_ */

  return _getCC_();

#else /* _IAR_ */

  asm("push cc");

  asm("pop a"); /* Ignore compiler warning, the returned value is in A register */

#endif /* _COSMIC_*/

使用特权

评论回复
5
juventus9554| | 2022-6-9 19:24 | 只看该作者
/* Ignore compiler warning, the returned value is in A register */
忽略编译警告,这个返回值在寄存器A里。

使用特权

评论回复
6
juventus9554| | 2022-6-9 19:26 | 只看该作者
因此这个函数的返回值世界上由pop a准备过了,所以下面一句return实际上就是只对应一条汇编语句的返回指令了。

使用特权

评论回复
7
lizye|  楼主 | 2022-6-9 19:29 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

9757

帖子

2

粉丝