【ATU Book-S32V系列】APEX 搭建編譯環境

一.   概敘

前文回顧,從上一篇  APEX 基礎架構 說明 APEX 的架構、動作原理以及硬體加速的成因,讓各位對 APEX 的架構有基礎的認識。後續,將教導各位如何建立編譯環境,並開始編寫 APEX 的代碼。同時,這裡推薦一套強大的 編譯軟體 Visual Studio Code 來取代原廠所建議的 S32 Design Studio for Vision 編譯軟體。這軟體是由 微軟(MicroSoft) 所開發的免費軟體其功能類似 Visual Studio 但更為簡潔有力。此篇文章將介紹如何搭建最便利的 APEX 開發環境,以利於初學者開發 !! 如同下圖 “APEX 技術指南-文章架構示意圖” 所示,此次介紹章節為 “ APEX 搭建編譯環境
 


APEX 技術指南-文章架構示意圖

 

二.   APEX 搭建編譯環境

搭建 APEX 的編譯環境分可為三個步驟,分別為 下載與安裝 Vision SDK Software 與 Visual Studio Code 來建置編譯開發環境,最後再利用 MakeFile 進行編譯即可生成 執行檔(elf) 。後續再將執行檔送至 S32V234 系統中即可執行 !!

步驟一 : 下載與安裝 Vision SDK Software (REV 1.3.0)

搭建編譯環境前,必須至 NXP 官方網站下載 Vision SDK 簡稱 VSDK。也就是一個專門為 S32V234 所設計的軟體開發套件,裡面提供許多原廠發布的資源與代碼提供給我們作運用。以下將介紹如何下載以及安裝。

(a). 下載 Vision SDK Software (REV 1.3.0) :  點選官網、註冊會員並下載VSDK

點選下載後,將進入至 NXP 下載頁面點選 Automotive SW - Vision Software -> Previous -> SW32V23-VSDK001-RTM-1.3.0 並挑選 VisionSDK RTM 1.3.0 HF1 installer for Linux host 進行下載。

 

 *目前開發環境為 VSDK 1.3.0 HF 搭配 BSP 19 版

 

(b). 安裝 VisionSDK_S32V2_RTM_1_3_0_HF1  :

 開啟終端機 輸入 ./ VisionSDK_S32V2_RTM_1_3_0_HF1.bin 即可安裝。

*須使用公司信箱註冊會員,Linsence相關資訊則會寄送至你的註冊電子郵箱中。

(c). 設置 VisionSDK_S32V2_RTM_1_3_0_HF1 環境 :

開啟終端機設置 APU與 SDK Compiler 環境變數輸入以下指令
(1). 修改 Bash 設置檔 :


(2). 設置 APU / VSDK 環境變數 :

(3). 更新 Bash 設置檔 :



設置 APU / VSDK環境變數之示意圖

 

(4). 進入 VSDK 資料夾 :

(5). 更新 VSDK Compiler 環境變數 :

(6). 添加 VSDK Compiler 環境變數 :

*亦可如上步驟,將此環境變數加入至 Bash 設置檔。

設置 APU / VSDK環境變數之示意圖

 

步驟二 : 下載與安裝 Visual Studio Code

下載與安裝 VSDK 完成後,將介紹 Visual Studio Code 的下載與安裝,由於 VSCode 就像是一個空白簡潔的編譯軟體,因此許多套件是需要自行添加或設計,這裡將會建議初學者基本與常用的安裝套件 (微軟提供),只要以點選方式即可下載安裝至你的 VSCode 中,以及介紹如何設定配置檔等等,以方便使用者可以 快速瀏覽程式 與直接編譯程式等等功能。

(a). 下載 Visual Studio Code: 點選官網下載 VSCode


 

(b). 安裝 Visual Studio Code (Linux)

這裡建議安裝於 Linux 上進行開發,下載安裝檔後需 開啟終端機 執行以下指令 :


輸入以下指令,即可開啟 VSCode


VSCode 軟體示意圖


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

VSCode 延伸模組搜尋處之示意圖 


(d). 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 配置檔更改處之示意圖

(e). Visual Studio Code 開啟方式

除上述的方式之外,也可以直接點擊欲開啟的資料夾  按下右鍵 -> 其他方式開啟 - > Visual Studio Code  就可以直接開啟 VSCode 並能直接瀏覽代碼! 點擊代碼右鍵會看到 移至定義、移至宣告、前往參考、查看 等等功能這就是 VSCode 最方便的地方!! 也就是此篇文章推薦之處!


