侵权投诉

如何导出IP以供在Vivado Design Suite中使用?

FPGA开发圈 2021-04-26 17:32 次阅读

在 AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介中,使用 C 语言在 HLS 中创建包含 AXI4-Lite 接口的 IP。

在本篇博文中,我们将学习如何导出 IP 以供在 Vivado Design Suite 中使用、如何将其连接到其它 IP 核与处理器以及如何在板上运行工程。

本篇博文将分为 3 个部分:

1. 从 Vitis HLS 导出 IP。

2. 使用Vivado Design Suite创建硬件。

3. 在Vitis 统一软件平台中编写软件并在板上运行。

01

导出 IP

在AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介中,我们创建了 1 个包含 AXI4-Lite 接口的 IP。如果要把新 IP 连接到任何其它 IP 或者连接到 PS,则首先需要将软件代码综合成 RTL(即,将其转换为硬件)。随后,我们就可以将 RTL IP 导出到 Vivado Design Suite,以便在其中将其连接到其它 IP 核或者连接到 PS。

1.1. 按如下所示编辑代码,然后保存。

int example(char *a, char *b, char *c)

{

#pragma HLS INTERFACE s_axilite port=a bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=b bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=c bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=return bundle=BUS_A

*c += *a + *b;

int result = 0;

result = *c;

return result;

}

1.2. 鉴于我们将在板上运行此代码,因此需要将综合设置更改为对应于可用的开发板的设置。

我这里选择的是 Zynq UltraScale+ ZCU106 评估板。要更改所使用的开发板,请转至“解决方案 (Solution) -》 解决方案设置 (Solution Settings) -》 综合设置 (Synthesis Settings)”,然后选择如下所示高亮的“。..”即可选择可用的开发板。

1.3. 选择屏幕顶部的绿色运行按钮 即可运行 C 语言综合。这样即可将代码转换为 RTL:

1.4. 完成综合后,您可选择“导出 RTL (ExportRTL)”工具栏按钮,或者也可以单击“解决方案 (Solution) -》 导出 RTL (Export RTL)”以打开“Export RTL”对话框。

1.5. 打开的对话框应如下截屏所示。

本文包含有关所有可用选项的详细解释。

选择“配置 (configuration)”选项,为新 RTL IP 添加详细信息。将显示名称更改为“Example”,然后选择“确定 (OK)”。当您在 Vivado Design Suite 中打开自己的 IP 时,将显示此名称。

选择“浏览 (Browse)”按钮以选择 Vivado IP (.zip) 文件的输出位置及其名称。输出的 ZIP 文件将包含您的 RTL IP,您可将其导入 Vivado Design Suite。

1.6. 等待工具完成导出,然后打开 Vivado Design Suite。选择“创建新工程”选项:

1.7. 对于后续所有其它步骤,请选择“下一步 (Next)”。选择器件时,请务必选择您在创建工程时所选的器件。如果您不确定,可在 Vitis HLS 中的“解决方案设置 (solution settings) -》 综合设置 (synthesis settings)”下找到该器件。如果您选择其它器件,那么将您的 IP 导入 Vivado Design Suite 时可能会出现问题。

最后,选择“完成 (Finish)”以打开空工程。

1.8. 要使用 Vivado 工程中生成的 IP,首先必须将新 IP 存储库添加到 Vivado 工程中。此处所示文件夹包含从 Vitis HLS 导出的 .zip 文件。要添加存储库,请选择“设置 (Settings) -》 IP -》 存储库 (Repository)”。选择 + 按钮并在 Vitis HLS 中选择 IP 导出的位置(即,以上第 6 步)。

选择位于对话框底部的“应用 (Apply)”按钮,然后选择“确定 (OK)”。

1.9. 选择 IP 目录 (Select IP Catalog)。现在,您的新存储库应已显示在目录中。

如已成功导入 IP,那么详细信息窗口中所列出的 IP 数量应为“1”。

注:如果列出的 IP 数量为 0,那么您可右键单击自己的新存储库并选择“将 IP 添加到存储库中 (Add IP to Repository)”。选择您从 Vitis HLS 导出的 ZIP 文件。随后,存储库中的 IP 数量应已显示为“1”。如果未显示正确数量,请检查您在 Vitis HLS 中所选的板/器件与您在 Vivado 中所使用的是否相同,否则,则表示您的 IP 可能不兼容。

