【Keil】使用Keil5時出現的錯誤(持續更新)

目錄

1、常見編譯錯誤

2、常見邏輯錯誤

3、常見仿真錯誤


 

1、常見編譯錯誤

  • error C141: `syntax error near 'extern', expected 'hdata'`

(錯誤C141:在“extern”附近有語法錯誤,應爲“hdata”)

這種錯誤可能的原因有很多,比較常見且難以發現的便是在調用頭文件的時候被調用的頭文件寫的不完善而導致編譯器對下一句進行報錯讓人摸不着頭腦。

  • *** WARNING : UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

***警告:未調用段,覆蓋過程忽略

存在已定義函數未調用,很常見的警告

  • *** WARNING : MULTIPLE CALL TO SEGMENT

***警告:多次調用分段

通常出現在中斷和主函數中同時調用,編譯器提示可能會出現邏輯錯誤。

  •  error C247: non-address/-constant initializer

不能使用變量給變量賦初值。

  •  error: L6236E: No section matches selector - no section to be FIRST/LAST.

錯誤:L6236E:沒有與選擇器匹配的節-沒有第一個/最後一個節。

未添加啓動文件 

  • 自動內存分配設置問題
*** ERROR L107: ADDRESS SPACE OVERFLOW

    SPACE:   DATA    
    SEGMENT: ?DT?SYS
    LENGTH:  0004H
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   DATA    
    SEGMENT: ?DT?_DS1302BURSTREAD?DS1302
    LENGTH:  0003H

這是keil在編譯時會自動將你的局部變量存儲在Memory Model設置的區域,一旦局部變量過多會產生錯誤。 這時候可以設置變量存儲在PDATA或者XDATA,但這會在一定程度上拖慢執行速度。

 

  • error:  #268: declaration may not appear after executable statement in block

錯誤:#268:聲明不能出現在塊中的可執行語句之後

將定義、聲明語句放在函數首行即可


 

2、常見邏輯錯誤

  • 在對使用DAC時要注意變量是否會溢出,通常輸出的電壓都是帶有小數點的,如果是用8位精度的DAC那麼別拿要注意變量類型的轉換,推薦在計算時使用double或者float型變量,判斷時可以強制類型轉換成int型,輸出再轉換成char型。

TIPS:強制類型轉換保低不保高。


3、常見仿真錯誤

  • Connecting to target system lost!please reset your target system and try again.

戳這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章