【回眸】Hightec编译英飞凌TC397报错解决手册(上)

前言

英飞凌TC397的bringup任务已经完成,接下来要做emc移植方向的工作,首先介绍一下emc测试相关的内容:
emc全称是电磁兼容性,是指设备或系统在其电磁环境中符合要求运行并不对其环境中的任何设备产生无法忍受的电磁干扰的能力。
有相关的测试,还有专门搞这个测试的岗位
不过我不是搞这个的,只要把指定代码移植上去就好了。写这篇文章也是记录移植过程中遇到的错误及解决方案。

警告信息

1、 passing argument 1 of ‘xxxxx’(某函数名) discards ‘volatile’ qualifier from pointer target type

警告信息:传递’xxxxxxxx '的参数1,丢弃指针目标类型中的’volatile’限定符
这类警告出现的原因是:xxx函数的x参数作为指针类型参数,指针类型不相容。
解决办法: 在调用函数的参数前加上强制类型转换即可。
具体解决方法:定位到报错的地方,然后在调用出警告的函数处传参在第一个参数前加(void*)

原来:
xxxxxxxxxxx函数名xxxxxxxxxxxx(&real_time)
修改后:
xxxxxxxxxxx函数名xxxxxxxxxxxx((void *)(&real_time));

发现第一个警告信息消失。成功。

2.implicit declaration of function xxxxxxxxxxxxx(函数名)

这类报错信息比较常见,理论上是缺少头文件,加上相应的头文件就可以了
这里我之前改过这个警告,后面没改成功我还觉得有点疑惑,今天终于发现了,头文件里声明的函数要和警告里的函数一致。
发现第二个警告信息消失。成功。

3.(报错信息)fatal error: xxxxxxxxxxxxxxxx.h: No such file or directory

这个报错就很明显了,意思就是没找到这个.h的头文件,可以把这个头文件放到对应的目录下

4.warning: ‘xxxxxxxxxxxxxxxxxxx’ defined but not used

出现这个警告是什么原因?其中一个可能的原因是里面有变量,在函数里面可能只声明了而未使用

5.(报错信息) unknown type name ‘t_emcparams’

这是一个头文件里的报错,字面上来看就是t_emcparams这个类型没有,所以会出现报错,想想会不会其他地方定义的东西。

结语

暂时遇到的问题正在慢慢解决,如果该文章对你有帮助,可以给博主一个免费的三连吗?
加油,汽电人!

你可能感兴趣的:(物联网学习笔记,加油汽电人,英飞凌TC397,linux,嵌入式,物联网,c语言)