KEIL编译stdarg处理机制遇到incorrect use之类的问题
文章轉(zhuǎn)自:https://blog.csdn.net/chengdong1314/article/details/74625528
SYD8801是一款低功耗高性能藍(lán)牙低功耗SOC,集成了高性能2.4GHz射頻收發(fā)機(jī)、32位ARM Cortex-M0處理器、128kB Flash存儲器、以及豐富的數(shù)字接口。SYD8801片上集成了Balun無需阻抗匹配網(wǎng)絡(luò)、高效率DCDC降壓轉(zhuǎn)換器,適合用于可穿戴、物聯(lián)網(wǎng)設(shè)備等。具體可咨詢:http://www.syd-tek.com/
KEIL編譯stdarg處理機(jī)制遇到incorrect use之類的問題
??? 在編譯MO內(nèi)核的SYD8801藍(lán)牙芯片的時候有些電腦會出現(xiàn)如下錯誤:
??? 這個錯誤根本原因是ADS軟件和MDK軟件的兼容問題,ADS和MDK一樣,也是使用ARMCC編譯器,如果事先已經(jīng)裝好了ADS軟件再裝MDK軟件的話,環(huán)境變量中的ARMCCINC和ARMCCLIB將是ADS軟件下的目錄,而MDK軟件引用了ADS軟件下的文件就會出現(xiàn)問題,解決辦法如下博客:
??? 摘錄于:http://www.cnblogs.com/yihuihong/articles/4964868.html
?
/************************************************************************************************/
如果以前玩過ARM7,使用過ADS軟件,那么安裝新版本的keil(4.6以上)就會有環(huán)境變量沖突問題,解決方法,網(wǎng)上有很多,
1、卸載ADS重裝keil,這種方法不可取!
2、刪除ADS下的環(huán)境變量,兩種環(huán)境只能使用一個!
3、還有就是在keil的LINker下加入條件“--libpath=C:\Keil\ARM\ARMCC\lib”,每個工程都要添加,麻煩!
上面的三種方法都都太麻煩或者存在弊端,最好的方法如下:
在我的電腦點擊屬性
--->高級--->環(huán)境變量---->系統(tǒng)變量,修改環(huán)境變量:ARMCC5LIB?
變量值:C:\Keil\ARM\ARMCC\lib(keil的安裝目錄,視您的安裝情況更改)
讓這個環(huán)境變量指向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的文件夾。我后來自己又加了一個環(huán)境變量:ARMCC5INC???C:\Keil\ARM\ARMCC\include(MDK的安裝路徑),再編譯就OK了。僅供參考。
總結(jié)
以上是生活随笔為你收集整理的KEIL编译stdarg处理机制遇到incorrect use之类的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于状态机的LCD多级菜单设计
- 下一篇: C语言要注意的地方