怎樣將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,然後進行測試。
相關文章
- ffmpeg在移植到海思HI35xx平臺之將ffmpeg庫引入到sample的demo中
- 上海一公司需要將原系統移植到Websphere平臺Web
- ubuntu移植到嵌入式平臺Ubuntu
- Charilaos Kalogirou:分享將iOS遊戲移植到Android平臺的注意要點iOS遊戲Android
- 手把手教您將libreoffice移植到函式計算平臺函式
- RestCloud ETL平臺是怎樣的?RESTCloud
- 知名安卓模擬器將支援手遊移植Steam平臺安卓
- 怎樣將SQL Azure資料庫備份到本地或者StorageSQL資料庫
- 怎樣搭建大資料平臺大資料
- rman將linux平臺資料庫遷移到window平臺資料庫Linux資料庫
- 將 Win32 程式移植到 LinuxWin32Linux
- Steve Yegge 將 Rails 移植到 Javascript/RhinoAIJavaScript
- 從linux平臺移值資料庫到windows平臺Linux資料庫Windows
- 微軟Win10計算器已被移植到Android/iOS/Web平臺微軟Win10AndroidiOSWeb
- Cocos2dx 3.0rc 建立工程 並 移植到其他平臺
- Nginx怎樣將HTTP重定向到HTTPSNginxHTTP
- 大資料分析平臺具備怎樣的功能大資料
- Java如何實現跨平臺?原理是怎樣的?Java
- 怎樣使用NLPIR平臺進行文字分析
- OpenCV開發筆記(七十四):OpenCV+ffmpeg交叉編譯移植到海思平臺Hi35xx平臺OpenCV筆記編譯
- 如何將 Google Auto Draw 移植到小程式上Go
- 探索將scratch3移植到樹莓派樹莓派
- Cornfox & Bros.如何將手遊移植到SwitchROS
- odps平臺將資料匯入到hdfs
- 關於WINDOWS平臺下RMAN備份移植Windows
- 資料移植到Oracle資料庫(一)Oracle資料庫
- ATFX:安全的投資平臺,需要滿足怎麼樣的要求
- 將死的平臺:.Net
- 物聯網路卡平臺該怎樣選擇
- 獨佔時代或將結束,跨平臺時代即將到來?
- OpenCV開發筆記(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉編譯移植到海思平臺Hi35xx平臺OpenCV筆記編譯
- zedboard的demo評測Zed
- pentaho7.0將資料庫移植成mysql資料庫MySql
- 利用rman來實現linux平臺資料庫複製到windows平臺資料庫Linux資料庫Windows
- jsoncpp linux平臺編譯和arm移植JSONLinux編譯
- 智慧數字經營平臺怎樣搭建才合理?
- 網付收款碼推廣代理平臺怎麼樣?
- 國外直播平臺Twitch是怎樣盈利模式模式