前言

在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了。本文介绍如何从工程目录中提取下载文件,并使用FlashPro软件来单独下载程序。

关于FlashPro

Microsemi FlashPro编程系统是Microsemi的FlashPro软件和硬件编程器的组合。它们可以为PolarFireIGLOO2SmartFusion2RTG4IGLOO®系列ProASIC3系列(包括RT ProASIC3)以及SmartFusionFusionProASIC PLUS旧版和停产闪存FPGA中的所有FPGA提供系统内编程(ISP)。

这里说的FlashPro有两种含义:1.下载器FlashPro 3/4/5,2.下载软件FlashPro。

  • FlashPro5下载器

  • FlashPro 4下载器

  • FlashPro 软件

程序文件的路径

工程目录下,默认会生成一个designer文件夹,打开designer\impl1\led_driver_fp,这个文件夹就是下载程序所需要的FlashPro文件,其中包含pdb程序文件和FlashPro的工程。

也就是说,当需要下载程序时,我们只需要把这个文件夹拷贝给别人就行了,而不用拷贝整个庞大的工程文件夹。

使用FlashPro下载程序文件

1.打开FlashPro软件

在Microsemi软件列表中找到FlashPro并打开,或者在安装目录找到FlashPro程序:F:\Microsemi\Designer\bin\flashpro.exe

2.打开FlashPro工程

选择Open Project,打开工程目录下的FlashPro工程文件:D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver_fp\led_driver.pro

如果已经连接了下载器,会显示下载器的信息,如果没显示,要查看下载器是否连接正确。

3.加载程序文件

默认是没有加载pdb程序文件的,我们需要手动指定。点击Configuration->Load Programming File,加载pdb程序文件。

选择工程目录下的D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver_fp\led_driver.pdb文件

如果加载成功,会在底部显示加载成功的状态信息,并且在右下角会显示当前加载的pdb文件的路径。

4.下载程序

连接FlashPro下载器和开发,点击PROGRAM按钮,就可以下载程序了,会显示下载进度,最后下载成功,会显示RUN PASSED

如果显示红色SCAN CHAIN FAILED或者RUN FAILED,说明下载器和芯片的连接不正常,此时需要检查下载器是否正常,下载器和目标芯片的连接排线是否正常,目标芯片是否供电,USB连接等等。

编程方式配置

FlashPro默认是配置为PROGRAM编程方式,这也是最常用的一种编程方式,主要包括:验证芯片ID,擦除,编程,复位M3等操作,根据pdb文件大小,耗时几十秒,如果我们只想执行其中一项或者几项应该怎么操作呢?

选择Configure Device,进入编程配置选项,可以通过Action下拉来选择进行哪种编程方式。

  • DEVICE_INFO:获取芯片的信息
  • ERASE:擦除FPGA程序和ARM程序
  • READ_IDCODE:读取芯片的ID号
  • RESET_CORTEXM3:复位ARM Cortex-M3硬核

这里有一个经常使用的配置模式,是PROGRAM eNVM选项,这个选项是只给内部的ARM Flash区进行编程,如果我们的工程中用到了M3硬核,这里会显示这个选项。使用这种编程方式的好处就是,如果FPGA配置没有更改,而只修改很小部分的ARM程序,那么就没有必要使用PROGRAM选项,编程时间会很长,如果只使用PROGRAM eNVM编程配置,则速度会非常快。

独立的FlashPro软件安装

FlashPro软件默认是和Libero一起安装,如果想单独安装FlashPro软件,而不想安装体积庞大的Libero也是可以的,不需要注册就可以使用。

官方下载地址:FlashPro v11.9安装包

官网信息:

Starting with Libero SoC v12.0, The FlashPro programming software will no longer be included in the Libero design software nor will it be available in stand-alone mode. Microsemi will be supporting the FlashPro Express v12.0 programming software, which replaces the FlashPro programming software. The last versions of Libero that supports FlashPro are Libero SoC v11.9 and Libero SoC PolarFire v2.3.

中文翻译:

从Libero SoC v12.0开始,FlashPro编程软件将不再包含在Libero设计软件中,也不会以独立模式提供。Microsemi将支持FlashPro Express v12.0编程软件,该软件将替代FlashPro编程软件。支持FlashPro的Libero的最新版本是Libero SoC v11.9和Libero SoC PolarFire v2.3。

