友晶DE10_standard_SoC_亮灯与按键控制

文章目录

  • 一、友晶SoC文档与工程文件获取
  • 二、实验环境
    • 1、Quartus
      • 1.1、Quartus 18.1标准版、CycloneV器件包、SoC安装包获取
      • 1.2、Quartus 18.1标准版、CycloneV器件包、SoC安装包的安装
    • 2、串口驱动安装
      • 2.1、接口与连线
      • 2.2、设备管理器检查
      • 2.3、更新驱动
    • 3、黄金工程文件配置。
  • 三、DE10_SoC 亮灯实验基础
    • 1、顶层文件
    • 2、platform designer
    • 3、fpga_2_hps
      • 3.1、external_connnection
      • 3.2、s0、master、s1、m0
    • 4、Base与End
    • 5、添加PIO
    • 6、顶层文件更新
    • 7、工程文件编译、头文件获取、系统文件更新、sd卡系统重设
      • 7.1、工程文件编译
      • 7.2、头文件获取
      • 7.3、系统文件更新
      • 7.4、sd卡系统重设。
    • 8、HPS_FPGA_LED二进制文件生成、sd卡文件更新
      • 8.1、HPS_FPGA_LED二进制文件生成
      • 8.2、sd卡文件更新
    • 9、片上系统嵌入式工具获取与使用
      • 9.1、MobaXterm获取与安装
      • 9.2、MobaXterm使用
  • 四、小结


一、友晶SoC文档与工程文件获取

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  若想获取友晶开发板以及相应文档,建议登录友晶中文官网
  本次实验所使用的是DE10_standard开发板,大家可通过官网注册账号获取文档资料
在这里插入图片描述
  DE10-Standard CD-ROM文档链接
在这里插入图片描述
  或者通过网盘链接获取。


二、实验环境

  本次实验所需设备主要包括:DE10_standard开发板一个、UART_TO_USB线一根、SD卡一个、SD卡读卡器一只、开发板电源线一根。

1、Quartus

  DE10_standard开发板的型号是5CSXFC6D6F31C6N,此处我以windows版本的Quartus 18.1标准版为例(其实13.1版本也行,18.1的lite版本也可以),不过前提条件是Quartus必须配备有SoC套件。若你使用的是linux或者苹果系统,可以自行参考其他安装教程安装好软件,再进行DE10的SoC开发后续工作。
  以下是Quartus 18.1标准版安装、破解、SoC安装的详细过程。

1.1、Quartus 18.1标准版、CycloneV器件包、SoC安装包获取

  可以根据自身需求在Intel官网FPGA一栏找到相应的版本。
  注意:以下所需下载的文件,建议放在同一个路径下,这里路径名中英文不做强制要求。
  Quartus18.1标准版:
在这里插入图片描述
  CycloneV器件包:
在这里插入图片描述
  SoC文件:
在这里插入图片描述
在这里插入图片描述

1.2、Quartus 18.1标准版、CycloneV器件包、SoC安装包的安装

  在安装Quartus软件之前,要先确保各自电脑的环境变量中,注册表是否在英文路径下。(因为,如果你的电脑用户名是中文,那么你的注册表就可能出现在中文路径下,这种情况会影响后续Quartus编译的)

  环境变量修改:
  (1)windows系统用户通过设置或者搜索框搜索“环境变量”:
在这里插入图片描述
  (2)点击进入环境变量设置窗口:
