隨着項目的推進與迭代,一個Project的代碼量往往會不知不覺增長,當項目代碼達到數萬行,迭代經歷較長時間后,僅靠開發人員自身的代碼質量已不能滿足對整體質量的把控。難以避免會出現一些潛在的邏輯錯誤與非邏輯錯誤。這種情況下,定期code review是不錯的選擇,但是在開發人員數量較少,開發模式趨於敏捷開發的今天,快速迭代,開發人員技術參差不齊,即便選擇code review也不能發現大多數潛在風險。如果自己進行全盤代碼的review,其難度不亞於將項目重構,此時引入工具就變得迫在眉睫。
在進行Web開發時,尤其進行js開發時,開發工具會包含‘csslint’,‘eslint’等一些代碼質量檢測工具,打包過程中會給出一些很有意義的Warning,解決大多數非邏輯性錯誤造成的功能異常問題。在單片機開發過程中,也有一個代碼質量檢測神器---‘PC-Lint’,下面來介紹如何在Keil中使用PC-Lint!
- 項目構成:項目代碼 + FreeRTOS10.0.1 + STM32FXX_StdPeriph_Driver
- Keil版本:MDK-ARM Plus Version5.24.1
- PC-Lint版本:PC-lint for C/C++ (NT) Vers. 9.00L (https://files.cnblogs.com/files/godan/Gimpel_PC_Lint_9.rar) 免費可用版本~~
1.安裝PC-Lint
下載好PC-Lint后,需要再去官網下載最新的patch包。PC-Lint安裝完畢后,將patch包放在PC-Lint安裝路徑下,打開cmd,先查看當前pc-lint版本:
打path的方法也很簡單,只需按照官網提示輸入lpath.exe patch_file_name即可。
2.在Keil中添加PC-Lint
點擊圖中按鈕,彈出以下配置窗口:
根據圖中所示,選擇好PC-Lint的安裝路徑,Keil自帶的LNT配置文件后點擊OK,配置完成。之后就可以點擊“Lint all C/C++ Source Files”,愉快地使用PC-Lint神器啦,是不是很簡單~~~
由於C語言的項目中很多時候會用到枚舉,goto,指針轉換,等類型、方法,所以個人認為提示的好多Warning只供參考,未必需要消除所有PC-Lint提示的Warning,最主要是檢查在類型的隱式轉換時,變量類型發生精度丟失會不會造成功能異常等一些奇葩問題。
一般PC-Lint給出的信息會很多,我目前的項目給出的提示信息近5000條,可以先把輸出信息拷貝到notepad++中,分別搜索'Info',‘Warning’,'Error',逐一查看,提高效率!