原廠 NXP 所提供的編譯軟體 S32 Design Studio for Vision 是一個相當不錯的圖形化軟體,能藉由拖曳與點選圖形的方式編譯程式。然而 Design Studio 仍是有許多使用上的缺陷,一個簡單 demo 的範例程式常因為 ACF ( APEX Core FrameWork) 的設計,造成理解程式架構時容易混淆。另一方面於使用 Design Studio 時,無法快速瀏覽程式碼的引用來源,僅能用搜尋方式檢索,造成初學者瀏覽不易。編譯的系統也分為 APU 以及 A53 兩個編譯器,但因此兩個編譯所能編譯的程式有所不同,在缺乏說明的情況下,經常會被混淆該用哪顆編譯器進行。同時,原廠所提供的參考文件相對於少,當使用者使用上有疑慮時,經常造成初學者使用上的不便。
因此為了幫助初學者更加能釐清原廠所提供的程式的架構,這裡提供一個方便簡潔的程式軟體 Visual Studio Code 並由 MicroSoft (微軟) 免費釋出, 簡稱 VSCode 。 VSCode 提支援數百種程式語言,可用中斷點、快速地瀏覽程式碼、以及直接於編譯器內執行偵錯,並適用於各平台中。以下將介紹各位如何使用 Visual Studio Code 搭建 S32V234 和 Ubuntu 編譯環境,以及介紹如何添加程式與資料庫,並重新編譯原廠 NXP 的範例。最後展示如何使用遠端方式執行編譯後的範例,此外這裡作業系統皆設置於Ubuntu 環境下進行操作。
二、 使用Visual Studio Code 搭建 S32V234 編譯環境
搭建 S32V234 編譯環境前,必須至 NXP 官方網站下載 Vision SDK 簡稱 VSDK。 這裡以 VSDK REV 1.3.0 版作為範例,將介紹如何下載以及安裝。下載完成與安裝 VSDK 後,將介紹 Visual Studio Code 的下載與安裝,由於 VSCode 就像是一個空白簡潔的編譯軟體,因此許多套件是需要自行添加或設計,這裡將會建議初學者基本與常用的安裝套件 (微軟提供),只要以點選方式即可下載安裝至你的 VSCode 中,以及介紹如何設定配置檔等等,以方便使用者可以快速瀏覽程式與直接編譯程式等等功能。
a. 下載與安裝 Vision SDK Software (REV 1.3.0)
(1) 下載 Vision SDK Software (REV 1.3.0) : 請至nxp 網站下載 VisionSDK_S32V2_RTM_1_3_0_HF1 : 圖文出處 : NXP網站
點選下載後,將進入至nxp下載頁面挑選 VisionSDK RTM 1.3.0 HF1 installer for Linux host 圖文出處 : NXP網站 (2)安裝VisionSDK_S32V2_RTM_1_3_0_HF1 :
圖文出處 : NXP 網站 |
b. 下載與安裝 Visual Studio Code
(1) 下載與安裝 Visual Studio Code 請至微軟網站下載 Visual Studio Code安裝檔(.deb) 並選擇Linux Ubuntu的版本。
(2) Visual Studio Code 安裝套件方法 點擊左側 “延伸模組” 搜尋 "c/c++"後,即可安裝 VScode 主要的 c/c++ 套件。
展示Bracket Pair Colorizer 的效果 圖文出處 : 實際操作 VSCode 畫面 (3) Visual Studio Code 配置檔設定 Visual Studio Code 的配置檔 (.json) 基本上需要配置三種文件。 |
圖文出處 : 實際操作 VSCode 畫面
如此一來即利用滑鼠右鍵點擊輕鬆找到代碼來源。若想從 VScode 進行編譯,須設定其餘兩個檔案 (.json) 相關配置,但因配置過於繁雜。
以下章節將提供更快速的編譯方法。
三、 編譯 NXP Vision SDK 資料庫所提供的範例程式
接續上一章節不適用利用VScode進行編譯主要有兩個原因 :
1. 資料庫連接過繁雜
2. Apexcv pro 資料庫僅支援於S32V上運行,不建議直接以 C++ 原生編譯器編譯。
因此將介紹原廠 NXP 實際的編譯方式,S32 Design Studio 僅是利用 MakeFile 的方式對程式碼進行編譯,主要指引編譯方式的檔案為 BUILD.mk 後續將介紹如何撰寫與編譯。
(1) 撰寫 BUILD.mk 檔案
這裡將利用 S32V 提供的 demo 範例程式進行改寫, 首先需要找到 demo 範例程式內的 BUILD.mk
範例程式路徑為 /home/weilly/VisionSDK_S32V2_RTM_1_3_0_HF1/s32v234_sdk/demos/isp/isp_sonyimx224_csi_dcu
圖文出處 : 實際操檔案位置示意圖 BUILD.mk 為編譯設定檔,需要打開此檔案進行編譯,並添加來源庫(include)與資料庫(lib)。
2. 添加來源庫(include) 其中 vsdk 內的參考來源為 VisionSDK_ProgrammingExamples.pdf 3. 添加資料庫(lib) 4. 添加外部資料庫(lib)
添加完成後即可進行編譯。
主要的程式碼則須至以下路徑內的 main.cpp 撰寫
../VisionSDK_S32V2_RTM_1_3_0_HF1/s32v234_sdk/demos/isp/isp_sonyimx224_csi_dcu/src/main.cpp
*此編譯方式竟可能於資料夾 demos底下操作,若於他處需重新定義環境變數。
|
(2) 編譯並產生執行檔
接續已改寫好的程式碼,請接續以下步驟前。以下說明皆以原廠範例為主,故暫不修改為主,確保可以成功執行範例。
首先須進入至你的專案目錄. 例如 sonyimx224 的 demo 底下的資料夾: /home/weilly/VisionSDK_S32V2_RTM_1_3_0_HF1/s32v234_sdk/demos/isp/isp_sonyimx224_csi_dcu 其中
build-v234ce-gnu-linux-d 為 S32V 編譯的路徑
build-x86-gnu-linux-d為 Linux 編譯的路徑
而我們需要進入 build-v234ce-gnu-linux-d 開啟終端機執行編譯,輸入以下指令
設定環境變數
執行編譯
執編譯完成後,即會生成可執行檔( .elf )檔案
|
四、 遠端使用 S32V234 操作範例程式
首先開啟伺服器連線工具,這裡選用PuTTY,接續利用 USB 將 S32V 與電腦連接,並開啟此工具。
設定以下頁面之連線 Port 後,即可開啟 (Open)。
評論