1.10. 在 Flow Navigator 中,选择“创建模块设计 (Create Block Design)”。

在显示的选项卡中,选择 + 按钮并搜索您在第 6 步中在 Vitis HLS 中指定的 IP 名称(即,Example)。

祝贺您!您已成功创建了 IP、将其从 Vitis HLS 导出并已添加到 Vivado Design Suite 中的模块设计中。

单击 s_axi_BUS_A 旁的 + 按钮即可展开端口。如需获取更多相关信息,请参阅 (PG155 )中的 “端口描述”。

02

创建硬件

您可能会想要连接到 PS 以便充分利用其功能。添加 PS IP(如 ZCU106 评估板上提供的 Zynq UltraScale+ MPSoC IP)即可支持您执行此操作。

2.1. 将 Zynq UltraScale+ MPSoC IP 添加到模块框图中。添加完成后,将在屏幕顶部出现一条提示信息。选择“运行自动连接功能 (Run Connection Automation)”。

2.2. 这样即可得到如下图示。或者,您可为此 IP 手动添加所有器件,并如该图所示连接这些器件。这样即可得到如下图示:

efa3f348-a4b2-11eb-aece-12bb97331649.png

2.3. 右键单击“源 (Source)”选项卡下的《design_name》.bd 以创建 HDL 封装器 (wrapper)。运行综合、运行实现,然后生成比特流。下一步,选择“文件 (File) -》 导出 (Export) -》 导出硬件 (Export Hardware)”。请务必选中包含比特流的选项,并记下所选导出位置。这样即可创建包含所有硬件信息的 XSA 文件。现在,您可以关闭 Vivado。

03

编写软件

鉴于您的硬件已完成创建并导出,我们需要编写软件以向硬件提供操作指示。我们将在Vitis中编写软件。

3.1. 打开 Vitis。在打开的菜单中,选择“创建平台工程 (Create Platform Project)”。这将生成工程基本信息,我们将在其中添加硬件信息(XSA 文件)并编写一些软件定义。出现提示时,请选中“从 XSA 文件创建 (create from XSA file)”选项。随后,我们需要选择以上步骤 2.3 中的 XSA 文件导出位置。继续完成其它设置,最后单击“完成 (Finish)”。

3.2. 下一步,我们需要创建包含软件的应用工程。它将基于我们的平台工程,因此其中包含我们的硬件信息,并且我们需要使用该应用工程在目标板上运行应用。选择“文件 (File) -》 新建 (New) -》 新建应用工程 (New Application Project)”。

3.3. 出现提示时,选中“选择存储库中的平台 (Select a platform from arepository)”选项。选择步骤 3.1 中创建的平台工程,然后单击“下一步 (Next)”。

3.4. 选择 Hello World 模板,然后单击“完成 (Finish)”。

3.5. 现在,Hello World 代码会显示在《application_project_name》/src/helloworld.c下。为了执行完整性检查,我们将通过 JTAG 把示例下载到板上,并使用 UART 终端查看 printf 信息。

为此,请连接目标板,并打开终端仿真器软件(例如,Tera Term)以读取输出消息。如果您不知晓如何执行此操作,请参阅板相关的用户指南。 编译并运行程序。正确完成此操作后,您应可在 Tera Term 中看到 Hello World 打印信息。

3.6. 现在,确认板已正确连接后,下一步即可创建使用 HLS IP 的代码。从Vitis_Code.c复制代码(随附于本教程)并将其粘贴到 helloworld.c 中,替换原有 helloworld 代码。

保存,然后重新编译并运行软件。这次 Tera Term 会提示您提供 2 项输入:A 和 B,这 2 项将作为输入一并传递给 HLS IP 中,并显示结果。

注:由于在 Vitis HLS 中,A 和 B 已定义为“char”类型,因此输入的值上限为 127。

示例代码使用由 Vitis 自动创建的函数,因此开发非常便捷。

在名为X《HLS_IP_name》.h的文件中以及在《platform_project》/hw/drivers/《ex_name》/src 下可找到所使用的函数。

