當前位置:首頁 > 單片機 > 單片機
[導讀]keil錯誤;C51編譯器識別錯類型有三種;1、致命錯誤:偽指令控制行有錯,訪問不存在的原文;2、語法及語義錯誤:語法和語義錯誤都發(fā)生在原文件;3、警告:警告出現(xiàn)并不影響目標文件的產生,但執(zhí)行;C_51FATAL_ERRORA

keil錯誤;C51編譯器識別錯類型有三種;1、致命錯誤:偽指令控制行有錯,訪問不存在的原文;2、語法及語義錯誤:語法和語義錯誤都發(fā)生在原文件;3、警告:警告出現(xiàn)并不影響目標文件的產生,但執(zhí)行;C_51FATAL_ERRORACTION:&l;ERROR:<錯誤信息>termin;FILE:<錯誤所在文件>;ERROR:<錯誤信

keil錯誤

C51編譯器識別錯類型有三種

1、致命錯誤:偽指令控制行有錯,訪問不存在的原文件或頭文件等。

2、語法及語義錯誤:語法和語義錯誤都發(fā)生在原文件中。有這類錯誤時,給出 提示但不產生目標文件,錯誤超過一定數(shù)量才終止編譯。

3、警告:警告出現(xiàn)并不影響目標文件的產生,但執(zhí)行時有可能發(fā)生問題。程序 員應斟酌處理。 D.1 致命錯誤

C_51 FATAL_ERROR ACTION: <當前行為> LINE: <錯誤所在行>

ERROR: <錯誤信息> terminated 或C_51 FATAL ERROR ACTION: <當前行為>

FILE: <錯誤所在文件>

ERROR: <錯誤信息> terminated C_51 TERMINATED C_51 (1) ACTION 的有關信息

*PARSING INVOKE-/#PRAGMA_LINE

在對#pragma 指明的控制行作此法分析時出錯。 *ALLOCATING MEMORY

系統(tǒng)分配存儲空間時出錯。編譯較大程序需要512k空間。 *OPENING INPUT_FILE

打開文件時,未找到或打不開源文件/頭文件。

*CREATE LIST_FILE/OBJECT_FILE/WORK_FILE 不能創(chuàng)建上述文件。可能磁盤滿或文件已存在而且寫保護。 *PARSING SOURCE_FILE/ANALYZING DECLARATIONS

分析源程序時發(fā)現(xiàn)外部引用名太多。 *GENERATING INTERMEDIATE CODE

源代碼被翻譯成內部偽代碼,錯誤可能來源于函數(shù)太大而超過內部極限。 *WRITING TO FILE

在向文件(work,list,prelist或object file)寫時發(fā)生錯誤。 (2)ERROR的有關信息

*MEMORY SPACE EXHAUSTED

所有可用系統(tǒng)空間耗盡。至少需要512k 字節(jié)空間。沒有足夠空間,用戶必須檢查常駐內存 的驅動程序是否太多。 *FILE DOES NOT EXIST FILE 行定的文本文件名未發(fā)現(xiàn)。 *CAN?T CREAT FILE

FILE行定義的文件不能被創(chuàng)建。

*SOURCE MUST COME FROMA DISK_FILE

源文件和頭文件必須存在于硬盤或軟盤上??刂婆_、CON、CI 或類似設備不允許作為輸入 文件。

*MORE THAN 256 SEGMENTS/PUBLICS/EXTERNALS

受OMF_51的歷史限制,一個源程序不能超過256個各種函數(shù)的類型段,256個全局變量, 256 個公共定義或外部引用名。不使用為變量可以減少使用的段數(shù)。使用static 存儲類型說

明符可減少全局變量的使用數(shù)目。合理調整定義性說明的位置可減少外部引用名的使用數(shù) 目。

*FILEWRITE ERROR

當向list、prelist、work或object文件中寫內容時,由于空間不夠而發(fā)生錯誤。 *NON_NULLARGUMENT EXPECTED

所選的控制參數(shù)需要一個括號內的變量,如一個文件夾或一個數(shù)。 *“(”AFTER CONTROL EXPECTED 變量的左括號丟失。

*“)”AFTER PARAMETER EXPECTED 變量的右括號丟失。

