FPGA和USB3.0通信-硬件测试(一)SDK的安装
本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计,主需要使用状态机进行FIFO的读写控制即可,同时该芯片还具有ARM核+I2S、I2C、SPI、UART等接口,大大增加了该芯片的使用范围。
SDK的安装这里先简单介绍一下SDK,我们经常能看到SDK这个名词,很多人认为这就是一个软件的代名词,但是具体的意义你理解吗?
SDK(Soft Development Kit)-软件开发工具包。
这里只说我的理解,首先SDK是一个很宽泛的定义,在每个领域都不一样,像在“纯“软件领域:这个定义需要结合API去理解(详细定义见附录);而我们使用的多是嵌入式领域,这种SDK多是一些芯片厂商提供,里面包含了常规、自己适配的驱动程序的软件开发包(即SDK)。所以现今阶段一个芯片的好用与不好用,硬实力是一方面,软实力也是很重要的一方面。
而FX3的软件(固件)开发包就是CYPRESS提供的SDK,里面包含了底层相关驱动,上层的DEMO等等有利于开发者快速开发的软件集合。(试想一下,如果没有SDK,厂家会提供给你寄存器手册,你需要怎么开发FX3,开发周期如何?)
下面开始我们的正题:
1、下载FX3 SDK可以直接通过CYPRESS官网网址,找到相关软件和说明文档:
❝
https://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit
❞PS:下载需要注册,登录。
百度云链接(1.3.3版本,验证无问题):
链接:https://pan.baidu.com/s/1Dt87bA8Snlcxy4AsYxB5ZQ
提取码:open
2、安装双击下载下来的《FX3DVKSetup_revXX.exe》,进入安装界面。
建议使用默认C盘安装目录,不要修改。点击【Next】。
安装过程出现上图中的界面,默认配置即可。点击【Next】。
接下来连续四次接受(I accept)就可以了(不接受就不让你安装了)。
安装完成页面,见到下图就大功告成了。
附录 SDK是什么
其实很简单,SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。
这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。
软件开发工具包 (SDK) 是由硬件和软件供应商提供的一组软件工具和程序,开发人员可以使用它们为特定平台构建应用程序。这些供应商提供他们的 SDK,以帮助开发人员轻松地将他们的应用程序与他们的服务集成。
为了使用 SDK,开发人员需要一个用于构建 iOS 应用程序的iOS SDK、用于构建 Android 应用程序的Android工具包、用于构建蓝牙或无线应用程序的 Nordic SDK 以及用于与 VMware 平台集成的VMware SDK。
尽管 SDK 主要与原生移动应用程序相关联,但开发人员可以将它们与网站、机顶盒和其他数字平台结合使用。
SDK 包括文档、应用程序编程接口 ( API )、代码示例、库和流程,以及开发人员可以使用并集成到他们的应用程序中的指南。开发人员可以使用 SDK 来构建和维护应用程序,而无需从头开始编写所有内容。
更具体地说,SDK 包括:
库或 API - 预定义的代码片段,可让开发人员在平台上执行常见的编程任务。
集成开发环境 ( IDE ) – 一种可视化编辑器,可帮助开发人员设计和布局图形元素,例如文本框和按钮。这些在移动软件开发工具包中很常见。例如,Apple 的 IDE Xcode 包含一套软件开发工具,可帮助开发人员为 macOS、iOS、iPadOS、watchOS 和 tvOS 构建软件。Android 有许多 IDE 选项。
帮助开发人员完成调试、构建、运行和测试应用程序等任务的工具。
SDK 使开发人员能够通过更多功能增强应用程序,并让它们包含推送通知、广告等。SDK 还可以帮助开发人员更有效地创建新工具并简化流程,因为一切都是预先构建的。
例如,如果开发人员想将其应用程序中的图像或文本直接分享到 Facebook,他或她可以查找 Facebook 的 Android SDK 以找到适用于 Android 设备的必要代码。这加快了部署速度,因为开发人员不必从头开始编写代码。
「为什么要使用 SDK」
软件开发工具包允许开发人员为其应用程序添加功能,并使他们能够更轻松、更快速地构建应用程序的标准组件。SDK 通常是一体化产品,不需要与其他组件集成,这会减慢开发过程。
通常,开发人员使用 SDK 来实现简单的功能,例如登录、位置服务和移动支付。但是,也有一些 SDK 可以帮助开发人员构建更复杂的应用程序功能,例如增强现实 ( AR ) 和虚拟现实 (VR)。SDK 通过简化标准流程来减少复杂的集成,例如使用本地语言或平台创建授权签名或解释 SMS 消息。
「SDK 和 API 的区别」
API 是使两个软件程序能够相互通信的代码。API 定义了开发人员从操作系统或其他应用程序请求服务并在不同上下文中跨多个渠道公开数据的正确方式。
当开发人员使用 SDK 开发应用程序和创建系统时,这些应用程序必须与其他应用程序通信。SDK 包含一个 API 来启用该通信。
其他差异包括:
SDK 通常包含 API,但 API 不包含 SDK。
尽管 API 可用于通信,但不能用于创建新应用程序。
SDK 允许开发人员创建应用程序并充当软件产品的构建块。
API 允许应用程序在与其捆绑的 SDK 参数范围内运行。API 是实现两个独立应用程序之间明确定义的通信的代码。
SDK 是为特定目的而创建的工具和代码组件,而 API 只是服务的接口。
「开发 Windows 平台下的应用程序所使用的 SDK」
上面只是一个总体概念,下面以一个Windows下的SDK举例。
“API”,也就是 Application Programming Interface,实际上,它是操作系统留给应用程序的调用接口。应用程序通过调用操作系统的API使操作系统执行应用程序的命令(操作)。在windows中,系统API以函数调用的形式提供。获取操作系统的版本号也是一样的,在windows中,只需调用getversionex()函数。
要说明白这个问题就不得不引入我们下面要介绍得这个概念——DLL。
DLL,即 Dynamic Link Library(动态链接库)。我们经常看到一些.DLL文件。这些文件是动态链接库文件。事实上,它们也是一种可执行文件格式。不像Exe文件,.DLL文件不能直接执行。它们通常是由用户输入的.Exe时执行,并包含一些资源和可执行代码。实际上,windows的三个模块是以DLL(kernel32.DLL、user32.DLL和gdi32.DLL)的形式提供的,其中包含API函数的执行代码。为了在DLL中使用API函数,我们必须有API函数声明(.H)及其导入库(.LIB)。
因此,为了使用API函数,我们需要有.H和与API相对应的Lib文件,SDK提供了一整套用于开发Windows应用程序的相关文件、示例和工具。到目前为止,我们已经真正解释了SDK的含义。
游戏中就有很多sdk工具包,可以开发mod。
以上部分内容参考链接(重新整理):
1、https://whatis.techtarget.com/definition/software-developers-kit-SDK
2、https://www.zhihu.com/question/21691705
3、https://www.ibm.com/cloud/blog/sdk-vs-api
编辑:jq
全部0条评论
快来发表一下你的评论吧 !