Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试

这篇具有很好参考价值的文章主要介绍了Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导读

        本文主要记录了 Xilinx SDK 软件进行嵌入式程序开发和调试的操作流程,不涉及 Vivado 工程和 Xilinx SDK 的具体代码实现。第一部分主要是背景知识,如果想看实际操作可以直接从第二部分开始。

目录

导读

第一部分  FPGA与嵌入式系统

1 嵌入式系统

2 在 FPGA 中使用嵌入式系统的好处

3 能否将功能需求都用高级语言实现,规避FPGA中的HDL开发

4 Xilinx SDK 嵌入式开发套件

5 FPGA 中常见的嵌入式系统 IP —— MicroBlaze MCS IP 核

第二部分  Xilinx SDK 开发与调试流程(基于 MicroBlaze MCS IP 核)

1 创建一个 Xilinx SDK 工程

1.1 使用 vivado 2018.2,打开一个 vivado 工程

1.2 导出 .hdf 文件

1.3 打开 Xilinx SDK 界面

2 创建与开发嵌入式程序

2.1 创建 HPS 项目(Hardware Platform Specification 硬件平台规范)

2.2 创建 BSP 项目(Board Support Package 板卡支持包)

 2.3 创建应用程序

 2.4 开发应用程序

3 调试嵌入式程序

3.1 将 vivado 工程生成的 bitstream 和 SDK 工程生成的 ELF 文件一同烧写到 FPGA 中

3.2 调试嵌入式程序

总结



第一部分  FPGA与嵌入式系统

1 嵌入式系统

        嵌入式系统是一种特殊类型的计算机系统,它被设计用于执行特定任务或功能,并集成到更大的系统中,通常嵌入在其他设备或产品中。通俗来讲,要求系统能运行在特定的硬件平台上并满足特定需求,就可以考虑嵌入式系统。

2 在 FPGA 中使用嵌入式系统的好处

        虽然 FPGA 是可编程的,可以实现不同的逻辑功能,但针对某些应用场景和需求,嵌入式系统的设计与开发更为有效。在我的实际经验中,在 FGPA 中开发嵌入式系统的好处包括:

        1、功能设计上:嵌入式系统提供了更高的抽象层次,使得软件开发更方便。说白了就是习惯了软件的思维,可以在功能设计上发挥高级语言的优势。

        2、开发与调试上:FPGA 直接的 HDL 设计和开发相对复杂,HDL 语言的特性导致编写思维必须符合硬件思维。而在嵌入式系统中,可以使用标准的软件开发工具和流程,更容易进行软件开发、调试和维护。

        3、相互协同:硬件 HDL 设计可以作为主控 FPGA 板上资源的主要逻辑,而嵌入式系统可以在更简易的开发下完成某些复杂的逻辑,和 HDL 设计相辅相成。(我所经历过的一套硬件设计方案) 

3 能否将功能需求都用高级语言实现,规避FPGA中的HDL开发

        在某些情况下可以直接在 FPGA 中设计嵌入式程序,而无需使用硬件描述语言(HDL)如 Verilog 或 VHDL。另外一种方案是只编写  C/C++ 代码,使用高级综合(High-Level Synthesis,HLS)工具将高级语言转换为底层硬件逻辑。使用嵌入式系统或 HLS 工具虽然可以让开发人员更专注于软件开发,而无需处理底层的 HDL 细节,但在某些复杂的应用场景下,仍然需要使用 HDL 进行更细粒度的控制和优化。特别是对于要求严格的时序控制、硬件级别的优化和复杂的状态机逻辑,HDL 编写可能更为合适。

4 Xilinx SDK 嵌入式开发套件

        Xilinx SDK(Software Development Kit)是一种用于在 FPGA 上进行嵌入式系统开发的工具套件。FPGA 中主要有两类嵌入式系统:Xilinx FPGA(Field-Programmable Gate Array)芯片和 Zynq SoC(System on Chip),本文接下来的内容针对前者中常见的 MicroBlaze MCS IP 核进行嵌入式开发。开发者可以在 Xilinx SDK 中进行应用程序开发,SDK 负责将 C/C++ 代码编译成针对 MicroBlaze 处理器的目标机器码,进而生成的可执行文件,然后再将可执行文件下载到连接到 FPGA 中的 MicroBlaze MCS IP 核上运行。

