开发者分享 | 10行代码轻松在ZYNQ MP上实现图像识别
judy 在 周四, 09/30/2021 - 11:19 提交
如今各种机器学习框架的普及使得个人搭建和训练一个机器学习模型越来越容易。然而现实中大量的机器学习模型训练完后需要在边缘端部署,那么我们看看借助Xilinx Vitis-AI工具,如何仅仅使用10行代码,就能在ZYNQ MP器件上部署深度学习模型实现图像分类。
如今各种机器学习框架的普及使得个人搭建和训练一个机器学习模型越来越容易。然而现实中大量的机器学习模型训练完后需要在边缘端部署,那么我们看看借助Xilinx Vitis-AI工具,如何仅仅使用10行代码,就能在ZYNQ MP器件上部署深度学习模型实现图像分类。
Linux中USB驱动程序依然遵循标准的设备驱动模型——总线、设备、驱动。和I2C总线设备驱动一样,所有的USB驱动程序都必须创建的主要结构体是struct usb_driver,它们向USB核心代码描述了USB驱动程序,但这只是外壳,只实现了设备与总线的挂接,具体的USB设备是什么,如何实现,还需要编写相应的文件操作接口。本文详细介绍USB的驱动框架。
通用串行总线(Universal Serial Bus)是连接计算机系统与外部设备的一种串行总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通信产品。USB总线是最复杂的总线之一,但其广泛使用。本文首先直接使用USB相关的驱动的应用,后面再具体开始编程做自己的USB驱动程序。
本文简要介绍CAN总线协议,以Linux驱动CAN网络为重点介绍。
在虚拟机中的ubuntu中开发linux系统驱动程序,往往直接使用gedit编辑,makefile编译,而这种方法比较麻烦;Eclipse是开源软件框架,编辑器比较好用,配置好编译器后可以更加方便快捷的开发程序,本文介绍如何使用Eclipse开发Linux的驱动程序。
经过前面的实验,我们已经基本摸清楚了Vitis IDE & Vivado的使用方法。在开始构建DPU与深度学习软件栈之前,我们先对我们拿到的开发板做个体检(硬件全面测试),由于大部分深度学习软件框架都是运行在Linux, android或IOS等嵌入式系统上,因此测试完硬件后还需要搭建一个Linux系统以供后续开发使用。
美国迪芝伦科技有限公司(Digilent)生产开发板和套件以及各种测试测量工具,借助便携式仪器的灵活性,为工程师、研究人员和学生提供专业级的分析能力。作为赛灵思技术的长期用户,该公司继续采用赛灵思 SoC 和 FPGA 器件,开发出两款功能强大的新型测试测量设备,为客户带来更高性能、更低成本和更强的灵活性。
ElectroKnox 需要为前沿汽车应用、服务和安全建立通用且强大的基础。该公司的 SGW1000 汽车智能网关解决方案是一种基于赛灵思 Zynq UltraScale+ MPSoC 平台的软硬件统一平台解决方案。该方案支持 OEM 厂商快速在软件中开发功能,并缩短上市进程,让“软件定义汽车”的理念进一步贴近现实。
在使用ZYNQ进行开发设计时,往往需要对一些GPIO引脚进行配置,传统的配置方法通常在PL端进行管脚约束之后在Verilog代码中对相应引脚进行配置。这样如果开发过程中一旦有需要对管脚配置进行修改的话,那么就必须重新进行综合、布局布线、生成比特流文件,如果设计工程相对复杂的话,完成整个过程通常需要相当长一段时间。影响开发效率。
ZYNQ中的AXI接口包含三个类型,共9个,主要用于PS与PL的互联。今天我们重点来说一下ACP接口。