【ATU Book-S32V系列】 APU Kernel 建置方式

一.   概述

前文回顧,從上一篇 APU 資料型態 & 函式庫 ,介紹關於一些 APU 撰寫所需要用到的資料型態與函式。接下來,將很詳細介紹如何建置與編譯 APU Kernel ,並於 APU Kernel 內撰寫動作。如同下圖 “APEX 技術指南-文章架構示意圖” 所示,此次介紹章節為 “ APU Kernel 建置方式 “

 

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

若是對於 APEX 相關技術與知識尚未理解者,該篇文章難度略深,請從另一個系列的文章 “ APEX 基礎架構 ” 閱覽起。 

 

二.   APU Kernel 建置方式

1.   APU Kernel 建置說明

如下圖所示為 APU Kernel 配置示意圖,說明APU Kernel 架設位置為 /s32v234_sdk/kernels/apu 底下。可觀察圖中所標示的方框,其用意為…

(1) 橘色方框 :

可於 資料夾 build-apu-nxp-sa-d 內,使用 Makefile 與 的方式,透過專屬的 APU Compiler 進行編譯 生成可執行檔(需設置相關環境變數)。

(2) 綠色方框 :

可於 資料夾src 內,撰寫必要的四個原生 CPP 檔案 (  *_apu.cpp、 *_apu.h 、 *_acf.cpp、 *_acf.h  ),其中 * 星號為任意檔名。此部分也是 APU 描述撰寫動作的地方。

 (3) 藍色方框 :

BUILD.mk 檔案,主要是負責描述該與哪些檔案和資料庫進行編譯。

 

有關 ACF 相關將於後續介紹,APU 亦可單獨編譯與使用。


APU Kernel 配置示意圖

 

設計 APU Kernel 最主要是撰寫  *_apu.cpp  來描述整個 Kernel 的動作。撰寫完成後,需要撰寫修改 BUILD.mk  檔案,添加需編譯的檔案 以及 資料庫路徑(lib)。最後即可至 資料夾build-apu-nxp-sa-d 內開啟終端機,透過 Makefile 方式進行編譯。

即於終端機輸入 :

編譯 :

清除 : 

 

 

2.   APU Kernel 建置範例

依上一小節 APU Kernel 建置說明,即可開始建置 APU Kernel 。這裡建議一種更快速的方式,就是複製任何一個原廠的 APU Kernel 資料夾 ,並將資料夾內所有檔案刪去 (資料夾需保留),並留下兩個檔案 Makefile 與 BUILD.mk 。完成後即可開始撰寫或修改 CPP 檔案,來實現APU 的動作與編譯。內容如下 :


建議由 “apexcv_base_arithmetic” 資料夾更改起,這裡將資料夾名稱改成 “apexcv_APUkernel”,並撰寫 *_apu.cpp 與 *_apu.h 檔案。

 

撰寫 *_apu. h

 

撰寫 *_apu.cpp

 

以上兩個檔案修改完成後,就代表描述完成 APU 的動作 (程式內粗體字部分)。 此範例是將兩個矩陣作相加後取絕對值 !  其結果就如下圖展示一樣,整張影像將會變亮。 但描述完成 APU Kernel 的動作,尚未完成整個 APU Kernel 的建置。 還需要描述剩下的兩個 ACF 檔案,才算完整的 APU Kernel 建置。 至於要呈現結果,則需要配合 ACF 與 ACF Graph 去建置 APEX Kernel ,才能從 Application 層去使用此 Kernel 的效果 !

( 若是描述完成 APU Kernel 的動作 或者說撰寫完成以上兩個檔案,亦先前嘗試是否能成功編譯該程式 )

 


APU Kernel 建置方式示意圖

 

程式結果 :

 

因 ACF 是原廠設計與硬體溝通的軟體架構層,且須與 lib 層的程式進行配合,故將其獨立以一個篇幅來介紹。
沿著此篇的思路,將下一篇文章將會補齊建置 APU Kernel 的另一部分 “ACF 架構流程”, 建置 APU Kernel 方式就如同此篇文章所介紹的一致,僅須清楚地描述 ACF 的接口即可。敬請期待!!

 

三.  參考文件

[1] NXP Official website : https://www.nxp.com/
[2] VisionSDK_ProgrammingExamples.pdf
[3] VisionSDK_UserGuide.pdf
[4] VisionSDK_SUMat_UMat.pdf
[5] UG-10328-01-09_APEX-CV_Base_Library .pdf
[6] UG-10328-02-11_APEX-CV_Pro_Library.pdf
[7] UG-10267-03-14-ACF_User_Guide.pdf
[8] UG-10301-00-06_APU-2_C_Programmer_Guide pdf


如有任何相關 APEX 技術問題,歡迎至博文底下留言提問 !!
接下來還會分享更多 APEX 的技術文章 !!敬請期待 【 ATU Book-S32V系列 】 !!

 

 


 

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

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

評論