5 FPGA 中常见的嵌入式系统 IP —— MicroBlaze MCS IP 核

        MicroBlaze MCS 是 Xilinx 公司提供的一个用于控制器应用的完整处理器系统。它是高度集成的,包括 MicroBlaze 处理器、用于程序和数据存储的本地存储器以及实现一组标准外围设备的紧密耦合 I/O 模块。


第二部分  Xilinx SDK 开发与调试流程(基于 MicroBlaze MCS IP 核)

1 创建一个 Xilinx SDK 工程

1.1 使用 vivado 2018.2,打开一个 vivado 工程

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

         注意:如果 Vivado 工程中没有使用 MicroBlaze MCS IP 核或其他支持的处理器核(如 ARM Cortex-A9 或 ARM Cortex-R5),则无法创建 SDK 项目。SDK 是用于与处理器系统相关的嵌入式软件开发工具,因此需要至少一个处理器核的支持才能进行嵌入式软件开发。

1.2 导出 .hdf 文件

①依次点击左上角 File -> Export -> Export Hardware:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

② 选择文件的导出路径:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

         可以在 vivado 工程根目录下创建一个“sdk”的文件夹,将 .hdf 导出到该文件夹中,以便后续Xilinx SDK 开发使用。这里勾选上“Include bitstream”,方便后续的调试工作。

 注:.hdf 文件的生成对于嵌入式系统开发非常重要。在嵌入式系统开发中,通常使用处理器系统来运行软件应用程序,并与 FPGA 的硬件逻辑进行交互。通过将 FPGA 的硬件配置信息和处理器系统的配置信息打包在 .hdf 文件中,可以方便地在后续的开发环境中加载和使用硬件平台。

1.3 打开 Xilinx SDK 界面

①依次点击左上角 File -> Launch SDK:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

② 选择 Exported Location(导出位置)和 Workspace(工作空间):

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        Exported Location(导出位置)是指 Vivado 导出的硬件配置和信息的存放位置,即 .hdf 文件的存放目录。在打开 SDK 时,SDK 将会读取 .hdf 文件中的信息,以便正确配置 FPGA 和处理器系统。

        Workspace(工作空间)指 SDK 项目的工作空间目录,用于存放嵌入式软件项目和相关文件。可以理解为嵌入式系统软件项目的项目根目录。这里我在“sdk”文件夹下创建文件夹“elf”。

③弹出新窗口 Xilinx SDK 界面:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        在打开 Xilinx SDK 界面后,自动创建了 xxxx_hw_platform_0,该项是 Xilinx SDK 通过之前生成的 .hdf 文件创建的一种 project——"Hardware Platform Specification"(硬件平台规范)。这里我们不必理会它,在接下来的步骤中我们自行创建。

        目前为止,我们已经创建出一个 Xilinx SDK 工程,接下来是进行嵌入式系统应用程序的创建与开发。

2 创建与开发嵌入式程序

2.1 创建 HPS 项目(Hardware Platform Specification 硬件平台规范)

①依次点击左上角 File -> New -> Project:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

         项目类型选择 Xilinx 下的 Hardware Platform Specification。

②指定 .hdf 文件:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        Target Hardware Specification 选择之前导出的 .hdf 文件。

注:"Hardware Platform Specification"(硬件平台规范)是一个用于描述硬件平台的文件。它的作用是为 SDK 提供与硬件平台相关的信息,以便在嵌入式软件开发过程中正确配置和连接硬件资源。

当前项目视图:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

         可以观察到我们创建的 HPS 项目和之前 SDK 软件自动创建的项目最左边图标一致,并且由于指定的 .hdf 文件相同,两个 HPS 下的内容基本是一样的。

2.2 创建 BSP 项目(Board Support Package 板卡支持包)

①依次点击左上角 File -> New -> Project:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        Hardware Platform 选择我们上一步中创建的HSP项目,Board Support Package OS选择  standalone 即可。

注:"Xilinx Board Support Package Project"(BSP 项目)是一个用于支持特定 Xilinx 开发板的项目类型。BSP 项目的主要作用是为特定的硬件平台提供驱动程序、配置和初始化代码,以便在该硬件平台上正确运行嵌入式软件应用程序。

