最近在開發MCU平台搭建,於是有了想把UDS協議架設到平台的想法。UDS協議涉及的文檔比較多,一個人來實現比較不現實。通過在網上查找資料,發現GitHub上有福特開源的UDS項目,於是嘗試把該項目拿來進行調試。
開源地址為uds-c,進行下載即可。
首先對代碼的完整性進行測試。我是在Linux上進行測試的,之前已經安裝gcc編譯器。依環境不同,可能會遇到不同的問題,到時候谷歌一下即可。
通過讀開源代碼的Readme文檔,可以看出里面有三個接口需要自行實現,分別是:send_can,debug以及set_timer。send_can函數必須實現,其余兩個可選。解壓項目進入工程文件夾下:/home/geno/Documents/uds-c,運行make test,會報有fatal error: check.h: No such file or directory錯誤,查了一下應該是沒有安裝check包的原因,運行命令sudo apt install check,安裝check包后,問題解決。另外可以進行覆蓋率測試,由於沒有安裝lcov,同樣會報錯,還有需要注意的是要把
$ BROWSER=google-chrome-stable make coverage
google-chrome-stable換成自己實際的瀏覽器,並且要確保可以命令行啟動瀏覽器。
我這里使用的是chromium-browser,所以要修改為BROWER=chromium-browser make coverage。
運行make test的效果如下:
運行BROWER=chromium-browser make coverage的結果如下:
命令行界面:
瀏覽器界面:
目前看UDS源碼的完整性沒有問題,下一步進行UDS移植工作