ZYNQ移植ARM CMSIS

编程入门 行业动态 更新时间:2024-10-25 08:16:10

<a href=https://www.elefans.com/category/jswz/34/1764298.html style=ZYNQ移植ARM CMSIS"/>

ZYNQ移植ARM CMSIS

移植方法

Vitis中新建一个Application Project,选择HelloWord模板。按下面步骤移植CMSIS_DSP:

  1. 下载CMSIS_DSP,拷贝如下文件夹到Vitis工程:
    • Source
    • Include
    • PrivateInclude
    • ComputeLibrary (only if you target Neon)
  2. 对Source路径下和文件夹同名的.c文件(如,BasicMathFunctions.c),设置为不编译(右键Properties,Exclude resource from build),当然直接删除亦可。
  3. 设置头文件目录:
  4. 添加CMSIS头文件依赖。从CMSIS下载CMSIS_5/CMSIS/Core_A /Include/路径下的头文件,拷贝到Include目录。
  5. 链接math库:

    6. 添加编译选项
    -mfpu=neon-vfpv4 -mcpu=cortex-a9 -mfloat-abi=hard 注意这里使用-mfpu=neon-vfpv4而不是-mfpu=neon,详见here和xapp1206文档。
    7. 设置编译宏,开启NEON加速
    8. 设置多线程编译
    DSP库还是比较大的,单核编译一次要挺久,可开启多线程编译。

测试

测试用例
使用DSP库例子中的FFT例程来测试库文件编译的正确性。将arm_fft_bin_data.c拷贝到src路径,将arm_fft_bin_example_f32.c的内容移植到helloworld.c中。若正确执行,将打印SUCCESS。
性能
不开启NEON时,这个1024点FFT计算耗时49us,开启NEON后,只需24us,快了近一倍。

参考文献

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添加头文件

更多推荐

ZYNQ移植ARM CMSIS

本文发布于:2023-12-04 16:29:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661527.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ZYNQ   ARM   CMSIS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!