*RESPECIFIED OR CONFLICTING CONTROL

所選的控制參數(shù)與前面發(fā)生沖突或重復,例如CODE和NOCOND *BAD DECIMAL NUMBER

控制參數(shù)的數(shù)字含有非法數(shù),需要使用十進制數(shù)。 *OUT OF RANGE DECIMAL NUMBER

控制參數(shù)的數(shù)字越界,例如OPTIMIZE 的參量為0-5。

*IDENTIFIER EXPECTED

控制參數(shù)DEFINE 需要一個標識符做參量,與C語言的規(guī)則相同。

*PARSE STACK OVERFLOW

分析棧溢出。可能是源程序包含特別復雜的表達式,或功能塊嵌套數(shù)超過15。 *PREPOCESSOR: MACRO TO NESTED

宏擴展期間,預處理器的棧耗用太大。表明宏嵌套太多,或有遞歸宏定義。 *PREPOCESSOR: LINE TOO LONG(510) 宏擴展后行超過510個字符。

*CAN?T HAVE GENERAL CONTROL IN INVOCATION LINE

一般控制(如EJECT)不能是命令行的一部分,應將它們放入源文件“pragma”預處理行 中。

D.2 語法及語義錯誤 D.2.1 錯誤格式

這類錯誤在列表文件中產生如下格式的信息:

***ERRORIN LINEOF:error message ***WARINGIN LINEOF:warning message 表示錯誤行;

表示源文件或頭文件中與錯誤或警告相關的行; 指明了錯誤所在的源文件或頭文件; D.2.2 錯誤信息及可能發(fā)生的原因

*ERROR100:unprintable character 0x??skipped

源文件中發(fā)現(xiàn)非法字符(注意,注解內的字符不做檢查)。 *ERROR101:unclosed string 串未用引號結尾。

*ERROR 102:string too long

串不得超過511 個字符。為了定義更長的串,用戶必須使用續(xù)行符??邏輯的繼續(xù)該串, 在詞匯分析時遇到以該符號結尾的行會與下行連接起來。 *ERROR 103: invalid character constant

試圖再聲明一個已定義的宏,已存在的宏可以用#undef指令刪除。預定義的宏不能刪除。 *ERROR 104: identifier expected

預處理器指令期望產生一個標示符,如ifdef。 *ERROR 105: unclosed comment

當注解無結束界定符(*/)時產生此錯誤。 *EROOR 106: unbalanced#if-endif controls endif的數(shù)量與if或ifdef的數(shù)量不匹配。 *ERROR 107:include file nesting exceeds 9 include指令后的文件名無效或丟失

*ERROR 108: expected string,如#error “string” 預處理器指令期望一個串變量。

*ERROR 109:

由#error 偽指令引入的錯誤信息以錯誤信號形式顯示。 *ERROR 110:missing directive 預處理行#后缺少偽指令。

*ERROR 111:unknown directive 預處理行#后不是偽指令。 *ERROR 112:misplaced ?elif?

*ERROR 113:misplaced ?else? *ERROR 114:misplaced ?endif?

指令elif/else/endif只有在if、ifdef、ifndef指令內才是合法的。 *ERROR 117:bad integer expression if/elif指令的數(shù)值表達式有語法錯誤。

*ERROR 118:missing?(?after macro identifier 宏調用中實參表的左括號丟失

*ERROR 119:reuse of macro formal parameter 宏定義形參名重復使用

*ERROR 120:?C?unexpected in formal list 形參表中不允許有字符?c?,應用逗號代替 *ERROR 121:missing ?)?after actual parameter 宏調用實參表的右括號丟失

*ERROR 122:illegal macro invocation 宏調用的實參表與宏定義中的形參表不同 *ERROR 123:missing macro name after ?define? #define 偽指令后缺預定義的宏

*ERROR 124:expected macro formal parameter 宏定義要求形參名

*ERROR 125:declarater too complex

說明過于復雜

*ERROR 126:type-stack underflow

