KEIL编译stdarg处理机制遇到incorrect use之类的问题

SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.sydtek.com/

KEIL编译stdarg处理机制遇到incorrect use之类的问题

    在编译MO内核的SYD8801蓝牙芯片的时候有些电脑会出现如下错误:

    这个错误根本原因是ADS软件和MDK软件的兼容问题,ADS和MDK一样,也是使用ARMCC编译器,如果事先已经装好了ADS软件再装MDK软件的话,环境变量中的ARMCCINC和ARMCCLIB将是ADS软件下的目录,而MDK软件引用了ADS软件下的文件就会出现问题,解决办法如下博客:

    摘录于:http://www.cnblogs.com/yihuihong/articles/4964868.html

 

/************************************************************************************************/

如果以前玩过ARM7,使用过ADS软件,那么安装新版本的keil(4.6以上)就会有环境变量冲突问题,解决方法,网上有很多,

1、卸载ADS重装keil,这种方法不可取!

2、删除ADS下的环境变量,两种环境只能使用一个!

3、还有就是在keil的LINker下加入条件“--libpath=C:\Keil\ARM\ARMCC\lib”,每个工程都要添加,麻烦!

上面的三种方法都都太麻烦或者存在弊端,最好的方法如下:

在我的电脑点击属性

--->高级--->环境变量---->系统变量,修改环境变量:ARMCC5LIB 

变量值:C:\Keil\ARM\ARMCC\lib(keil的安装目录,视您的安装情况更改)

让这个环境变量指向MDK的目录即可!

 /************************************************************************************************/

 

 

..\FATFS\src\ff.c(3995): error:  #928: incorrect use of va_start
..\FATFS\src\ff.c(3995): error:  #253: expected a ","
..\FATFS\src\ff.c(3995): error:  #29: expected an expression
..\FATFS\src\ff.c(4026): error:  #929: incorrect use of va_arg
..\FATFS\src\ff.c(4037): error:  #929: incorrect use of va_arg
..\FATFS\src\ff.c(4052): error:  #929: incorrect use of va_arg
..\FATFS\src\ff.c(4052): error:  #929: incorrect use of va_arg
..\FATFS\src\ff.c(4052): error:  #929: incorrect use of va_arg

     如果还是报错,stdarg.h头文件还是被指向ADS的文件夹。我后来自己又加了一个环境变量:ARMCC5INC   C:\Keil\ARM\ARMCC\include(MDK的安装路径),再编译就OK了。仅供参考。

 

    这里感谢原博客博主!

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值