原文标题:开发者分享 | AXI 基础第 7 讲 - 使用 AXI4-Lite 将 Vitis HLS 创建的 IP 连接到 PS

文章出处:【微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

原文标题:开发者分享 | AXI 基础第 7 讲 - 使用 AXI4-Lite 将 Vitis HLS 创建的 IP 连接到 PS

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

手把手教你如何写单片机的结构体

摘要:听说还有好多学单片机的小伙伴不会用结构体?指针和结构体是学单片机必须要掌握的,如果你C语言掌握....
的头像 硬件攻城狮 发表于 05-13 11:29 194次 阅读
手把手教你如何写单片机的结构体

【视频】C语言知识免费视频教程-C语言关键字_void-连载视频第10集(视频持续更新……)

大家好! 该系列视频为C语言免费教程, 蔡琰老师为大家讲解  。持续关注,我们会继续更新! 大家有关于C语言以及工...
发表于 05-13 10:04 22次 阅读
【视频】C语言知识免费视频教程-C语言关键字_void-连载视频第10集(视频持续更新……)

PIC单片机的C语言编程电子版下载

用C语言来开发单片杋系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率....
发表于 05-13 09:31 17次 阅读
PIC单片机的C语言编程电子版下载

明解C语言教材免费下载

明解C语言教材免费下载。
发表于 05-13 09:24 11次 阅读
明解C语言教材免费下载

DSP载波移相控制C语言源代码下载

DSP载波移相控制C语言源代码下载
发表于 05-12 09:19 15次 阅读
DSP载波移相控制C语言源代码下载

总线、接口和协议之间的关系是什么?

总线、接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别。 总线是一组传输通道,是各....
的头像 FPGA之家 发表于 05-11 14:28 124次 阅读
总线、接口和协议之间的关系是什么?

C语言环形队列的原理和特点

什么是环形队列? 环形缓冲区是一个非常典型的数据结构,这种数据结构符合生产者,消费者模型,可以理解它....
的头像 strongerHuang 发表于 05-11 13:56 125次 阅读
C语言环形队列的原理和特点

无线遥控频率计C语言源代码下载

无线遥控频率计C语言源代码下载
发表于 05-11 09:46 13次 阅读
无线遥控频率计C语言源代码下载

基于椭圆曲线的无双线性对的无证书签名方案

无证书密码体制解决了传统公钥密码体制存在的公钥证书管理复杂的问题,以及基于身份的密码体制存在的密钥托....
发表于 05-10 15:45 8次 阅读
基于椭圆曲线的无双线性对的无证书签名方案

基于关键词的GCC抽象语法树消除冗余算法

GCC( GNU Compiler Collection)编译器编译¢语言源程序所生成的抽象语法树文....
发表于 05-07 10:30 10次 阅读
基于关键词的GCC抽象语法树消除冗余算法

CompCert编译器目标代码生成机制研究综述

CompCert是著名的C语言可信编译器,是经过形式化验证的编译器的杰出代表,近年来被广泛应用于学术....
发表于 05-07 10:17 8次 阅读
CompCert编译器目标代码生成机制研究综述

如何用C语言完成精确的软件延时完成DS18B20与TMS320LF2407之间的数据通讯?

TMS320LF2407与 DS18B20的连接方法是什么? 如何用C语言完成精确的软件延时完成DS18B20与TMS320LF2407之间的数...
发表于 05-07 06:51 0次 阅读
如何用C语言完成精确的软件延时完成DS18B20与TMS320LF2407之间的数据通讯?

C语言中编写协议相关代码位域的值解析不对劲怎么办?

1. 粉丝问题 自己编写的一个协议相关代码,位域的值解析和自己想象的有出入。 问题 结构体的头: 解....
的头像 FPGA之家 发表于 05-03 09:41 85次 阅读
C语言中编写协议相关代码位域的值解析不对劲怎么办?

剖析提升字符串格式化效率的小技巧

一、前言 在嵌入式项目开发中,字符串格式化是很常见的操作,我们一般都会使用 C 库中的 sprint....
的头像 FPGA之家 发表于 04-30 13:43 184次 阅读
剖析提升字符串格式化效率的小技巧