對象的聲明至多只能包含20 個類型修飾符(【】,*,(),)錯誤126 經常在錯誤125 之前,

兩者一起發(fā)生。

*ERROR 127:invalid storage class

對象用無效的存儲類所說明。當在函數(shù)外用auto/register 存儲時會發(fā)生這種情況。 *ERROR 128:memory space: illegal memory space ?memory space ?used

函數(shù)參數(shù)的存儲類由存儲模式(SMALL LARGE COMPACT)決定用戶不能改變,使用不同

于存儲模式的自動變量應該為靜態(tài)的存儲類

*ERROR 129:missing? ;?before ?token?

該錯誤表示分號丟失,通常該錯誤會引發(fā)一連串的錯誤,引發(fā)的這些錯誤無關緊要。因為缺 少分號后編譯器不能做正確的語法分析 *ERROR 130:value out of range

using 或interrupt 指令后參數(shù)越限。using 用的寄存器組號位0-3,interrupt 需要0-15 的中 斷號

*ERROR 131:duplicate function-parameter 函數(shù)中形參名重復,形參名應彼此不同 *ERROR 132:not in formal parameter list 函數(shù)內參數(shù)聲明使用的名字未出現(xiàn)在參數(shù)表中 *ERROR 133:char function(v0,v1,v2)

Char*v0,*v1,*v5;/ *?v5?在形參中未出現(xiàn)

*ERROR 134:xdata/idata/pdata/data on function not permitted

函數(shù)總是駐留于0x5xxxx 的code存儲區(qū),不能位于xdata/idata/pdata/data 空間 *ERROR 135:bad storage class for bit

位變量的定義可以接受static或extern的存儲類,用REGIESTER和ALIEN 都是非法的 *ERROR 136:?void?on variable

?void?類型只允許作為函數(shù)的返回類型或與指針類型合用(void*) *ERROR 137:illegal parameter type:?function?

函數(shù)參數(shù)的類型不能是函數(shù),然而函數(shù)指針可以作為參數(shù) *ERROR 138:interrupt ()may not receive or return value (s) 中斷函數(shù)既不能有參數(shù)又不能有返回值

*ERROR 139:illegal use of ?alien?

關鍵字alien 將函數(shù)定義為PL/M51 規(guī)定的過程與函數(shù)結構。這意味著C函數(shù)中有參數(shù)的縮

記符號(即funct(…);)時是不能用alien的

*ERROR 140:bit in illegal memory-space

位變量的定義可包含修飾符DATA,如果無修飾符則假定為DATA。因為位變量始終位于 0x4xxx 的內部數(shù)據(jù)存儲器中,當試圖采用其他存儲空間就會產生這個錯誤。 *ERROR 141:NEAR:expected 編譯器所見的單詞是錯誤的。期望正確的單詞

*ERROR 142:invalid base address

Sfr說明中的基址有錯。有效基址為0x80-0xff。如果聲明采用base^pos形式,則基址是8的

整數(shù)倍

*ERROR 143:invalid absolute bit position

Sbit說明中位地址必須在0x80-0xff之間 *ERROR 144:base^pos:invalid bit position Sbit說明中位pos必須在0~7之間 *ERROR 145:undeclared sfr Sfr未說明

*ERROR 146:invalid sfr

絕對位地址說明(base^pos)包含無效的基地址。這個基地址必須與sfr名相對應 *ERROR 147:object too large 對象不能超過65536(64k)字節(jié)

*ERROR 148:field not permitted in union

聯(lián)合不能包含位成員,這個限制是由8051結構決定的。 *ERROR 149:function member in struct/union

結構或者聯(lián)合不能包含函數(shù)類型的成員。但是指向函數(shù)的指針是允許的 *ERROR 150:bit member in struct/union

結構或者聯(lián)合不能包含位類型的成員,這個限制是由8051 結構決定的 *ERROR 151:self relativestruct/union

結構或者聯(lián)合不能包含自身

*ERROR 152:bit field type too small for number of bits 位域聲明中指定的位數(shù)超過所給原型中位的數(shù)量

*ERROR 153:named bit-field

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