<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> EDA開(kāi)發(fā)應(yīng)用 >> Keilc >> 正文

      keil C 編譯器錯(cuò)誤與解決方法

      作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2008-12-3

               最近調(diào)好了基于EDN USB學(xué)習(xí)板的無(wú)線鍵盤程序,以前KEIL C沒(méi)有怎么好好的學(xué)習(xí).調(diào)試中遇到很多的問(wèn)題.下面我自己在網(wǎng)上搜到了一些關(guān)于keil C 編譯器錯(cuò)誤與解決方法.做成PDF文檔,望大家少走一點(diǎn)彎路:

                                                         keil c編譯器錯(cuò)誤與解決方法

      1. Warning 280:’i’:unreferenced local variable
      說(shuō)明局部變量i 在函數(shù)中未作任何的存取操作解決方法消除函數(shù)中i 變量的宣告
      2 Warning 206:’Music3’:missing function-prototype
      說(shuō)明Music3( )函數(shù)未作宣告或未作外部宣告所以無(wú)法給其他函數(shù)調(diào)用
      解決方法將敘述void Music3(void)寫在程序的最前端作宣告如果是其他文件的函數(shù)則要寫
      成extern void Music3(void),即作外部宣告
      3 Compling :C:\8051\MANN.C
      Error:318:can’t open file ‘beep.h’
      說(shuō)明在編譯C:\8051\MANN.C 程序過(guò)程中由于main.c 用了指令#i nclude “beep.h”,但
      卻找不到所致解決方法編寫一個(gè)beep.h 的包含檔并存入到c:\8051 的工作目錄中
      4 Compling:C:\8051\LED.C
      Error 237:’LedOn’:function already has a body
      說(shuō)明LedOn( )函數(shù)名稱重復(fù)定義即有兩個(gè)以上一樣的函數(shù)名稱
      解決方法修正其中的一個(gè)函數(shù)名稱使得函數(shù)名稱都是獨(dú)立的
      5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS
      SEGMENT: ?PR?_DELAYX1MS?DELAY
      說(shuō)明DelayX1ms( )函數(shù)未被其它函數(shù)調(diào)用也會(huì)占用程序記憶體空間解決方法去掉
      DelayX1ms( )函數(shù)或利用條件編譯#if …..#endif,可保留該函數(shù)并不編譯
      6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP
      FROM : 0025H
      TO: 0025H
      說(shuō)明外部資料ROM 的0025H 重復(fù)定義地址
      解決方法外部資料ROM 的定義如下Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC
      變量的名稱為0x25,請(qǐng)檢查是否有其它的變量名稱也是定義在0x25 處并修正它
      7 WARNING 206:’DelayX1ms’: missing function-prototype
      C:\8051\INPUT.C
      Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:\8051\INPUT.C
      說(shuō)明程序中有調(diào)用DelayX1ms 函數(shù)但該函數(shù)沒(méi)定義即未編寫程序內(nèi)容或函數(shù)已定義但未作
      宣告
      解決方法編寫DelayX1ms 的內(nèi)容編寫完后也要作宣告或作外部宣告可在delay.h 的包含檔
      宣告成外部以便其它函數(shù)調(diào)用
      8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL
      SYMBOL:MUSIC3
      MODULE:C:\8051\MUSIC.OBJ(MUSIC)
      ***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL
      SYMBOL:MUSIC3
      MODULE:C:\8051\MUSIC.OBJ(MUSIC)
      ADDRESS:0018H
      說(shuō)明程序中有調(diào)用MUSIC 函數(shù)但未將該函數(shù)的含擴(kuò)檔C 加入到工程檔Prj 作編譯和連接
      解決方法設(shè)MUSIC3 函數(shù)在MUSIC C 里將MUSIC C 添加到工程文件中去
      9 ***ERROR 107:ADDESS SPACE OVERFLOW
      SPACE: DATA
      SEGMENT: _DATA_GOUP_
      LENGTH: 0018H
      ***ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNAL
      SYMBOL: VOLUME
      MODULE: C:\8051\OSDM.OBJ (OSDM)
      ADDRESS: 4036H
      說(shuō)明data 存儲(chǔ)空間的地址范圍為0~0x7f,當(dāng)公用變量數(shù)目和函數(shù)里的局部變量如果存
      儲(chǔ)模式設(shè)為SMALL 則局部變量先使用工作寄存器R2~R7 作暫存當(dāng)存儲(chǔ)器不夠用時(shí)則會(huì)
      以data 型別的空間作暫存的個(gè)數(shù)超過(guò)0x7f 時(shí)就會(huì)出現(xiàn)地址不夠的現(xiàn)象
      解決方法將以data 型別定義的公共變量修改為idata 型別的定義
      說(shuō)明如對(duì)編譯出錯(cuò)感興趣的網(wǎng)友能否把你們常遇到的錯(cuò)誤信息收集起來(lái)并提出最終的
      解決辦法加以歸納以期共享
      10.***WARNING L15: MULTIPLE CALL TO SEGMENT
      SEGMENT: ?PR?_WRITE_GMVLX1_REG?D_GMVLX1
      CALLER1: ?PR?VSYNC_INTERRUPT?MAIN
      CALLER2: ?C_C51STARTUP
      ***WARNING L15: MULTIPLE CALL TO SEGMENT
      SEGMENT: ?PR?_SPI_SEND_WORD?D_SPI
      CALLER1: ?PR?VSYNC_INTERRUPT?MAIN
      CALLER2: ?C_C51STARTUP
      ***WARNING L15: MULTIPLE CALL TO SEGMENT
      SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI
      CALLER1: ?PR?VSYNC_INTERRUPT?MAIN
      CALLER2: ?C_C51STARTUP
      該警告表示連接器發(fā)現(xiàn)有一個(gè)函數(shù)可能會(huì)被主函數(shù)和一個(gè)中斷服務(wù)程序(或者調(diào)用中斷
      服務(wù)程序的函數(shù))同時(shí)調(diào)用,
      或者同時(shí)被多個(gè)中斷服務(wù)程序調(diào)用。
      出現(xiàn)這種問(wèn)題的原因之一是這個(gè)函數(shù)是不可重入性函數(shù),當(dāng)該函數(shù)運(yùn)行時(shí)它可能會(huì)被一
      個(gè)中斷打斷,從而使得結(jié)果發(fā)生變化
      并可能會(huì)引起一些變量形式的沖突(即引起函數(shù)內(nèi)一些數(shù)據(jù)的丟失,可重入性函數(shù)在任何時(shí)
      候都可以被ISR 打斷,一段時(shí)間后又可以
      運(yùn)行,但是相應(yīng)數(shù)據(jù)不會(huì)丟失)。
      原因之二是用于局部變量和變量(暫且這樣翻譯,arguments,[自變量,變?cè)粩?shù)值,用于
      確定程序或子程序的值])的內(nèi)存區(qū)被其他函數(shù)的內(nèi)存區(qū)所覆蓋,如果該函數(shù)被中斷,則它的
      內(nèi)存區(qū)就會(huì)
      被使用,這將導(dǎo)致其他函數(shù)的內(nèi)存沖突。
      例如,第一個(gè)警告中函數(shù)WRITE_GMVLX1_REG 在D_GMVLX1.C 或者D_GMVLX1.A51 被定義,
      它被一個(gè)中斷服務(wù)程序或者一個(gè)調(diào)用了中斷
      服務(wù)程序的函數(shù)調(diào)用了,調(diào)用它的函數(shù)是VSYNC_INTERRUPT,在MAIN.C 中。
      解決方法:
      如果你確定兩個(gè)函數(shù)決不會(huì)在同一時(shí)間執(zhí)行(該函數(shù)被主程序調(diào)用并且中斷被禁止),并
      且該函數(shù)不占用內(nèi)存(假設(shè)只使用寄存器),
      則你可以完全忽略這種警告。
      如果該函數(shù)占用了內(nèi)存,則應(yīng)該使用連接器(linker)OVERLAY 指令將函數(shù)從覆蓋分析
      (overlay analysis)中除去,例如:
      OVERLAY (?PR?_WRITE_GMVLX1_REG?D_GMVLX1 ! *)
      上面的指令防止了該函數(shù)使用的內(nèi)存區(qū)被其他函數(shù)覆蓋。如果該函數(shù)中調(diào)用了其他函數(shù),
      而這些被調(diào)用在程序中其他地方也被調(diào)用,
      你可能會(huì)需要也將這些函數(shù)排除在覆蓋分析(overlay analysis)之外。這種OVERLAY 指令能
      使編譯器除去上述警告信息。
      如果函數(shù)可以在其執(zhí)行時(shí)被調(diào)用,則情況會(huì)變得更復(fù)雜一些。這時(shí)可以采用以下幾種方
      法:
      1.主程序調(diào)用該函數(shù)時(shí)禁止中斷,可以在該函數(shù)被調(diào)用時(shí)用#pragma disable 語(yǔ)句來(lái)實(shí)現(xiàn)禁
      止中斷的目的。必須使用OVERLAY 指令將該函數(shù)
      從覆蓋分析中除去。
      2.復(fù)制兩份該函數(shù)的代碼,一份到主程序中,另一份復(fù)制到中斷服務(wù)程序中。
      3.將該函數(shù)設(shè)為重入型。例如:
      void myfunc(void) reentrant {
      ...
      }
      這種設(shè)置將會(huì)產(chǎn)生一個(gè)可重入堆棧,該堆棧被被用于存儲(chǔ)函數(shù)值和局部變量,用這種
      方法時(shí)重入堆棧必須在STARTUP.A51 文件中配置。
      這種方法消耗更多的RAM 并會(huì)降低重入函數(shù)的執(zhí)行速度。
      11. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
      SEGMENT: ?PR?_COMPARE?TESTLCD
      說(shuō)明:程序中有些函數(shù)(或片段)以前(調(diào)試過(guò)程中)從未被調(diào)用過(guò),或者根本沒(méi)有
      調(diào)用它的語(yǔ)句。
      這條警告信息前應(yīng)該還有一條信息指示出是哪個(gè)函數(shù)導(dǎo)致了這一問(wèn)題。只要做點(diǎn)簡(jiǎn)
      單的調(diào)整就可以。不理它也沒(méi)什么大不了的。
      解決方法:去掉COMPARE()函數(shù)或利用條件編譯#if …..#endif,可保留該函數(shù)并不
      編譯。
      C 編譯器錯(cuò)誤信息中文翻譯
      Ambiguous operators need
      parentheses
      不明確的運(yùn)算需要用括號(hào)括起
      Ambiguous symbol ``xxx``
      不明確的符號(hào)
      Argument list syntax error
      參數(shù)表語(yǔ)法錯(cuò)誤
      Array bounds missing
      丟失數(shù)組界限符
      Array size toolarge
      數(shù)組尺寸太大
      Bad character in paramenters
      參數(shù)中有不適當(dāng)?shù)淖址?BR>Bad file name format in include
      directive
      包含命令中文件名格式不正確
      Bad ifdef directive synatax
      編譯預(yù)處理ifdef 有語(yǔ)法錯(cuò)
      Bad undef directive syntax
      編譯預(yù)處理undef 有語(yǔ)法錯(cuò)
      Bit field too large
      位字段太長(zhǎng)
      Call of non-function
      調(diào)用未定義的函數(shù)
      Call to function with no
      prototype
      調(diào)用函數(shù)時(shí)沒(méi)有函數(shù)的說(shuō)明
      Cannot modify a const object
      不允許修改常量對(duì)象
      Case outside of switch
      漏掉了case 語(yǔ)句
      Case syntax error
      Case 語(yǔ)法錯(cuò)誤
      Code has no effect
      代碼不可述不可能執(zhí)行到
      Compound statement missing{
      分程序漏掉"{"
      Conflicting type modifiers
      不明確的類型說(shuō)明符
      Constant expression required
      要求常量表達(dá)式
      Constant out of range in
      comparison
      在比較中常量超出范圍
      Conversion may lose
      significant digits
      轉(zhuǎn)換時(shí)會(huì)丟失意義的數(shù)字
      Conversion of near pointer not
      allowed
      不允許轉(zhuǎn)換近指針
      Could not find file ``xxx``
      找不到XXX 文件
      Declaration missing ;
      說(shuō)明缺少";"
      Declaration syntax error
      說(shuō)明中出現(xiàn)語(yǔ)法錯(cuò)誤
      Default outside of switch
      Default 出現(xiàn)在switch 語(yǔ)句之外
      Define directive needs an
      identifier
      定義編譯預(yù)處理需要標(biāo)識(shí)符
      Division by zero
      用零作除數(shù)
      Do statement must have while
      Do-while 語(yǔ)句中缺少while 部分
      Enum syntax error
      枚舉類型語(yǔ)法錯(cuò)誤
      Enumeration constant syntax
      error
      枚舉常數(shù)語(yǔ)法錯(cuò)誤
      Error directive :xxx
      錯(cuò)誤的編譯預(yù)處理命令
      Error writing output file
      寫輸出文件錯(cuò)誤
      Expression syntax error
      表達(dá)式語(yǔ)法錯(cuò)誤
      Extra parameter in call
      調(diào)用時(shí)出現(xiàn)多余錯(cuò)誤
      File name too long
      文件名太長(zhǎng)
      Function call missing )
      函數(shù)調(diào)用缺少右括號(hào)
      Fuction definition out of place
      函數(shù)定義位置錯(cuò)誤
      Fuction should return a value
      函數(shù)必需返回一個(gè)值
      Goto statement missing label
      Goto 語(yǔ)句沒(méi)有標(biāo)號(hào)
      Hexadecimal or octal constant
      too large
      16 進(jìn)制或8 進(jìn)制常數(shù)太大
      Illegal character ``x``
      非法字符x
      Illegal initialization
      非法的初始化
      Illegal octal digit
      非法的8 進(jìn)制數(shù)字
      Illegal pointer subtraction
      非法的指針相減
      Illegal structure operation
      非法的結(jié)構(gòu)體操作
      Illegal use of floating point
      非法的浮點(diǎn)運(yùn)算
      Illegal use of pointer
      指針使用非法
      Improper use of a
      typedefsymbol
      類型定義符號(hào)使用不恰當(dāng)
      In-line assembly not allowed
      不允許使用行間匯編
      Incompatible storage class
      存儲(chǔ)類別不相容
      Incompatible type conversion
      不相容的類型轉(zhuǎn)換
      Incorrect number format
      錯(cuò)誤的數(shù)據(jù)格式
      Incorrect use of default
      Default 使用不當(dāng)
      Invalid indirection
      無(wú)效的間接運(yùn)算
      Invalid pointer addition
      指針相加無(wú)效
      Irreducible expression tree
      無(wú)法執(zhí)行的表達(dá)式運(yùn)算
      Lvalue required
      需要邏輯值0 或非0 值
      Macro argument syntax error
      宏參數(shù)語(yǔ)法錯(cuò)誤
      Macro expansion too long
      宏的擴(kuò)展以后太長(zhǎng)
      Mismatched number of
      parameters in definition
      定義中參數(shù)個(gè)數(shù)不匹配
      Misplaced break
      此處不應(yīng)出現(xiàn)break 語(yǔ)句
      Misplaced continue
      此處不應(yīng)出現(xiàn)continue 語(yǔ)句
      Misplaced decimal point
      此處不應(yīng)出現(xiàn)小數(shù)點(diǎn)
      Misplaced elif directive
      不應(yīng)編譯預(yù)處理elif
      Misplaced else
      此處不應(yīng)出現(xiàn)else
      Misplaced else directive
      此處不應(yīng)出現(xiàn)編譯預(yù)處理else
      Misplaced endif directive
      此處不應(yīng)出現(xiàn)編譯預(yù)處理endif
      Must be addressable
      必須是可以編址的
      Must take address of memory
      location
      必須存儲(chǔ)定位的地址
      No declaration for function
      ``xxx``
      沒(méi)有函數(shù)xxx 的說(shuō)明
      No stack
      缺少堆棧
      No type information
      沒(méi)有類型信息
      Non-portable pointer
      assignment
      不可移動(dòng)的指針(地址常數(shù))賦

      Non-portable pointer
      comparison
      不可移動(dòng)的指針(地址常數(shù))比

      Non-portable pointer
      conversion
      不可移動(dòng)的指針(地址常數(shù))轉(zhuǎn)

      Not a valid expression format
      type
      不合法的表達(dá)式格式
      Not an allowed type
      不允許使用的類型
      Numeric constant too large
      數(shù)值常太大
      Out of memory
      內(nèi)存不夠用
      Parameter ``xxx`` is never
      used
      能數(shù)xxx 沒(méi)有用到
      Pointer required on left side of
      ->
      符號(hào)->的左邊必須是指針
      Possible use of ``xxx`` before
      definition
      在定義之前就使用了xxx(警告)
      Possibly incorrect assignment
      賦值可能不正確
      Redeclaration of ``xxx``
      重復(fù)定義了xxx
      Redefinition of ``xxx`` is not
      identical
      xxx 的兩次定義不一致
      Register allocation failure
      寄存器定址失敗
      Repeat count needs an lvalue
      重復(fù)計(jì)數(shù)需要邏輯值
      Size of structure or array not
      known
      結(jié)構(gòu)體或數(shù)給大小不確定
      Statement missing ;
      語(yǔ)句后缺少";"
      Structure or union syntax error
      結(jié)構(gòu)體或聯(lián)合體語(yǔ)法錯(cuò)誤
      Structure size too large
      結(jié)構(gòu)體尺寸太大
      Sub scripting missing ]
      下標(biāo)缺少右方括號(hào)
      Superfluous & with function or
      array
      函數(shù)或數(shù)組中有多余的"&"
      Suspicious pointer conversion
      可疑的指針轉(zhuǎn)換
      Symbol limit exceeded
      符號(hào)超限
      Too few parameters in call
      函數(shù)調(diào)用時(shí)的實(shí)參少于函數(shù)的
      參數(shù)不
      Too many default cases
      Default 太多(switch 語(yǔ)句中一
      個(gè))
      Too many error or warning
      messages
      錯(cuò)誤或警告信息太多
      Too many type in declaration
      說(shuō)明中類型太多
      Too much auto memory in
      function
      函數(shù)用到的局部存儲(chǔ)太多
      Too much global data defined
      in file
      文件中全局?jǐn)?shù)據(jù)太多
      Two consecutive dots
      兩個(gè)連續(xù)的句點(diǎn)
      Type mismatch in parameter
      xxx
      參數(shù)xxx 類型不匹配
      Type mismatch in
      redeclaration of ``xxx``
      xxx 重定義的類型不匹配
      Unable to create output file
      ``xxx``
      無(wú)法建立輸出文件xxx
      Unable to open include file
      ``xxx``
      無(wú)法打開(kāi)被包含的文件xxx
      Unable to open input file ``xxx``
      無(wú)法打開(kāi)輸入文件xxx
      Undefined label ``xxx``
      沒(méi)有定義的標(biāo)號(hào)xxx
      Undefined structure ``xxx``
      沒(méi)有定義的結(jié)構(gòu)xxx
      Undefined symbol ``xxx``
      沒(méi)有定義的符號(hào)xxx
      Unexpected end of file in
      comment started on line xxx
      從xxx 行開(kāi)始的注解尚未結(jié)束文
      件不能結(jié)束
      Unexpected end of file in
      conditional started on line xxx
      從xxx 開(kāi)始的條件語(yǔ)句尚未結(jié)
      束文件不能結(jié)束
      Unknown assemble instruction
      未知的匯編結(jié)構(gòu)
      Unknown option
      未知的操作
      Unknown preprocessor
      directive: ``xxx``
      不認(rèn)識(shí)的預(yù)處理命令xxx
      Unreachable code
      無(wú)路可達(dá)的代碼
      Unterminated string or
      character constant
      字符串缺少引號(hào)
      User break
      用戶強(qiáng)行中斷了程序
      Void functions may not return a
      value
      Void 類型的函數(shù)不應(yīng)有返回值
      Wrong number of arguments
      調(diào)用函數(shù)的參數(shù)數(shù)目錯(cuò)
      ``xxx`` not an argument
      xxx 不是參數(shù)
      ``xxx`` not part of structure
      xxx 不是結(jié)構(gòu)體的一部分
      xxx statement missing (
      xxx 語(yǔ)句缺少左括號(hào)
      xxx statement missing )
      xxx 語(yǔ)句缺少右括號(hào)
      xxx statement missing ;
      xxx 缺少分號(hào)
      xxx`` declared but never used
      說(shuō)明了xxx 但沒(méi)有使用
      xxx`` is assigned a value which
      is never used
      給xxx 賦了值但未用過(guò)
      Zero length structure
      結(jié)構(gòu)體的長(zhǎng)度為零

      Tags:keil c,編譯器,錯(cuò)誤,解決方法  
      責(zé)任編輯:admin
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      推薦文章
      最新推薦
      熱門文章
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢
      主站蜘蛛池模板: 亚洲欧洲日产国产综合网| 天堂无码久久综合东京热| 国产综合亚洲专区在线| 久久本道综合久久伊人| 亚洲色欲www综合网| 天天综合色天天综合| 狠狠色狠狠色综合伊人| 亚洲欧美日韩综合久久久久 | 亚洲av综合日韩| 国产精品天干天干在线综合| 婷婷亚洲综合五月天小说 | 一本久久综合亚洲鲁鲁五月天| 少妇熟女久久综合网色欲| 激情五月婷婷综合| 伊人久久大香线蕉综合电影网| 亚洲综合色丁香婷婷六月图片 | 国产成人亚洲综合无| 亚洲精品第一综合99久久| 伊人久久综合影院| 亚洲国产综合久久天堂| 精品无码综合一区二区三区| 亚洲av日韩综合一区在线观看| 香蕉综合在线视频91| 狠狠做深爱婷婷综合一区| 天天色天天操综合网| 狠狠色丁香九九婷婷综合五月| 天天综合色一区二区三区| 婷婷六月久久综合丁香76| 国产成人综合精品| 亚洲国产精品综合久久网络| 国产综合亚洲专区在线| 狠狠色色综合网站| 亚洲综合校园春色| 热の无码热の有码热の综合| 久久综合狠狠综合久久97色| 国内精品综合久久久40p| 一本色道久久综合亚洲精品高清| 激情综合色综合久久综合| 一本一本久久aa综合精品| 色综合色综合久久综合频道| 色综合久久天天综合绕观看|