基于DSP的磁悬浮轴承控制器设计与实现

对以DSP为核心的磁悬浮轴承控制器、控制硬件的构成及其外围电路的设计,釆用 Fuzzy-PID控制方....
发表于 04-29 10:33 31次 阅读
基于DSP的磁悬浮轴承控制器设计与实现

基于单片机的数字电位器C语言源代码

基于单片机的数字电位器C语言源代码
发表于 04-29 09:34 59次 阅读
基于单片机的数字电位器C语言源代码

基于单片机的LCD1602万年历显示源代码

基于单片机的LCD1602万年历显示源代码
发表于 04-29 09:30 47次 阅读
基于单片机的LCD1602万年历显示源代码

基于51单片机的简易计算机C语言源代码

基于51单片机的简易计算机C语言源代码
发表于 04-29 09:28 52次 阅读
基于51单片机的简易计算机C语言源代码

Matlab系列之程序调试资料下载

电子发烧友网为你提供Matlab系列之程序调试资料下载的电子资料下载,更有其他相关的电路图、源代码、....
发表于 04-29 08:53 14次 阅读
Matlab系列之程序调试资料下载

STM8高级定时器或通用定时器有时候计数值发生错误!

使用NEC协议做的遥控器,遥控码正常,但是会出现以下问题:被物体挡住后,物体挪开,再去按遥控器,定时器计数值发生错误,可...
发表于 04-28 19:40 217次 阅读
STM8高级定时器或通用定时器有时候计数值发生错误!

单片机基础及应用:汇编语言程序设计简介资料下载

电子发烧友网为你提供单片机基础及应用:汇编语言程序设计简介资料下载的电子资料下载,更有其他相关的电路....
发表于 04-28 08:48 22次 阅读
单片机基础及应用:汇编语言程序设计简介资料下载

为什么,操作系统内核都是用C语言写的?资料下载

电子发烧友网为你提供为什么,操作系统内核都是用C语言写的?资料下载的电子资料下载,更有其他相关的电路....
发表于 04-28 08:41 15次 阅读
为什么,操作系统内核都是用C语言写的?资料下载

C语言怎么实现高效编程?

C语言怎么实现高效编程?
发表于 04-28 06:14 0次 阅读
C语言怎么实现高效编程?

c语言中常用的宏定义有哪些?

c语言中常用的宏定义有哪些?
发表于 04-28 06:01 0次 阅读
c语言中常用的宏定义有哪些?

探究怎样查找官网例程及如何使用官网例程?

有的时候需要查找一些官网的例程进行学习和参考,但是总感觉无从下手,今天就教大家怎么利用官网和Viva....
的头像 电子发烧友网工程师 发表于 04-27 13:47 184次 阅读
探究怎样查找官网例程及如何使用官网例程?

C语言中常见预编译指令的灵活秒用

有时候出于对程序代码优化的考虑。希望只对其中一部分内容进行编译。此时就需要在程序中加上条件,让编译器....
的头像 strongerHuang 发表于 04-27 11:18 201次 阅读
C语言中常见预编译指令的灵活秒用

TMS320C55xDSP应用系统的设计讲解

TMS320C55xDSP应用系统的设计讲解。
发表于 04-27 09:47 16次 阅读
TMS320C55xDSP应用系统的设计讲解

NiOSⅡ处理器的Avalon总线架构资料下载

电子发烧友网为你提供NiOSⅡ处理器的Avalon总线架构资料下载的电子资料下载,更有其他相关的电路....
发表于 04-27 08:54 24次 阅读
NiOSⅡ处理器的Avalon总线架构资料下载

PLC控制柜一般由哪些部分组成资料下载

电子发烧友网为你提供PLC控制柜一般由哪些部分组成资料下载的电子资料下载,更有其他相关的电路图、源代....
发表于 04-27 08:46 26次 阅读
PLC控制柜一般由哪些部分组成资料下载

安装西门子STEP7编程软件对系统要求资料下载

电子发烧友网为你提供安装西门子STEP7编程软件对系统要求资料下载的电子资料下载,更有其他相关的电路....
发表于 04-27 08:44 38次 阅读
安装西门子STEP7编程软件对系统要求资料下载