VSCode 快速開啟之示意圖

步驟三 : 利用 MakeFile 進行編譯

除了使用 VSCode 瀏覽代碼外 ,這裡亦建議利用 Make File的方式編譯代碼以取代 VSCode 繁雜的配置檔撰寫,僅需要利用或修改原廠所撰寫的 BUILD.mk 檔即可開始編譯 !
以 VSDK 內的原生範例程式做說明,如下圖所示,通常主要程式會放置於 資料夾 src 中,標頭檔則放置於 資料夾include,所生成的程式存放於 資料夾build-v234-gnu-linux-d 之中,欲想新建一支程式或專案僅須依照原廠的模式,將檔案撰寫於該位置並修改 BUILD.mk檔案,即可開始建立新的專案。
*此範例程式路徑為 <VSDK安裝位置> /s32v234_sdk/demos/isp/isp_sonyimx224_csi_dcu 底下。

VSDK Demo範例所在處之示意圖

(a). 修改 BUILD.mk 檔案

BUILD.mk 為編譯設定檔 專門用於描述 MakeFile 的編譯路徑,若想添加 標頭檔(include)靜態與動態函式庫 的路徑,請依照以下提供參考範例進行修改。如同 ARM_APP 為描述專案的名稱、 ISP_GRAPH 為描述 ISP Graph 的名稱、 ARM_APP_SRCS 為描述程式檔(.cpp) 、ARM_INCS 為描述標頭檔資料庫(.h) 、 ARM_APP_LIBS 為描述靜態連結庫(.a) 、 ARM_LDOPTS 為描述動態連結庫(.so) 。
*第一次操作建議先直接進行編譯,不修改原廠 Demo 為主!!
1. 更改專案名稱 之處

2. 添加 程式檔(cpp) 之處

3. 添加 標頭檔資料庫(include) 之處

4. 添加 靜態與動態連結庫(Lib) 之處



比如說 … 若想要添加新的標頭檔路徑,僅要於 ARM_INCS 的段落後方,加入該路徑即可進行編譯 !!

(b). 進行編譯

如同以下步驟,以原廠範例 (例如 isp_sonyimx224_csi_dcu 此範例) 作為範例故暫不修改為主,確保可以成功執行範例。首先須進入至你的專案目錄, 並於 資料夾 build-v234-gnu-linux-d 開啟終端機,並輸入以下指令

- 建置環境變數

*環境變數須指定到相對應的位置

- 執行編譯

執編譯完成後,即會生成 執行檔( .elf ) 檔案


執行檔所在處之示意圖

*此編譯方式竟可能於資料夾 demos 底下操作,若於他處需重新定義環境變數


(c).遠端使用 S32V234 操作範例程式

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

Putty 設置示意圖

接續開啟 S32V 即會顯示開機訊息,並輸入 root 登錄主機。如以下訊息


Root 登入示意圖

 

利用 ifconfig 指令取得 S32V 開發版的網路位置後,就可利用 SCP 指令將執行檔傳送至 S32V 平台中


傳送完畢後,回到遠端終端機檢查是否有回傳成功,若有即可執行該程式。
(請使用 Sony imx224 鏡頭,反則無法顯示成功)。



以下為執行成功後的結果。


執行範例之示意圖

 

藉由以上所介紹的搭建 APEX 開發環境方式,僅要正確的添加資料庫路徑,編譯程式應該是沒有太大的問題!! 就可以開始編譯屬於自己的 APEX 程式!! 此外還可以多多閱覽 原廠資料夾s32v234_sdk/demos/apps 裡面的範例,這會有很大的幫助!!

三.   參考文件

[1] NXP Official website : https://www.nxp.com/
[
2] VSCode Official website : https://code.visualstudio.com/
[3] VisionSDK_ProgrammingExamples.pdf
[4] VisionSDK_UserGuide.pdf

      接下來還會分享更多 APEX 的技術文章 ! 敬請期待 【 ATU Book-S32V系列 】 !!
      大聯大旗下世平集團 ATU 部門可以提供相關設計方案,需要請聯繫 atu.cn@wpi-group.com


 

相關影片

【ATU Book-S32V系列】 APEX 搭建編譯環境

介紹 NXP S32V234 是如何搭建 APEX 的編譯環境

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

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

評論