继上篇文章发布已有时隔两个月之久,今天就把这两个月遇到的一些问题解决分享一下,首先,我们来看今天分享的这个关于我在学习freertos遇到的一个告警。如图所示:
告警提示原句为:
warning: #223-D: function "xPortSysTickHandler" declared implicitly
这个告警是提示我,我调用的这个“xPortSysTickHandler”函数没有进行函数声明,一般出现这种情况就是没有调用该函数声明的头文件,或者是没有对其进行外部声明。而我这次就是没有因为在使用前没有对齐外部使用声明,所以编译器进行编译时候提示我这个函数是隐式声明。
因为这个函数是freertos的port.c下定义的一个函数,没有对齐进行声明,所以我们在这里使用前需要使用关键字"extern"对齐进行外部声明。如下图所示,当时忘记加了下面这句:
extern void xPortSysTickHandler(void);
在我们调用的函数前面加上这个函数声明后,我们再次编译可以发现编译通过了,如图所示:
如果大家也遇到了跟我问题一样的提示,可以参考我的上述解决方法;如果是提示其他的什么"xxx" declared implicitly,可以通过上述提到的三种方法去解决。
1、将使用的函数的头文件包含进去。
2、对其使用关键字"extern"声明
*3、还有一种就是如果只在一个文件中调用函数,就将这个函数定义移到最前面也可以解决。
好了,今天的问题解决就分享到这里了。后期我们继续分享在嵌入式学习路上遇到的一些其他问题解决~
本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~