分析一种不错的低成本汉字液晶显示实现方法

本文分析了一种低成本的汉字液晶显示实现方法,并给出了其C语言实现函数的源程序,以及汉字字符串提取程序和点阵字模提取程序的...
发表于 04-27 07:04 0次 阅读
分析一种不错的低成本汉字液晶显示实现方法

不定参数在C语言中有哪些应用实例?

请问不定参数在C语言中有哪些应用实例?
发表于 04-27 06:15 0次 阅读
不定参数在C语言中有哪些应用实例?

【视频】C语言知识免费视频教程-C语言关键字_extern-连载视频第9集(视频持续更新……)

大家好! 该系列视频为C语言免费教程, 蔡琰老师为大家讲解  。持续关注,我们会继续更新! 大家有关于C语言以及...
发表于 04-26 14:04 1472次 阅读
【视频】C语言知识免费视频教程-C语言关键字_extern-连载视频第9集(视频持续更新……)

关于Vitis使用教程详解

首先是安装,本教程分两个主要的平台(WIN10和Ubuntu)给出安装教程和源文件。
的头像 OpenFPGA 发表于 04-26 10:02 428次 阅读
关于Vitis使用教程详解

请问怎样去设计Fense动态内存管理模块?

Fense的设计原理是什么? Fense有哪些功能? 怎样去设计Fense动态内存管理模块? ...
发表于 04-26 07:18 0次 阅读
请问怎样去设计Fense动态内存管理模块?

C语言中局部变量的存储位置是如何分配的?

ADS下C语言中局部变量的存储位置是如何分配的?...
发表于 04-26 06:31 0次 阅读
C语言中局部变量的存储位置是如何分配的?

STM32中重要的C语言知识点总结

说在前面的话一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,再....
的头像 硬件攻城狮 发表于 04-25 16:42 323次 阅读
STM32中重要的C语言知识点总结

基于LCD1602的时钟显示源代码下载

基于LCD1602的时钟显示源代码下载
发表于 04-25 09:49 49次 阅读
基于LCD1602的时钟显示源代码下载

深度:嵌入式系统的软件架构设计!资料下载

电子发烧友网为你提供深度:嵌入式系统的软件架构设计!资料下载的电子资料下载,更有其他相关的电路图、源....
发表于 04-25 08:43 25次 阅读
深度:嵌入式系统的软件架构设计!资料下载

蜂鸣器播放音乐设计与实现(附源码)

蜂鸣器播放音乐设计与实现(附源码)
发表于 04-24 11:00 59次 阅读
蜂鸣器播放音乐设计与实现(附源码)

LED线性阵列显示源代码下载

LED线阵显示源代码
发表于 04-24 09:57 38次 阅读
LED线性阵列显示源代码下载

基于STM32的红外遥控重点解析资料下载

电子发烧友网为你提供基于STM32的红外遥控重点解析资料下载的电子资料下载,更有其他相关的电路图、源....
发表于 04-24 08:52 15次 阅读
基于STM32的红外遥控重点解析资料下载

简析获取单片机代码运行时间的方法资料下载

电子发烧友网为你提供简析获取单片机代码运行时间的方法资料下载的电子资料下载,更有其他相关的电路图、源....
发表于 04-24 08:49 18次 阅读
简析获取单片机代码运行时间的方法资料下载

16个LED灯循环点亮的小程序(代码)资料下载

电子发烧友网为你提供16个LED灯循环点亮的小程序(代码)资料下载的电子资料下载,更有其他相关的电路....
发表于 04-24 08:44 50次 阅读
16个LED灯循环点亮的小程序(代码)资料下载

一文讲通C语言指针资料下载

电子发烧友网为你提供一文讲通C语言指针资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程....
发表于 04-24 08:44 18次 阅读
一文讲通C语言指针资料下载

时钟芯片DS1302的使用编程资料下载

电子发烧友网为你提供时钟芯片DS1302的使用编程资料下载的电子资料下载,更有其他相关的电路图、源代....
发表于 04-24 08:44 27次 阅读
时钟芯片DS1302的使用编程资料下载

什么是PID?给你讲个故事,通俗易懂!资料下载

