1、 文檔目標
驗證MDK中代碼覆蓋率功能中百分比數據的意思
2、 問題場景
在實現MDK的Trace功能的時候,對于其中的代碼覆蓋率功能中數據的意思未進行準確的確認。根據目前的對于代碼覆蓋率的概念進行實際測試。
3、軟硬件環境
1)、軟件版本:MDK v5.38a
2)、電腦環境:Windows 11
3)、外設硬件:無
4、解決方法
1)、圖4-1是對于LED_On函數的代碼覆蓋率檢測。從圖中可以看到對應函數的代碼覆蓋率是100%的。

圖4-1
2)、然后,對于LED_On這個函數進行修改,添加一些不會被執行的代碼進入,如圖4-2。圖中顯示可以看到有四個語句是未被執行的。在代碼覆蓋率的窗口中LED_On這個函數的代碼覆蓋率只有65%了。

圖4-2
3)、從上面的兩步可以確認,MDK中的代碼覆蓋率是用于檢測工程中被執行的語句的數量的占比。未被執行的語句是不會被計入到代碼覆蓋率中。
并且,代碼覆蓋率并不是根據被執行的C語言語句占總的C語言語句的比例進行計算的。是根據匯編指令去計算的。對應的函數執行所需要的所有匯編指令中被執行C語言語句的匯編指令的占比,統計出該函數的代碼覆蓋率。