一. 概述
前文回顧,從上一篇 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系列 】 !!
評論