电子发烧友网为你提供什么是PID?给你讲个故事,通俗易懂!资料下载的电子资料下载,更有其他相关的电路....
发表于 04-24 08:43 29次 阅读
什么是PID?给你讲个故事,通俗易懂!资料下载

为什么要将C语言作为首选汇编语言?

C语言是一门通用计算机编程语言,应用非常广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级....
发表于 04-23 09:15 20次 阅读
为什么要将C语言作为首选汇编语言?

一位工程师的单片机开发经验之谈资料下载

电子发烧友网为你提供一位工程师的单片机开发经验之谈资料下载的电子资料下载,更有其他相关的电路图、源代....
发表于 04-23 08:54 15次 阅读
一位工程师的单片机开发经验之谈资料下载

现在不管是搞软件还是硬件,编程都得学。总结给初学编程人的干货资料下载

电子发烧友网为你提供现在不管是搞软件还是硬件,编程都得学。总结给初学编程人的干货资料下载的电子资料下....
发表于 04-23 08:52 22次 阅读
现在不管是搞软件还是硬件,编程都得学。总结给初学编程人的干货资料下载

IAR调试EFM32单片机时的一些技巧资料下载

电子发烧友网为你提供IAR调试EFM32单片机时的一些技巧资料下载的电子资料下载,更有其他相关的电路....
发表于 04-23 08:47 24次 阅读
IAR调试EFM32单片机时的一些技巧资料下载

简述关于Keil、STM32 用C++编写流水灯程序

通常来说,在单片机上编程, 要么汇编,要么C语言 ,而用C++进行开发的很少,那么究竟能不能用C++....
的头像 strongerHuang 发表于 04-22 10:23 306次 阅读
简述关于Keil、STM32 用C++编写流水灯程序

C语言函数返回1和返回0到底哪个好?

基本上,没有人会将大段的C语言代码全部塞入 main() 函数。更好的做法是按照复用率高、耦合性低的....
的头像 strongerHuang 发表于 04-22 09:47 225次 阅读
C语言函数返回1和返回0到底哪个好?

基本路径测试法及相关案例分析

基本路径测试法及相关案例分析
发表于 04-22 09:17 26次 阅读
基本路径测试法及相关案例分析

这10个程序员必知的基础算法,你都了解吗?我们一起来学习下资料下载

电子发烧友网为你提供这10个程序员必知的基础算法,你都了解吗?我们一起来学习下资料下载的电子资料下载....
发表于 04-22 08:52 14次 阅读
这10个程序员必知的基础算法,你都了解吗?我们一起来学习下资料下载

举例:说明IF函数公式,多条件判断,你一定踩过的坑资料下载

电子发烧友网为你提供举例:说明IF函数公式,多条件判断,你一定踩过的坑资料下载的电子资料下载,更有其....
发表于 04-22 08:51 26次 阅读
举例:说明IF函数公式,多条件判断,你一定踩过的坑资料下载

说到C语言编程程序的内存是个重要问题,那如何布局呢 ?资料下载

电子发烧友网为你提供说到C语言编程程序的内存是个重要问题,那如何布局呢 ?资料下载的电子资料下载,更....
发表于 04-22 08:51 9次 阅读
说到C语言编程程序的内存是个重要问题,那如何布局呢 ?资料下载

时钟芯片DS1302的工作原理和应用资料下载

电子发烧友网为你提供时钟芯片DS1302的工作原理和应用资料下载的电子资料下载,更有其他相关的电路图....
发表于 04-22 08:41 53次 阅读
时钟芯片DS1302的工作原理和应用资料下载

如何有效编程单片机有源蜂鸣器驱动资料下载

电子发烧友网为你提供如何有效编程单片机有源蜂鸣器驱动资料下载的电子资料下载,更有其他相关的电路图、源....
发表于 04-21 08:50 14次 阅读
如何有效编程单片机有源蜂鸣器驱动资料下载

51单片机asm与C混合编程资料下载

电子发烧友网为你提供51单片机asm与C混合编程资料下载的电子资料下载,更有其他相关的电路图、源代码....
发表于 04-21 08:45 24次 阅读
51单片机asm与C混合编程资料下载