1、 文檔目標(biāo)
指定MDK在工程構(gòu)建過(guò)程中指定退出構(gòu)建的退出代碼。
2、 問(wèn)題場(chǎng)景
在構(gòu)建過(guò)程中,通常會(huì)輸出工程中涉及的Error和Warning信息。但是對(duì)于一些系統(tǒng)錯(cuò)誤不會(huì)進(jìn)行報(bào)告。所以無(wú)法確認(rèn)在構(gòu)建過(guò)程中是否會(huì)出現(xiàn)一些系統(tǒng)錯(cuò)誤。
3、軟硬件環(huán)境
1)、軟件版本:Keil MDK 5.38a
2)、電腦環(huán)境:Windows 11
3)、外設(shè)硬件:無(wú)
4、解決方法
1)、μVision在每個(gè)構(gòu)建過(guò)程之后設(shè)置ERRORLEVEL來(lái)指示狀態(tài)。包含的ERRORLEVEL有(如圖4-1):
(1)、Level 1:警告
(2)、Level 2:報(bào)錯(cuò)
(3)、Level 3:致命錯(cuò)誤
(4)、Level 11:無(wú)法打開項(xiàng)目文件進(jìn)行寫入
(5)、Level 12:在數(shù)據(jù)庫(kù)中找不到給定名稱的設(shè)備
(6)、Level 13:對(duì)于工程文件進(jìn)行寫操作出錯(cuò)
(7)、Level 15:讀取導(dǎo)入XML文件時(shí)出錯(cuò)
(8)、Level 20:轉(zhuǎn)換項(xiàng)目出錯(cuò)
![](/Uploads/2024-05-31/66592c84419a0.png)
圖4-1
2)、在window中定義的調(diào)試錯(cuò)誤代碼有15999個(gè)(如圖4-2)。常見的幾個(gè)為:
(1)、Level 0 ERROR_SUCCESS:操作成功完成。
(2)、Level 1 ERROR_INVALID_FUNCTION:不正確的函數(shù)。
(3)、Level 2 ERROR_FILE_NOT_FOUND:系統(tǒng)找不到指定的文件。
(4)、Level 3 ERROR_PATH_NOT_FOUND:系統(tǒng)找不到指定的路徑。
(5)、Level 4 ERROR_TOO_MANY_OPEN_FILES:系統(tǒng)無(wú)法打開該文件。
(6)、Level 5 ERROR_ACCESS_DENIED:拒絕訪問(wèn)
(7)、Level 6 ERROR_INVALID_HANDLE:無(wú)效的處理
(8)、Level 7 ERROR_ARENA_TRASHED:存儲(chǔ)控制塊被銷毀。
![](/Uploads/2024-05-31/66592c94324ce.png)
圖4-2
3)、在MDK中可以通過(guò)在對(duì)于單文件的配置中去設(shè)置退出條件。在Option窗口中,在Properties中的Stop on Exit Code中就可以設(shè)置退出代碼(如圖4-3)。
例如:Translator WarningsErrorFatal Error:就是對(duì)于這些等級(jí)的退出代碼進(jìn)行解釋,確認(rèn)具體情況。
Custom Exit Code >=4/5/6/78/9/10:如果出現(xiàn)了大于這個(gè)退出代碼等級(jí)的報(bào)錯(cuò),就會(huì)停止構(gòu)建。
![](/Uploads/2024-05-31/66592cb146651.png)
圖4-3