怎樣將Xilinx的xfOpenCV庫移植到ZedBoard平臺
xfOpenCV 是Xilinx針對Opencv做的一個加速庫,目前只在支援reVISION的ZCU102平臺上做過評估,哪假如其他平臺想要使用這個庫,我們應該怎麼做呢?下面以ZedBoard為例來細說這個過程,由於我的系統是Linux,所以這裡主要以命令列的方式來操作。
1、 正確安裝Xilinx2017.1,詳細過程這裡不再贅述
2、下載zcu102_es2_reVISION包,並解壓到相應工作目錄下,開啟命令列輸入命令:
export SYSROOT= ${zcu102_es2_reVISION_path}/sw/aarch64-linux-gnu/sysroot
3、下載xfOpencv庫,輸入命令:
git clone https://github.com/Xilinx/xfopencv.git
4、進入xfopencv/examples目錄:cd xfopencv/examples ,該目錄的每一個資料夾都是一個加速示例,部分如下所示:
5、進入其中一個示例,如: cd accumulate,該目錄檔案結構如下所示:
6、修改Makefile檔案,把變數PLATFORM修改成 PLATFORM = zed ,儲存修改
7、輸入命令:make
如果出現“/bin/sh: 1: sds++: not found” 這個錯誤,說明沒有把sds++這個命令加入到環境變數中,手動加一下即可,如:source ${your_xilinx2017.1_path}/sdsoc/SDx/2017.1/settings64.sh 。
如果出現“zcu102_es2_reVISION/sw/aarch64-linux-gnu/sysroot/usr/lib/crt1.o: file not recognized: 不可識別的檔案格式” 錯誤,說明平臺是不相容的,因為zcu102的arm處理器是Cortex-A53,64位架構,而ZedBoard的arm處理器是Cortex-A9,32位架構,所以需要把${zcu102_es2_reVISION_path}/sw/aarch64-linux-gnu/sysroot/usr/lib/ 和 ${zcu102_es2_reVISION_path}/sw/aarch64-linux-gnu/sysroot/usr/lib下所需要用到的庫換成32版本的即可。簡單做法如下:
1)cd ${zcu102_es2_reVISION_path}/sw/aarch64-linux-gnu/sysroot/
2)cp -r lib lib64 ; cd lib
3)cp -r {yout_xilinx2017.1_path}/sdsoc/SDx/2017.1/SDK/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/libc/lib* .
4)cd ../usr
5)cp -r lib lib64 ; cd lib
6)cp -r {yout_xilinx2017.1_path}/sdsoc/SDx/2017.1/SDK/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/libc/usr/lib* .
7)opencv相應的動態連結庫也是64位,因此需要手動生成32位版本的,具體做法參考 http://blog.csdn.net/luotuo44/article/details/8958990
8)將opencv重新生成32位的動態連結庫copy過來即可
做完上述修改之後重新編譯即可,有個問題需要注意的是,在Makefile檔案中,LLIBS變數指定很多連結庫(所有示例中這個變數的值都一樣,估計是為了偷懶),如“LLIBS = -lopencv_imgcodecs -lopencv_core -llzma -ltiff -lpng16 -lz -ljpeg -lopencv_imgproc -ldl -lrt -lwebp -lopencv_features2d -lopencv_flann ” ,但在本示例中“LLIBS= -lopencv_core -lopencv_imgproc -lopencv_imgcodecs -ldl ” 即可 ,這樣可以不用將其他一些不需要的庫都轉成32位的才能通過編譯。
8、將生成的sd_card的所有檔案和相關的動態連結庫拷貝到sdcard,然後進行測試。
相關文章
- 將 C++程式移植到 Android 平臺C++Android
- ffmpeg在移植到海思HI35xx平臺之將ffmpeg庫引入到sample的demo中
- ubuntu移植到嵌入式平臺Ubuntu
- 手把手教您將libreoffice移植到函式計算平臺函式
- DHCP移植到瑞芯微RK356x平臺
- RestCloud ETL平臺是怎樣的?RESTCloud
- 知名安卓模擬器將支援手遊移植Steam平臺安卓
- 怎樣搭建大資料平臺大資料
- Nginx怎樣將HTTP重定向到HTTPSNginxHTTP
- Parquet.Net: 將 Apache Parquet 移植到 .NETApache
- 微軟Win10計算器已被移植到Android/iOS/Web平臺微軟Win10AndroidiOSWeb
- odps平臺將資料匯入到hdfs
- Cornfox & Bros.如何將手遊移植到SwitchROS
- 探索將scratch3移植到樹莓派樹莓派
- 如何將 Google Auto Draw 移植到小程式上Go
- 大資料分析平臺具備怎樣的功能大資料
- Java如何實現跨平臺?原理是怎樣的?Java
- 怎樣使用NLPIR平臺進行文字分析
- pentaho7.0將資料庫移植成mysql資料庫MySql
- OpenCV開發筆記(七十四):OpenCV+ffmpeg交叉編譯移植到海思平臺Hi35xx平臺OpenCV筆記編譯
- minigui5.0.2移植到mips平臺多程式模式執行mginit:Can not create task barGUI模式
- 物聯網路卡平臺該怎樣選擇
- 【STM32F429】第12章 GUIX Studio生成程式碼移植到硬體平臺GUI
- OpenCV開發筆記(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉編譯移植到海思平臺Hi35xx平臺OpenCV筆記編譯
- 將30K行Flow程式碼移植到TypeScript - davidgomTypeScriptGo
- 如何將三萬行程式碼從Flow移植到TypeScript?行程TypeScript
- ATFX:安全的投資平臺,需要滿足怎麼樣的要求
- 網付收款碼推廣代理平臺怎麼樣?
- 華納娛樂平臺怎麼樣? ,q-1503964774
- 智慧數字經營平臺怎樣搭建才合理?
- 將SpringBoot應用Docker化並部署到SAP雲平臺Spring BootDocker
- 一個優秀的Push平臺,需要經歷怎樣的前世今生
- 獨佔時代或將結束,跨平臺時代即將到來?
- 網際網路公司無線接入平臺怎麼樣
- FFmpeg開發筆記(十):ffmpeg在ubuntu上的交叉編譯移植到海思HI35xx平臺筆記Ubuntu編譯
- mplayer 移植到 arm 心得
- 將Java應用部署到SAP雲平臺neo環境的兩種方式Java
- 三星為其基於 RISC-V的 Tizen平臺移植.NET
- 移植 Python 量化交易 TA-Lib 庫到函式計算Python函式