[ APEX ] 使用 Visual Studio Code 搭建 S32V234 編譯環境

一、  緣由

原廠 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 :
 *須使用公司信箱註冊會員,Linsence相關資訊則會寄送至你的註冊電子郵箱中。



                                                                                   圖文出處 : NXP網站 

 

  點選下載後,將進入至nxp下載頁面挑選 VisionSDK RTM 1.3.0 HF1 installer for Linux host 


                                                               圖文出處 : NXP網站 



(2)安裝VisionSDK_S32V2_RTM_1_3_0_HF1 :


                                             圖文出處 : NXP 網站 



若有關 Linsence 問題,請點選該頁面的網址進行啟用。


                                             圖文出處 : NXP 網站


安裝完成後,即可使用vsdk進行編譯。


        b. 下載與安裝 Visual Studio Code

 (1) 下載與安裝 Visual Studio Code

 請至微軟網站下載 Visual Studio Code安裝檔(.deb) 並選擇Linux Ubuntu的版本。
 
                                                                             圖文出處 : Microsoft 網站 


輸入以下指令,開始安裝Visual Studio Code。


完成安裝後,請輸入以下指令開啟Visual Studio Code。



                                                                 圖文出處 : 實際操作 VSCode 畫面  

 (2) Visual Studio Code 安裝套件方法

 點擊左側 “延伸模組” 搜尋 "c/c++"後,即可安裝 VScode 主要的 c/c++ 套件。
 此外VScode許多開放套件,比如說Project Manager套件可以幫助專案管理以及Bracket Pair Colorizer套件將代碼的顏色標示的更清楚。



                                                                   圖文出處 : 實際操作 VSCode 畫面 

 

展示Bracket Pair Colorizer 的效果


                                                                        圖文出處 : 實際操作 VSCode 畫面 

 (3) Visual Studio Code 配置檔設定

 Visual Studio Code 的配置檔 (.json) 基本上需要配置三種文件。 
 1.  c_cpp_properties.jsonf : 主要設定來源檔案路徑
 2.  launch.json:主要設定編譯的平台
 3.  tasks.json : 主要設定編譯的指令與方式

 但對於初學者要利用VScode去編譯整個S32V的範例頗有難度的,因此我們只利用c_cpp_properties.json去設定includePath讓我們可以快速瀏覽代碼。


                                                                    圖文出處 : 實際操作 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)。
 以下將提供參考範例 (下方範例僅用於說明,裡面添加之處皆可重新修改,如 ARM_APP 即可改為自己定義的名稱。)

 1.  更改輸出的執行檔名(.elf)




 

 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 操作範例程式

生成可執行檔 ( .elf ) 後,我們利用遠端將程式碼傳送至 S32V 的平台。
首先開啟伺服器連線工具,這裡選用PuTTY,接續利用 USB 將 S32V 與電腦連接,並開啟此工具。
設定以下頁面之連線 Port 後,即可開啟 (Open)。


同時亦可開啟 S32V 即會顯示開機訊息,並輸入 root 登錄主機。
若所使用的 S32V 尚未架設 BSP ,請參照 S32V Yocto BSP19 VSDK1 3 0 環境架設與編譯 Hands On
 
 
並於 Putty 遠端終端機輸入以下指令,讀取 S32V 的網路位置。
 
 

接續於 Linux OS 利用 SCP 指令將執行檔傳送至 S32V 平台中
 
 
傳送完畢後,回到遠端終端機檢查是否有回傳成功,若有即可執行該程式。
(若需驗證此範例,請使用 Sony imx224 攝像頭或是鏡頭,反則無法顯示成功)。
 
 
以下為執行成功後的結果。
 
 
亦可利用 SCP 指令將執行檔傳送至回電腦主機中 ( windows 需使用命令提示字元執行)

 

 

 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論