ZYNQ移植ARM CMSIS_DSP库

news2024/11/23 8:27:28

移植方法

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1123821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

古铜色的P1.2直径1.2米无边圆形(饼)创意LED显示屏绽放上海苏河湾万象天地展厅

我们公司的圆形LED显示屏是专门根据业主的独特需求开模定制的。为了满足各种不同的规格和要求,我们已经成功地对多个点间距与直径进行了精密的开模设计,且工艺技术成熟稳定,能够保证快速的交期。 这种圆形LED显示屏是通过独特的开模定制方式…

基础课6——计算机视觉

1.计算机视觉的概念与原理 1.1概念 计算机视觉(CV)是人工智能的一个重要发展领域,属于计算机科学的一个分支,它企图让计算机能像人类一样通过视觉来获取和理解信息。计算机视觉的应用非常广泛,包括但不限于图像识别、…

HIMA F3236 F7553 面向制造业的可视化人工智能

HIMA F3236 F7553 面向制造业的可视化人工智能 近年来,出现了一种分析高触摸制造的新解决方案:基于图像传感器数据的人工智能驱动分析。与时间和运动研究或Gemba Walks不同,分析从不停止,系统更不容易出现人为错误和偏差。 直到最近&#…

Vue3获取proxy对象的值而不是引用的方式

情景 vue3中定义一个响应式对象: let obj1 reactive({userName:"tom", age:5, hobby:{a:"av",b:"bv"}}); 打印obj1,结果为proxy对象 定义第二个响应式对象: let obj2 reactive({userName:"",ag…

2023年中国二手车交易行业发展历程及趋势分析:整体规模仍保持稳定增长[图]

二手车交易主要内容包括:二手车评估前期工作、技术状况鉴定、寄卖、置换业务、价格评估、交易实务。主要手续包括车务手续、车辆保养维修手续、税费手续。 二手车交易行业分类 资料来源:共研产业咨询(共研网) 未来,二…

PySide6/PyQt6宝典:新手问题一网打尽!

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 常用cmd命令📝 如何使用ui文件📝 主窗口如何调用其它窗口📝 后台执行任务(防止界面卡死)📝 信号与槽📝 如何停止循环任务📝 未完...⚓️ 相关链接 ⚓️💋💋💋💋💋💋📖 介绍 📖 本文

typeerror: Cannot read properties of null (reading ‘emitsOptions‘)报错原因及解决方法

可能导致的原因以及解决方法: 在父组件中子组件名称没有正确引入:检查组件名称和子组件是否正确定义props以及emit的使用在一个空值上去访问属性:可以使用可选链操作符(?)去检查对象是否为空v-if指令的判断…

零信任特权访问管理

零信任特权访问管理 (PAM) 是一个安全框架,它结合了基本的零信任原则来保护特权帐户和资源。它要求对尝试访问企业资源的所有用户进行持续验证和授权,以防止未经授权的访问。此强制过程可确保默认情况下永远不会信任用户和设备&am…

MacOS Mojave(苹果14系统) v10.14.6中文离线安装包

MacOS Mojave是一款先进的操作系统,它拥有诸多出色的特性。其中,夜间模式可以根据时间或用户设置自动切换,改变了UI、壁纸和窗口的样式,使界面在夜晚使用时更为舒适。另外,新的堆栈和群组功能让用户能更方便地分类和整…

【BigDecima】不可变的,任意精度的有符号十进制数。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ BigDecima BigDecima作用及原理 BigDecima作用…

经典卷积神经网络 - LeNet

该模型用于手写的数字识别。 LeNet模型包含了多个卷积层和池化层,以及最后的全连接层用于分类。其中,每个卷积层都包含了一个卷积操作和一个非线性激活函数,用于提取输入图像的特征。池化层则用于缩小特征图的尺寸,减少模型参数和…

Go运算操作符全解与实战:编写更高效的代码!

本文全面探讨了Go语言中的各类运算操作符,从基础的数学和位运算到逻辑和特殊运算符。文章在深入解析每一种运算操作符的工作原理、应用场景和注意事项,以帮助开发者编写更高效、健壮和可读的Go代码。 简介 Go语言,作为一种现代的编程语言&am…

Python实战小项目分享

Python实战小项目包括网络爬虫、数据分析和可视化、文本处理、图像处理、聊天机器人、任务管理工具、游戏开发和网络服务器等。这些项目提供了实际应用场景和问题解决思路,可以选择感兴趣的项目进行实践,加深对Python编程的理解和掌握。在实践过程中&…

CRM销售管理系统是如何进行数据分析的

数据分析可以帮助销售人员挖掘潜在问题,知晓哪些渠道可以带来更多的客户,为日常的销售工作提供科学依据。当然,要做好数据分析不是一件简单的事,利用好销售管理系统是关键。那么CRM销售管理系统是如何进行数据分析的呢&#xff1f…

TCP网络通信

package TCP1;//完成TCP通信的 实现发1收1import java.io.DataOutputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;public class Client {public static void main(String[] args)throws Ex…

计算属性和侦听属性以及方法有什么区别,本文以计算一个数组中所有偶数的和为例

计算属性(computed)是Vue中的一个特殊属性,它根据依赖的数据进行计算,并返回计算结果。计算属性的值会根据其相关依赖项的变化而自动更新,类似于一个响应式的缓存。计算属性可以用来处理一些复杂的逻辑计算,避免在模板中编写过多的…

asp.net网球馆计费管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net网球馆计费管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语 言开发 aspnet网球馆计费管理系统1 二、…

windows系统mysql服务启动失败

​ 原因 电脑重启navicat连接mysql失败,在电脑-管理-服务没有mysql服务 解决方案 找到mysql的安装目录进入bin目录 执行mysqld --install 进行重新安装 提示服务安装成功 net start mysql mysql 启动成功 ​

java编译时指定classpath

说明 Java编译时可以通过选项--class-path <path>&#xff0c;或者 -classpath <path>&#xff0c;或者-cp <path>来指定查找用户类文件、注释程序处理程序、或者源文件的位置。这个设置覆盖CLASSPATH环境变量的设置。如果没有设置-sourcepath&#xff0c;那…

【Gensim概念】01/3 NLP玩转 word2vec

第一部分 词法 一、说明 Gensim是一种Python库&#xff0c;用于从文档集合中提取语义主题、建立文档相似性模型和进行向量空间建模。它提供了一系列用于处理文本数据的算法和工具&#xff0c;包括主题建模、相似性计算、文本分类、聚类等。在人工智能和自然语言处理领域&…