②配置 Board Support Package Settings 界面:

        在创建 BSP 项目后,会自动弹出该界面,如果没有也可以通过点击上方菜单栏“Xinlinx -> Board Support Package Settings”进行设置。

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        Overview 中可以选取需要的依赖包,如果没有需求可以默认都不勾选;

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

         drivers 下自动存在了一个"microblaze_l","microblaze_l" 选项的存在是因为我的硬件平台中包含了 MicroBlaze MCS IP 核, SDK 为该核自动生成相应的 drivers 设置。

当前项目视图:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

 2.3 创建应用程序

①依次点击左上角 File -> New -> Application Project:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

         这里的 Hardware Platform 选择之前创建的 HPS 项目,Board Support Package 选择Use existing,选择上一步创建的 BSP 项目。

②点击 Next,选择项目类型:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        这里我们直接选择 Empty Application。接下来就可以在该项目工程下进行 C 语言开发了。

当前项目视图:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

 2.4 开发应用程序

①创建 Header File(头文件)和 Source File(源文件):

        右键项目目录下的 src。

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

②编译生成 ELF 文件:

        右键项目文件,点击 Build Project。

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        Debug 目录下会生成一个 .elf 文件,该文件可用于嵌入式程序的调试。至此,嵌入式程序的开发过程已经完毕,接下来介绍嵌入式程序的调试。

3 调试嵌入式程序

3.1 将 vivado 工程生成的 bitstream 和 SDK 工程生成的 ELF 文件一同烧写到 FPGA 中

①点击工具栏的三个绿色方块图标,即 Program FPGA:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

 ②配置选项之 Bitstream 和 BMM/MMI File:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        由于在导出 .hdf 文件的步骤中点击了“Include bitstream”,这里的 Bitstream 和 BMM/MMI File 将自动包含进来。

注:Bitstream 是 FPGA 的配置文件,描述了可编程逻辑的状态,而 BMM/MMI 文件是 FPGA 的物理资源和地址映射描述文件,指导 Vivado 工具将逻辑配置映射到 FPGA 的物理资源上。这两个文件共同确保 FPGA 设计的正确配置和功能。

③配置选项之 Software Configuration:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

        点击 bootloop,下拉框中选中刚才在 Debug 目录下生成的 elf 文件。

注:"Software Configuration"(软件配置)选项可以用来指定 FPGA 启动时加载的软件镜像文件。这个选项的作用是在 FPGA 配置完成后,自动加载并运行嵌入式软件应用程序,以实现 FPGA 和处理器系统的初始化和启动。

        确保烧写器连接了计算机设备与 FPGA 硬件后,点击 Program 后便开启了烧写工作,该过程会将 bitstream 连同 elf 一起烧写到板卡上。

3.2 调试嵌入式程序

①右键 Debug 目录下的 elf 文件,点击 Debug As -> Launch on Hardware (System Debugger):

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

②在文本编辑区打开源代码文件,双击代码所在行的左侧边栏添加/删除断点;

③右键 Debug 窗口下的 System Debuger using Debug_nfhe_elf.elf on Local,点击 Relaunch 重新启动嵌入式程序:

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

         重新运行后成功停在断点处,说明进入了调试状态。

Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试,FPGA,fpga开发,嵌入式硬件,硬件工程

总结

        相比于开发,硬件的调试过程更为复杂,硬件的黑盒属性导致出现了问题很难通过表面现象进行分析,因此有效的调试手段必不可少。本文主要记录了自己对于 Xilinx SDK 软件进行嵌入式程序开发和调试的过程,欢迎大家交流问题,一起成长。文章来源地址https://www.toymoban.com/news/detail-754124.html

