書接上回《KEIL for ARM 5.33最新版無法正常編譯,該如何解決?》,上回咱們第一次用Keil for ARM的這個新版本,遇到了默認編譯器AC6,在配置上如果不在標準外設庫選擇選擇時候勾選Framework和RCC兩項(實際上配置工具橙色警告提示了這兩個遺漏)。
一個最簡單的hello Word程序都可以報錯一堆,警告一堆。
而在工程配置完成后,如果在工程配置上切換到AC5(老版本的)編譯器,就可以扭轉(zhuǎn)乾坤,實現(xiàn)0 error 0 warning。
是不是很奇怪,所以我當時就誤以為這是不是新版本的BUG?
有朋友看到我的帖后,告訴我說這是AC6的新特性,對程序代碼審核更加嚴格了而已。
接下來咱們重新再建設一個工程,看看到底咋回事。
1、新建工程,選擇所用的芯片型號
2、進入RTE配置菜單,配置選項如下
根據(jù)需要選擇你所用到的標準外設庫,如果遺漏掉Framework和RCC會出現(xiàn)橙色警告,如下所示:
如果遺漏出現(xiàn)橙色警告,單擊左下角Resolve可以幫您勾選上,如果這個時候沒有補上這兩個,就OK了,不要擔心,后面還可以補救。
單擊OK后,進入工程,添加一個main.c的main函數(shù)文件:
這個時候如果編譯的話,效果如下
這是為何呢?仔細觀察警告類型,大多都是一些不同數(shù)據(jù)直接賦值轉(zhuǎn)換的警告,沒啥好擔心的,但是有不少像我一樣有0錯誤0警告強迫癥的人,看到1個警告就難受。
怎么辦,打開工程配置選項:
發(fā)現(xiàn)AC編譯器這里默認的是AC6,是個新東西啊,之前沒用過,換成AC5試試看。
0錯誤0警告了,好神奇
話說回來了,如果剛才RTE配置時候,遺漏了Framework和RCC,直接編譯會出現(xiàn)多個錯誤和幾十個警告,如果遇到這個問題,就可以看我上一個貼講到的。在工程配置將AC6更換為AC5版本,然后保存,編譯工程,這個時候會發(fā)現(xiàn)同樣的變成了0錯誤0警告,因為AC5會自動幫你把你遺漏的Framework和RCC添加回來。
而AC6更加嚴格,你沒有添加,它不會主動幫你添加,它以為你不需要呢。
如果改成了AC5后,進行了一次編譯,然后再切換回AC6會怎么樣呢?
仍然是0錯誤0警告,好神奇,是不是?
怎么不報數(shù)據(jù)賦值類型不同的警告了呢?
注意下面這個位置的變化,在剛建好的時候默認的是All warnings。
在改成AC5編譯一次后,切換回來變成了AC5-like Warnings。
可選的警告展示類型有5個選項,只有AC6默認的All Warnings選項會導致一堆的警告,讓人心煩啊。
這就說明如果你用AC6,可以讓警告的執(zhí)行標準像AC5一樣不嚴格。
大家明白了嗎?
這對不太了解AC6的人會認為是個設計上的BUG,而對AC6的設計人員呢,這就是他們想要的結(jié)果,因此這不算個BUG,作為用戶應該了解產(chǎn)品設計者的初衷,才能用好這個工具。
另外關鍵的一點,該貼的目的不是真的要討論算不算BUG,而是要分享給你如何快速創(chuàng)建新的工程,并讓你的代碼0 error 0 warning。
原文標題:Keil for ARM 5.33版基于RTE創(chuàng)建工程時候的必須注意事項
文章出處:【微信公眾號:嵌入式ARM】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
責任編輯:haq
-
ARM
+關注
關注
134文章
9084瀏覽量
367381 -
keil
+關注
關注
68文章
1212瀏覽量
166840
原文標題:Keil for ARM 5.33版基于RTE創(chuàng)建工程時候的必須注意事項
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論