从以上官网的说明可以了解到,12.0版本之后的版本将不再包含FlashPro,而只包含Flash Pro Express,这个软件的功能和Flash Pro软件的功能几乎一样。

菊花链拓扑实现多芯片同时编程

通过JTAG协议的菊花链拓扑可以实现多芯片的同时编程,对于同一块PCB上有多块FPGA时,可以节省多个JTAG口所占用的PCB空间。对于嵌入式封闭环境中,有时需要对系统中的FPGA程序进行在线或远程升级,必须将JTAG口引到机箱外,显然这种单JTAG口的菊花链结构是最佳选择。

传统的JTAG下载程序

JTAG菊花链拓扑实现多芯片编程

这种方式虽然好,但是对硬件设计也提出了要求:

  • TMS和TCK的驱动能力

TMS和TCK由于连接了多个器件,所以要求驱动能力要足够,可以采用缓冲器的方式增强驱动能力,当器件较多,通过降低频率,即使不增加缓冲器,也可以提高信号的完整性。

  • TDI到TDO的贯通延时

JTAG协议规定TCK下降沿输出TDI数据有效,并在TCK上升沿采集TDO数据,因此,在整个JTAG链中必须保证TDI至TDO的贯通延时(Propagation Delay)TCPD必须小于TCK的1/2周期TCLK/2,即△T=TCLK/2 –TCPD>0。也就是说,在增加缓冲驱动的情况下,JTAG链路中的芯片总数与每个芯片的TDO延时TDOV(FPGA为TTCKTDO)和TCK频率有关。在芯片总数确定以后,为保证△T>0,可以降低TCK的频率。

将处理器中的JTAG仿真接口连接成菊花链的方式,使用一个JTAG仿真控制器便能访问菊花链中任何一个处理器。如此,只需通过一个JTAG接口便能访问JTAG菊花链中的任何一个器件.但是由于菊花链的串联特性,如果任何一个设备从链路中移走,则链路便断裂开。

Microsemi FlashPro也支持菊花链拓扑方式来进行多芯片编程,但由于手上没有这样连接的硬件,所以没办法进行操作演示,具体的使用方法可以参考FlashPro使用手册:FlashPro 用户手册

FlashPro下载器的其他功能

  • 配合Synopsys Identity Debug实现在线调试
  • 支持多种编程选项:擦除、编程、验证、复位M3、编程M3等
  • 配合Microsemi SoftConsole实现ARM程序的调试和下载
  • 支持导出或运行TCL脚本文件,或通过命令行下载程序
  • 支持菊花链拓扑同时编程多个目标芯片
  • 只更新ARM Cortex-M3的Hex程序
  • 设置编程密钥和AES密钥,增强安全性
  • 导出stp格式单程序文件

以上都是很实用的功能,具体的使用方法可以参考:FlashPro 用户手册,里面介绍的很详细。

本来只想写FlashPro下载程序的部分,没想到这一写就停不下来了。有错误的地方,欢迎指正。

资料下载

推荐阅读


  • 我的个人博客:www.wangchaochao.top
  • 我的公众号:mcu149