在这里插入图片描述
在这里插入图片描述
  (3)如上图,若你发现用户变量中的TEMP和TMP这两栏的地址(变量值)里有中文或是乱码,那么你就需要在磁盘的另一个位置创建一个英文文件夹(文件夹名字自拟,如temp即可,注意,文件路径不能出现中文,包括文件夹的根目录也不能出现中文,后续提到的不能出现中文路径的都是包括根目录在内的
  (4)最后把你新建的英文路径作为变量值修改进去,再依次点击确认,最后重启电脑。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  注意:重设环境变量后一定要重启电脑!
  Quartus安装:
  (1)在安装该软件之前,要自行先在磁盘的某一位置新建文件夹,用以存放软件,这个和大家平时在电脑上安装其他软件一样。特别要注意的是,文件夹的路径(包括根目录不能出现任何中文,而且建议不要以数字作为开头,最好英文开头) 建议大家不要把软件迷人安装在C盘,因为这样会占用大家系统盘的空间,养成良好的磁盘使用习惯,对你日后维护个人电脑、查找文件是很大有裨益的!
在这里插入图片描述
  (2)点击QuartusSetup-18.1.0.625-windows.exe文件进入安装界面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  (3)这里你会发现窗口里面有devices,如果你并没有把器件包放在安装包的同一路径下,那么此窗口将不显示devices。
在这里插入图片描述
  然后一直next即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  完成后会弹出quartus启动界面。若你在启动软件的时候,弹出了选项窗口,那就选择30天使用期限的那个选项然后继续,若没有可以忽略。

  Quartus破解:
  (1)下载Quartus18.1破解器
  (2)接下来需要做的是设置破解器里的license文件。首先在quartus软件的tools选项中选择license Setup。
在这里插入图片描述
在这里插入图片描述
  (3)利用记事本打开license.bat文件。若只看见lincense,看不见后缀名,那就再文件资源管理器内选择查看,勾选上文件扩展名。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  全部替换后。license.bat文件内容如上图所示。
在这里插入图片描述
  (4)此时我们需要把修改后的license文件添加到quartus软件的license环境配置中,这里是需要全英文路径的。因此,我们需要把lincense单独地复制到一个英文路径下。比如直接放在安装quartus软件的英文路劲下。
在这里插入图片描述
  (5)在license设置的三个小点处选择你的文件存放路径,然后就会出现如图3号显示的2037.12字样的有效期限。若未显示,先不急!
在这里插入图片描述
  (6)紧接着,点击Download License,然后选择第三个“用已有license文件启动quartus软件”,再点击ok。
在这里插入图片描述
  最后直接ok,并退出Quartus软件。
在这里插入图片描述
  破解的步骤才完成了一半哦!
  (7)接下来,为了确保你的quartus软件已经完全关闭,在任务管理器中以名称排序,看看字母“q”开头当中有没有quartus.exe这一栏。若有,就需要选中结束quartus.exe的任务。
在这里插入图片描述
  (8)我们下载的破解器文件夹内还有一个名为“Quartus_18.1破解器_Windows.exe”的文件,我们需要将该文件复制到Quartus安装路径内部。复制红框内文件。
在这里插入图片描述
  具体位置如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  (9)在确保文件复制完毕后,在bin64文件夹内双击打开破解器exe文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  在最后一步,可以直接点击否。如果你点击是,那么会进入某公司网站。至此,全部破解步骤结束了。

  SoC安装步骤:
  (1)老地方,双击打开SoC的安装文件。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
  (2)注意:选择SoC安装路径的时候一定要选择Quartus安装的路径。
在这里插入图片描述
  (3)紧接着,next,等待安装到后续步骤。
在这里插入图片描述
在这里插入图片描述
  (4)SoC安装界面结束后会进入驱动安装步骤。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  (5)稍等片刻后,下图会闪一下,next选项即可选择。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  一直next,直到结束。至此,所有安装步骤均已完成!

2、串口驱动安装

2.1、接口与连线

  串口驱动安装是需要大家把开发板与电脑相连的。接线方式如图所示:
在这里插入图片描述

2.2、设备管理器检查

  windows系统用户可在开始标志处鼠标右键选择“设备管理器”。
在这里插入图片描述
  若在端口一栏发现有USB Serial Port(COM+数字)的字样,则表示已识别当前串口线(UART线,即前面的灰色线)。你可以在电脑上拔掉刚刚接上的串口线,看看设备管理器是否闪烁并且端口一栏内容消失,若消失了并且在你重新接上线的时候又出现了,那就说明识别无误。
在这里插入图片描述

2.3、更新驱动

  接下来就要更新驱动了。需要先下载驱动
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  再回到设备管理器界面。
在这里插入图片描述
  在Power Management(即电源管理)一栏中,把勾选取消!
在这里插入图片描述
  如果你在通用串行总线控制器一栏中并未发现新增的USB Serial······那么你就鼠标右键上面的端口USB Serial Port,选择属性,看看里面有没有电源管理这一项,若有,就把电源管理中的勾选全部取消!
  这样,驱动就更新完成了!

3、黄金工程文件配置。

  由于Quartus软件读取文件的特殊性,工程文件的路径也要有特殊要求:工程文件的路径必须是英文
  我们将第一章节的渠道中下载得到的DE10-Standard_v.1.3.0_SystemCD.zip解压到英文路径下
在这里插入图片描述
  比如此处,我直接放在D盘根目录下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


三、DE10_SoC 亮灯实验基础

1、顶层文件

  官方提供的工程文件其实已经配置好了LED、KEY、SW。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  我们会发现,在顶层verilog文件里,模块定义了LED、开关、按键还有数码管,但在后面实例化的过程中并未对数码管进行实例化。这是因为官网提供的工程文件只提供了三个PIO(programmable I/O)外部设备的配置,并未对数码管进行配置。


2、platform designer

  我们可以先看看配置PIO外设的具体情况是什么样的。
  我们需要在工程上部选中“platform designer”工具,进入外设配置界面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  如上图,红框内三个pio分别是led、sw开关、button按键。我们可以仔细查看每一个pio对应的bridge连线、name、export、Base、End这几列。
  这里我以led_pio为例。
在这里插入图片描述
在这里插入图片描述
  外设的clk与reset,即时钟与复位需要与clk_0的clk、clk_reset相连。外设的s0要与mm_bridge_0的m0和fpga_only_master的master相连。
  这里需要了解一下bridge连线的意义了。


3、fpga_2_hps

在这里插入图片描述  如上图所示,我们会发现FPGA端有外设:数码管、开关、按键、led以及其他的一些接口。而HPS端有连接的外设包括sd卡、UART to USB、Ethernet等接口。
  在本次实验中,所涉及到的外设主要是led、按键、开关、sd卡、UART to USB。
  HPS实验本质上是在HPS端的linux系统内运行c工程文件,而这里的c工程会根据实验要求分别对fpga端的外设等进行定义。
  FPGA端对应的是软核,而HPS对应的是硬核,这是两个完全不同的架构。如何把FPGA端的外设映射到HPS端呢?
  这里就需要用到FPGA到HPS的内存映射,也就是memory master bridge。
  作为FPGA端的外设,势必要有两个关键信号:时钟和复位,led_pio已经从clk_0中获取到了。可以双击CLK_0查看始终设置,我们会发现时钟频率是50MHz,这和DE10_standard开发板的始终晶振是一致的。
在这里插入图片描述
  另外,led_pio还有s0和external_connnection,其中s1表示的是slave1,external_connnection表示的是外部连接。

3.1、external_connnection

  先讲一下external_connnection(外部连接)。如果你有一定的veilog或FPGA基础,应该知道同一个工程项目之下含有多个verilog文件时,势必出现实例化其他模块的情况,这就类似于C语言中的函数调用需要头文件,python、JAVA里的函数或类的调用需要import库。使用当前文件之外的文件所拥有的内容时,就必须建立一定的外部连接。
  我们这里需要的内容是信号,也就是led_pio。既然如此,我们需要对led_pio定义一个external_connnection的Export名,也就是信号实例化名称。比如led_pio的Export名是“led_pio_external_connection”。
在这里插入图片描述
  与之相对应的实例化语句是:
在这里插入图片描述
在这里插入图片描述
  该实例化语句最终在顶层verilog文件中运用到了:
在这里插入图片描述

3.2、s0、master、s1、m0

在这里插入图片描述
在这里插入图片描述
  TerAsic官方提供的手册对AXI bridge略做一些介绍,我们的实验只需关注AXI桥接图的右边部分,即FPGA_to_HPS。如果后续你想通过FPGA端控制HPS端的外设,那么你会涉及到GPIO等相关的技术点,此处不做赘述。
  我们在前面连线过程中出现的s0、master、s1、m0都和FPGA_to_HPS有关。
在这里插入图片描述  首先是master,master出现在fpga_only_master中,即此时FPGA为主,HPS为从,此次实验本质上是在FPGA端定义内存地址,在利用HPS映射到这些地址最终实现SoC(片上系统)的功能,就是以两个不同架构间的主从关系建立的。
  AXI是ARM公司开发的一种总线协议,关于具体的AXI协议传输信息方式,此处不做赘述。
  在了解到FPGA端为主设备之后,我们需要对内存映射桥接赋予连线的功能。
在这里插入图片描述
  mm_bridge_0相对于fpga来说是从,而FPGA端的外设相对于mm_bridge_0来说也是从,类似于一个树分支的结构。因此mm_bridge_0的s0与fpga_only_master的master相连,而m0则作为其他外设s1
的主了。
  当然,pio的s1还与fpga_only_master的master相连了。


4、Base与End

  在每一个信号之后,还存在十六进制的地址信息,这里的Base指的是随机分配后的基地址,End指的是随机分配后的结束地址。
  随机分配的地址空间最小是4位,换算成十六进制也就是0xf。比如led_pio一共是10位(FPGA端一共就是10个led)。
在这里插入图片描述
  双击led_pio,可知led_pio设置的是输出类型的10位数据。其他的pio,比如开关和按键的设置,大家可以自行点击查看。
  基地址分配也是需要操作的,只不过官方提供的实验已经为我们完成了三个外设的设置。接下来,我演示一下如何在“platform designer”工具内添加pio。


5、添加PIO

  PIO,即可编程的输入输出,也就是FPGA的输入输出(FPGA的I/O、电路、逻辑块都是可编程的)
  (1)首先我们需要在“platform designer”的左上部搜索框内输入“pio”。然后,会有几个选项,我们选择最下面的“PIO (Parallel I/O) Intel FPGA IP”
在这里插入图片描述
  (2)双击“PIO (Parallel I/O) Intel FPGA IP”,会弹出如下窗口,我们在其中设置位宽、输入输出方向,最后点击finish。
在这里插入图片描述
  此处,我以数码管当中的某一位为例,七段数码管位宽应设置为7,方向位输出output。finish之后,在界面中会出现一个叫做“pio_0”的PIO。
在这里插入图片描述
  (3)此处红色报错意为clk和reset未参与连接,咱先不急。先把name修改一下。
  在“pio_0”处,鼠标右键,选择rename。
在这里插入图片描述
在这里插入图片描述
  如上图,我改成了HEX0,代指第一个七段数码管。
  (4)接下来,我们连一下线。
  连线的方式其实有两种,我这里只演示简单粗暴的方法,直接对应号信号,在所在列点击空白点,即可选中。
在这里插入图片描述
在这里插入图片描述
  在连线之后,红色报错没了,但是警告信息里面有两处需要注意。提示意思为:s1尚未参与连接,外部连接也没设置。
  (5)先把s1与m0、master相连,再在external connection的Export一列中输入当前PIO(HEX0)的实例化名称。
在这里插入图片描述
  默认的外部连接名称如下
在这里插入图片描述
  (6)别忘了,分配基地址这一步骤,即使未出现报错,也没有新增的警告信息。
  在System当中选择Assign Base Address分配基地址。就ok啦
在这里插入图片描述
在这里插入图片描述
  (7)接着,点击Generate HDL。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  (8)完成后弹出如图窗口,直接点击ok。此处可能会稍微卡顿一下,稍等几秒即可。(如果你的电脑很慢,那······)
在这里插入图片描述


6、顶层文件更新

  由于前一小节我们把数码管添加到PIO里了,但是顶层文件里只有module模块定义中定义了6个HEX信号(HEX0、HEX1、HEX2、HEX3、HEX4、HEX5),而后面的soc system实例化语句里并未出现和HEX相关的语句。
  我们回顾一下,soc system实例化语句中出现的一行行语句在platform designer中出现过。我们需要在platform designer工具中找到需要添加的某一个信号的实例化语句。因此,大家在后续实验中,完成PIO的增删改查、platform designer生成HDL文件的步骤后,先不着急finish,而是先点击platform designer工具窗口的左上栏“Generrate”的“show instatiation template”。
  我们这里需要重新打开一下”platform designer”工具,去寻找一位七段数码管的信号实例化语句。这个步骤我在前面已经提过了,一定要不断熟悉才能做到不遗漏、不出错,熟能生巧嘛!在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  选中红框内的一串,注意是从这一行最前面的小点号开始选,一直到注释符号之前的小逗号结束。选中再CTRL+C复制这一串代码,复制到如下图所示位置(反正要放在soc_system u0 ()实例化语句内。
在这里插入图片描述
  注意:复制进来的语句,后半部分的小括号里的内容是要替换的,替换对象是我们在模块定义中定义的HEX0,因为这里HEX0对应的就是第一位的数码管,引脚信息也对得上(引脚不需要咱们手动配置,官方提供的工程文件早已把芯片型号和引脚全设置好了)。
在这里插入图片描述
  修改之后如下图所示:
在这里插入图片描述
  最后把刚刚没有finish的“platform designer”工具关掉,直接点击finish(前条件是你之前增删改查完成PIO后已经点击了generate HDL了)。
在这里插入图片描述


7、工程文件编译、头文件获取、系统文件更新、sd卡系统重设

7.1、工程文件编译

  一定要记得,我们的实验,你每修改一次,养成随手保存的习惯(CTRL+S)。
  首先把前面修改的顶层文件保存了,然后点击全编译,如下图所示:
在这里插入图片描述
在这里插入图片描述
  如果上图当中有那一部分小窗口在你的quartus软件中未显示,可在view工具栏中添加。在这里插入图片描述
在这里插入图片描述
  直到编译完成。
在这里插入图片描述

7.2、头文件获取

  点击开始栏,往下划动界面,直到如下图红框所示字样。
在这里插入图片描述
  展开并选择“SoC EDS Command Shell”
在这里插入图片描述
  打开SoC 的shell指令窗口后,先输入cd + 你的黄金工程所在磁盘,比如我的在d盘,那就cd d:
在这里插入图片描述
  随后enter回车。
在这里插入图片描述
  接着,输入cd + 黄金工程在当前磁盘根目录下的相对路径,比如我这里是cd DE10-Standard_v.1.3.0_SystemCD/Demonstration/SoC_FPGA/DE10_Standard_GHRD/
  注意,由于路径名过长,你可以每输入一个文件夹时只输入开头几个英文字母,然后按TAB键即可自动补全文件夹名或文件名。
在这里插入图片描述
  随后输入“./gen”按下TAB键自动补全为“./generate_hps_qsys_header.sh”。
在这里插入图片描述
  至此,头文件hps_0.h已生成完毕,等后续使用。
在这里插入图片描述
  注意,SoC EDS Command Shell指令框暂时不要关闭,方便后续实验继续使用。

7.3、系统文件更新

  (1)在SoC EDS Command Shell指令框内输入“make dtb”字样。如图:
在这里插入图片描述
  这一步也许会花很长时间,所以此处需要大家耐心等待指令执行完成,每个人执行情况不一样,但只要最后一行是“”就行了。
  当然,如果你报错提示“Nothing to be done for dtb”,那么你就需要把工程文件夹内原先已存在的“soc_system.dtb”文件删了再重新执行make dtb指令。
  最终工程文件夹内出现一个最新生成的“soc_system.dtb”文件。
在这里插入图片描述
  (2)进入工程文件夹内部的“output_files文件夹。
在这里插入图片描述
  进入该文件夹内部后,双击打开“soc_to_rbf.bat”文件,等后续使用。。
在这里插入图片描述
在这里插入图片描述
  等待片刻后,按任意键,退出bat文件的小黑窗口,并生成soc_system.rbf文件,等后续使用。。
在这里插入图片描述

7.4、sd卡系统重设。

  前面让大家下载的文档中还有一个压缩包,内部包括我们此次DE10 SoC实验中sd卡所必须的系统镜像文件。
在这里插入图片描述
  (1)我们需要将这个压缩包解压到一个英文路径下,比如直接放在“D:/DE10-Standard_v.1.3.0_SystemCD”文件夹下。
在这里插入图片描述
  (2)将sd卡通过读卡器连接在电脑上,若弹出三四个需要格式化的小窗口,我们先不管,全都关闭。
在这里插入图片描述
  把sd卡唯一能看见有占用空间的盘格式化。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  然后,在开始栏右键选择磁盘管理。
在这里插入图片描述
  (3)磁盘管理过程中需要我们对sd卡进行删除卷、新建卷操作。而磁盘管理界面还包括我们自己电脑上的其他磁盘,所以,一定要慎重,确定sd卡是哪一个磁盘。比如我个人使用的sd卡是8G或16G存储,那么我就确认了磁盘管理的磁盘。
在这里插入图片描述
  如上图所示,16G存储的SD卡在磁盘管理处显示为一个未分配,两个状态良好的主分区(其实三个状态良好的主分区,但是最左边的太窄了,也就看不见字样了)
  (4)从左往右,从最窄的到第三个状态良好主分区,依次右键删除卷。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  (5)在仅剩未分配处右键卷则新建简单卷,然后一直下一步,直到新建简单卷完毕。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  (6)获取镜像烧录工具
  下载完毕之后,直接在“Win32DiskImager”文件夹内双击打开Win32DiskImager.exe应用程序。
在这里插入图片描述
在这里插入图片描述
  (7)烧录镜像。
  点击Win32DiskImager.exe应用程序中的蓝色文件夹图标,选择镜像文件,我们这里直接去选刚刚下载的DE10_Standard_LXDE.img镜像文件。
在这里插入图片描述
在这里插入图片描述
  注意,这个环节中,读卡器和sd卡都不能与电脑断开。
  接下来点击write,烧写镜像,需要等待一段时间。
在这里插入图片描述
在这里插入图片描述
  这里,要特殊说明一点,在做SoC的实验过程中,我们对sd卡进行格式化、删除卷、新建简单卷、烧写镜像的次数会比较多。但是,如果第一次做的是亮灯实验,第二次做的是按键控制实验,而前后两次实验所使用的soc_system.dtb与soc_system.rbf文件是同样的,那就没必要对sd卡做这些多余的操作。也就是头文件和系统文件不变,sd卡就不需要重新烧写镜像!

  烧写镜像完成之后,弹出成功窗口,点击ok,然后就会弹出一些格式化之类的窗口,还是样的操作,全都关闭(x掉)。
在这里插入图片描述
  不过可以保留唯一一个有文件的盘是展开的,如下图。
在这里插入图片描述


8、HPS_FPGA_LED二进制文件生成、sd卡文件更新

8.1、HPS_FPGA_LED二进制文件生成

  在官方提供的文档里,其实已经包含了HPS_FPGA_LED的C工程文档,其内部文件分别是具有soc_system信息和FPGA端外设地址空间的头文件——hps_0.h、由Makefile指令生成的二进制文件HPS_FPGA_LED(与文件夹名字同名,同名是因为Makefile文件内部设置好了的)、HPS的C工程源文件——main.c、具备读取HPS的C环境以及生成二进制文件的make文件。
在这里插入图片描述
在这里插入图片描述
  Makefile文件用记事本打开后如下所示:
在这里插入图片描述
  (1)我们这里需要把第7节提到的头文件hps_0.h复制到当前文件夹里,替换已存在的头文件。顺便把二进制文件删掉。
在这里插入图片描述
  hps_0.h内部如下:
在这里插入图片描述
在这里插入图片描述
  关于main.c内部代码的详细介绍,本次博客暂不作详细讲解,我们先把步骤缕清晰!
  (2)接下来需要回到SoC EDS Command Shell的指令窗口。先cd +磁盘+冒号。
在这里插入图片描述
  再输入cd + HPS的C工程文件夹路径。
在这里插入图片描述
  再输入make:
在这里插入图片描述
  HPS的C工程文件夹内会生成最新的两个文件。
在这里插入图片描述

8.2、sd卡文件更新

  首先我们需要把sd卡磁盘内的“soc_system.dtb和soc_system.rbf”文件替换成我们再第6节更新得到的文件“soc_system.dtb和soc_system.rbf”。
在这里插入图片描述
在这里插入图片描述
  还有一步,就是把二进制文件复制到sd卡里。
在这里插入图片描述
  至此,sd卡即可弹出电脑,杀入开发板内,开发板准备通电使用咯!


9、片上系统嵌入式工具获取与使用

9.1、MobaXterm获取与安装

  MobaXterm是一款嵌入式开发软件,点击可进入软件获取渠道
在这里插入图片描述
  下载完毕后,点击msi文件安装,一直选下一步即可,记住在桌面上创建快捷方式,找不到的话可以搜索框搜索。
在这里插入图片描述

9.2、MobaXterm使用

  注意,前提条件是sd卡以及接入开发板了,开发板通电并与电脑相连了。另外,开发板的模式MSEL也设置为010100,如下图所示:
在这里插入图片描述

  如果你发现开发板模式切换开关并不是这样,可以用笔尖之类的调一下。
  然后,正式进入片上系统使用环节:
  (1)选择左上角的Session。
在这里插入图片描述
  (2)选择中间的Serial。
在这里插入图片描述  (3)serial port选择USB Serial Port(此处,COM几都无所谓,只要确定了是哪个串口即可,每个人COM号可能有所不同),Speed选择115200,这是串口传输速率。最后ok。
在这里插入图片描述
  (1)、(2)、(3)三个步骤执行完毕后,后续使用可不再执行者三步,后续使用只要保证sd卡、开发板的连接没问题,都可以通过HPS复位键或者开发板的开关键就重新进入系统。
在这里插入图片描述
  (4)按下HPS复位键,即可重启系统。
在这里插入图片描述
在这里插入图片描述
  进入登陆login,用户名是root,密码是空的,所以输入完root再enter,显示输入密码时直接enter就可以了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  (5)由于我们是利用串口线与开发板连接,没有使用网线连接,因此和官方手册不同的是,本次实验需要将sd卡内容挂载到linux系统里,而非通过在linux系统里创建以太网,再通过局域网传输文件。(若有需要,后续也会更新网线连接传输SoC文件相关的博客)
  在当前路径下输入mount /dev/mmcblk0p1 /mnt,然后回车。
在这里插入图片描述
  我们现在可以将当前路径移动到mnt文件夹下看看有没有挂载成功了。
在这里插入图片描述
  看来挂载成功了。
  如果你在mnt文件夹ls发现没有上图这些文件,那就说明挂载失败了,这个时候,你需要先移到根目录下(cd /),在取消挂载(umount /mnt),然后重新挂载,换别的指令挂载(如mount /dev/mmcblk0p2 /mnt,或mount /dev/mmcblk0p3 /mnt),总有一款成功的,总有一款适合你!
  (6)最后一步:在mnt文件夹下,输入“./HPS_FPGA_LED”,代表运行之前通过Makefile对main.c生成的二进制文件。我们看看,开饭版会有什么奇特的效果!
在这里插入图片描述

TerAsic SoC 流水灯

  这色调,这质感!


四、小结

  FPGA学习之路,从理解手册开始,你可以做得更多!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cherry Yuan

再多的奖励也换不回失去的头发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值