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

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

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