移植方法
Vitis中新建一個Application Project,選擇HelloWord模板。按下面步驟移植CMSIS_DSP:
- 下載CMSIS_DSP,拷貝如下文件夾到Vitis工程:
- Source
- Include
- PrivateInclude
- ComputeLibrary (only if you target Neon)
- 對Source路徑下和文件夾同名的.c文件(如,BasicMathFunctions.c),設(shè)置為不編譯(右鍵Properties,Exclude resource from build),當(dāng)然直接刪除亦可。
- 設(shè)置頭文件目錄:
- 添加CMSIS頭文件依賴。從CMSIS下載
CMSIS_5/CMSIS/Core_A /Include/
路徑下的頭文件,拷貝到Include目錄。 - 鏈接math庫:
6. 添加編譯選項(xiàng)-mfpu=neon-vfpv4 -mcpu=cortex-a9 -mfloat-abi=hard
(注意空格)
這里使用-mfpu=neon-vfpv4
而不是-mfpu=neon
,詳見here和xapp1206文檔。7. 設(shè)置編譯宏,開啟NEON加速
8. 設(shè)置多線程編譯
DSP庫還是比較大的,單核編譯一次要挺久,可開啟多線程編譯。
測試
測試用例
使用DSP庫例子中的FFT例程來測試庫文件編譯的正確性。將arm_fft_bin_data.c
拷貝到src路徑,將arm_fft_bin_example_f32.c
的內(nèi)容移植到helloworld.c中。若正確執(zhí)行,將打印SUCCESS。
性能
不開啟NEON時,這個1024點(diǎn)FFT計(jì)算耗時49us,開啟NEON后,只需24us,快了近一倍。文章來源:http://www.zghlxwxcb.cn/news/detail-841416.html
參考文獻(xiàn)
Maybe Error: Multiple definition in DSP package #696
Multiple Definitions Error When Using CMSIS DSP Library with SSP 2.0.0
MicroZed Chronicles: NEON & SIMD
xilinx sdk(2017.4版)如何編譯neon的匯編指令,如vmul指令?謝謝!
Error Using Neon
vivado sdk添加頭文件文章來源地址http://www.zghlxwxcb.cn/news/detail-841416.html
到了這里,關(guān)于ZYNQ移植ARM CMSIS_DSP庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!