到了这里,关于Xilinx SDK 基于 MicroBlaze MCS IP 核的嵌入式开发与调试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • XILINX关于Adder/Subtracter加法器减法器 IP核的使用与仿真

    平台:vivado21018.3,modelsim 10.6c 芯片:xc7k325tffg900-2 (active) Adder/Subtracter IP可提供LUT和单个DSP48 slice加法/减法实现方案。Adder/Subtracter 模块可实现加法器 (A+B)、减法器 (A–B),以及可通过签名或未签名数据运行的动态可配置加法器/减法器。该功能能够以单个DSP48 slice方式实现,也

    2024年02月15日
    浏览(39)
  • Xilinx Bit文件格式详解及嵌入式应用

    Bit文件是Xilinx FPGA(可编程逻辑门阵列)设备上的配置文件,用于定义硬件逻辑和电路的功能。本文将详细介绍Xilinx Bit文件的格式以及在嵌入式系统中的应用。 一、Bit文件格式 Bit文件是一种二进制文件,包含了FPGA设备的配置信息。它由多个不同类型的数据块组成,每个数据

    2024年02月02日
    浏览(32)
  • Xilinx FPGA bit文件和MCS下载流程

    1 安装完iMPACT, 点击图标打开 2 打开后界面如下,双击左上角选项Boundary Scan,右边会弹出空白区域 3 右边空白区域右击然后选择Initialize Chain,软件会自动加载已上电且下载线已连接到电脑的xilinx FPGA器件 4 鼠标放到1图标右击选择2 Assign New ... ,可选着bit文件下载 5 鼠标放到图标

    2024年02月16日
    浏览(40)
  • 网络-IP地址(嵌入式学习)

    IP地址是Internet中主机的标识 IP地址(Internet Protocol Address 互联网国际地址)是一种在Internet上的给主机编址的方式,它主要是为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 IP地址为32位(IPv4)或者128位(IPv6) IPV4地址由网络号与主机

    2023年04月19日
    浏览(32)
  • Xilinx Vivado bit文件和Microblaze elf文件合并的两种方法

            Xilinx使用Microblaze软核进行功能开发时,需要将Vivado生成的硬件bit文件和Vitis生成的软件elf文件进行合并,生成软硬结合的bit文件,然后可以选择将该bit文件烧进FPGA、或者将该bit文件转换成mcs文件/bin文件然后烧录至Flash中。         目前使用到了两种合并Vivado bit文件

    2024年02月11日
    浏览(48)
  • 嵌入式TCP/IP协议栈-LwIP

    LWIP是一个轻量级的TCP/IP协议栈,其全称为Lightweight IP,它专门为小型嵌入式系统设计,具有占用资源少、易于移植、可裁剪性高等特点。 LWIP的设计目的是为嵌入式设备提供一个高效的TCP/IP协议栈,以便这些设备可以方便地访问Internet或局域网。它支持IPv4和IPv6协议,并实现了

    2024年02月09日
    浏览(42)
  • 基于vivado DDS ip核的DDS信号发生器(可调频调相)

    基于Vivado DDS ip核的DDS信号发生器: 在Vivado软件中调出DDS ip核进行设置,很多参数可以参考xilinx官方手册,比较重要的是System Clock系统时钟和Phase Widh相位宽度的设置,这是最终得到波形的频率和相位所需要的基础参数,在这里我分别设置为50Mhz和16bit。 在implementation页面设置频

    2024年02月12日
    浏览(29)
  • FPGA 学习笔记:Vivado 2018.2 MicroBlaze 启动 SDK

    Vivado 2018.2,配置好 MicroBlaze Uartlite等Block Design后,生成了 bin、bin文件,此时烧写到FPGA板子上,发现没有任何动静,所以需要 SDK的支持 这里使用的Vivado 2018.2,最新的 Vivado版本,如 Vivado 2020.2,启动的SDK 是 :Vitis,启动方式稍微有点不同,后面补充 Vivado 2020.2版本的操作方法

    2024年02月12日
    浏览(43)
  • FANUC机器人嵌入式TCP/IP以太网通讯的具体方法

    在工业自动化领域中,FANUC机器人是广泛应用的一种先进设备。为了实现机器人与其他设备之间的通信,TCP/IP以太网是一种常用的通信协议。本文将介绍如何在FANUC机器人中实现嵌入式TCP/IP以太网通讯,并提供相应的源代码。 配置网络参数 首先,我们需要在FANUC机器人上配置

    2024年02月04日
    浏览(53)
  • 嵌入式 RS485 Modbus-RTU与TCP/IP协议详细介绍

    目录 TCP/IP协议 RS485 Modbus-RTU协议 TCP/IP是一种网络通信协议,它是互联网的基础。TCP/IP协议是由两个协议组成的,分别是TCP (传输控制协议)和IP (网络协议)。 TCP (Transmission Control Protocol) 传输控制协议 TCP是一种面向连接的协议,它提供可靠的、有序的数据传输服务。 TCP协议通过

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包