Microsemi Libero使用技巧——使用FlashPro单独下载程序的更多相关文章

  1. Microsemi Libero使用技巧——使用FlashPro生成stp程序文件

    前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...

  2. Microsemi Libero使用技巧——使用命令行模式下载程序

    前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...

  3. Microsemi Libero使用技巧——FPGA全局网络的设置

    前言 刚开始做Microsemi FPGA+SoC开发时,会用到几个ARM专用的IP Core,功能一复杂起来,就会遇到某些信号如rst_n不能分配到指定的引脚上的情况,IO类型为CLKBUF,并不是 ...

  4. Microsemi Libero使用技巧——使用第三方编辑器Notepad++

    前言 与Xilinx的ISE和Altera的Quartus一样,Microsemi的编辑器也支持指定第三方编辑器. Microsemi自带的编辑器,没有自动补全功能,也不支持中文注释,非常不好用,为了 ...

  5. Microsemi Libero使用技巧——查看芯片资源占用情况

    前言 与MCU不同,FPGA的资源主要包括:逻辑资源,IO资源,Flash大小,PLL资源,SoC硬核处理器资源等,其中逻辑资源和IO资源是我们主要关心的,本篇文章将介绍,如何通过Microsemi ...

  6. Jlink使用技巧之单独下载HEX文件到单片机

    前言 上一篇文章介绍了使用Keil下载单独的Hex文件到单片机内,本篇文章介绍,如何使用SEGGER官方软件JFlash来进行程序的下载,支持Hex和Bin文件. JFlash的下载和安装 首先,安装 ...

  7. Microsemi Libero系列教程(二)——新建点灯工程

    前言 上一篇文章,介绍了Microsemi Libero系列教程(一)-Libero开发环境介绍,下载,安装与注册,作为嵌入式开发中的Hello World,点灯是再也基础不过的实验了,通过点灯实验, ...

  8. 高效开发技巧:为什么你下载Git项目这么慢?

    文章首发于[博客园-陈树义],点击跳转到原文<高效开发技巧:为什么你下载Git项目这么慢?>. 笔者所在公司采用的是 GitLab 进行版本管理,但许多同事下载 Git 项目的路径是这样的 ...

  9. android 怎样单独下载一个项目

    起因,"网络"不太好."比方铁通的就是不如联通的" 每次运行一边repo sync,十分蛋疼,假设不做full build无需所有下载,着急看某个项目的修改但是 ...

随机推荐

  1. 程序员实用工具,推荐一款代码统计神器GitStats

    阅读全文需7分钟,工具很实用. 1. 前言 对于Git项目开发,有一些可视化的工具,如gitk,giggle等,来查看项目的开发历史.但对于大型的项目,这些简单的可视化工具远远不足以了解项目完整的开发 ...

  2. java之初见

    1.Java语言的了解: Java语言最早是由SUN公司创造出来的,1991年,SUN公司的green项目,Oak,随后SUN公司和后来的甲骨文公司又先后发布了java1.0,1.1,1.2,1.3, ...

  3. Java入门系列之集合HashMap源码分析(十四)

    前言 我们知道在Java 8中对于HashMap引入了红黑树从而提高操作性能,由于在上一节我们已经通过图解方式分析了红黑树原理,所以在接下来我们将更多精力投入到解析原理而不是算法本身,HashMap在 ...

  4. Maven搭建SpringMvc

    Maven搭建SpringMvc,只需跟着一步步操作 项目结构 1 创建Maven项目 index,jsp报错不用管,配置完pom就好了,也可以直接删除掉 2 pom.xml添加依赖 <depe ...

  5. 简单地认识一下 HTML

    简单复盘一下 HTML. 1.HTML 什么是 HTML?HTML 是 Hyper Text Markup Language 的简写,译成中文是「超文本标记语言」. 顾名思义,超文本,就是不止于文本, ...

  6. Mac下PHP连接MySQL报错"No such file or directory"的解决办法

    首先做个简短的介绍. [说明1]MAC下MYSQL的安装路径: /usr/local/mysql-5.1.63-osx10.6-x86_64 数据库的数据文件在该目录的data文件夹中: 命令文件在b ...

  7. 第四章 开始Unity Shader学习之旅(3)

    1. 程序员的烦恼:Debug 调试(debug),大概是所有程序员的噩梦.而不幸的是,对一个Shader进行调试更是噩梦中的噩梦.这也是造成Shader难写的原因之一--如果发现得到的效果不对,我们 ...

  8. uni-app中使用scroll-view滚到底部时多次触发scrolltolower事件

    一.前言.scroll-view基本属性: 前言: 前段时间使用scroll-view可滚动视图区域容器来做多个不同内容的展示(在我这个页面中同时使用了三个scroll-view做数据展示),因为这几 ...

  9. JS的对象、数组等处理方法:解构

    对象方法简写 你可以在定义方法时省略function和 :: const obj = { insteadOfThis: function() { // do stuff }, youCanDoThis ...

  10. 十一、springboot 配置log4j2以及打包成zip文件

    前言 其实我们前面已经配置了日志,但是最近总感觉日志日志格式看的不舒服,并且每次打包都是一个jar 文件,lib都包含在jar 中,每次做很小的修改都需要重新替换jar文件,jar文件会比较大,传输起 ...