Microsemi Libero使用技巧——使用FlashPro单独下载程序
前言
在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了。本文介绍如何从工程目录中提取下载文件,并使用FlashPro软件来单独下载程序。
关于FlashPro
Microsemi FlashPro编程系统是Microsemi的FlashPro软件和硬件编程器的组合。它们可以为PolarFire,IGLOO2,SmartFusion2,RTG4,IGLOO®系列和ProASIC3系列(包括RT ProASIC3)以及SmartFusion,Fusion,ProASIC 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下载程序的部分,没想到这一写就停不下来了。有错误的地方,欢迎指正。
资料下载
推荐阅读
- Microsemi Libero使用技巧——使用第三方编辑器Notepad++
- Microsemi Libero使用技巧——查看芯片资源占用情况
- Microsemi Libero系列教程(一)——Libero开发环境介绍、下载、安装与注册
- Microsemi Libero系列教程(二)——新建点灯工程
- 详解串行通信协议及其FPGA实现
- 我的个人博客:www.wangchaochao.top
- 我的公众号:mcu149

Microsemi Libero使用技巧——使用FlashPro单独下载程序的更多相关文章
- Microsemi Libero使用技巧——使用FlashPro生成stp程序文件
前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...
- Microsemi Libero使用技巧——使用命令行模式下载程序
前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...
- Microsemi Libero使用技巧——FPGA全局网络的设置
前言 刚开始做Microsemi FPGA+SoC开发时,会用到几个ARM专用的IP Core,功能一复杂起来,就会遇到某些信号如rst_n不能分配到指定的引脚上的情况,IO类型为CLKBUF,并不是 ...
- Microsemi Libero使用技巧——使用第三方编辑器Notepad++
前言 与Xilinx的ISE和Altera的Quartus一样,Microsemi的编辑器也支持指定第三方编辑器. Microsemi自带的编辑器,没有自动补全功能,也不支持中文注释,非常不好用,为了 ...
- Microsemi Libero使用技巧——查看芯片资源占用情况
前言 与MCU不同,FPGA的资源主要包括:逻辑资源,IO资源,Flash大小,PLL资源,SoC硬核处理器资源等,其中逻辑资源和IO资源是我们主要关心的,本篇文章将介绍,如何通过Microsemi ...
- Jlink使用技巧之单独下载HEX文件到单片机
前言 上一篇文章介绍了使用Keil下载单独的Hex文件到单片机内,本篇文章介绍,如何使用SEGGER官方软件JFlash来进行程序的下载,支持Hex和Bin文件. JFlash的下载和安装 首先,安装 ...
- Microsemi Libero系列教程(二)——新建点灯工程
前言 上一篇文章,介绍了Microsemi Libero系列教程(一)-Libero开发环境介绍,下载,安装与注册,作为嵌入式开发中的Hello World,点灯是再也基础不过的实验了,通过点灯实验, ...
- 高效开发技巧:为什么你下载Git项目这么慢?
文章首发于[博客园-陈树义],点击跳转到原文<高效开发技巧:为什么你下载Git项目这么慢?>. 笔者所在公司采用的是 GitLab 进行版本管理,但许多同事下载 Git 项目的路径是这样的 ...
- android 怎样单独下载一个项目
起因,"网络"不太好."比方铁通的就是不如联通的" 每次运行一边repo sync,十分蛋疼,假设不做full build无需所有下载,着急看某个项目的修改但是 ...
随机推荐
- echarts对柱状图进行标注,以及取消hover时的阴影
option = { color: ['#3398DB'], tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : ...
- Git学习笔记01--常用Git命令、cmd命令及Git总结性知识
资源:外国网友制作的 Git Cheat Sheet 第二次学习廖雪峰老师的Git教程,学习过程中把教程中涉及到的Git命令及总结性知识记录下来方便二次复习. 知识点 所有的版本控制系统,其实只能跟踪 ...
- SpringCloud Sleuth + Zipkin 实现链路追踪
一.Sleuth介绍 为什么要使用微服务跟踪? 它解决了什么问题? 1.微服务的现状? 随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂 ...
- P1307 数字反转
题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入输出格式 输入格式: 一个 ...
- 后端传给前端Long类型数据,导致精度丢失
1.前几天遇到了一个问题,后端向前端传递一个Long类型的数据,前端拿到的值不对. 2.当Long类型的数据大于17位时候,就会出现精度丢失的情况. 3.解决办法 我们采用的解决方案是将后端的Long ...
- Linux进阶文档丨阿里架构师十年Linux心得,全在这份文档里面
Linux是什么 Linux就是个操作系统: 它和Windows XP.Windows 7.Windows 10什么的一样就是一个操作系统而已! Linux能干什么: 它能当服务器,服务器上安装者各种 ...
- 静态链表-C语言实现
1.静态链表是在没有指针的编程语言里对链表的一种实现2.主要是用数组模拟指针3.在这里,使用结构体使数组的每一个空间可以存储一个数据元素(date)和一个游标(cur),游标的作用相当于链表的指针域, ...
- 【Python成长之路】python 基础篇 -- 装饰器【华为云分享】
[写在前面] 有时候看到大神们的代码,偶尔会用到@来装饰函数.当时查了资料,大致了解装饰器一般用于在不改变原函数的基础上 ,对原函数功能进行修改/增强.使用场景是:日志级别设置.权限校验.性能测试等. ...
- Oracle_视图_索引_plsql_游标_存储过程_存储函数_触发器
-- 感觉有用点个赞呗^v^ select * from emp; drop view persin_vw;--删除视图 create table emp as select * from scott ...
- 最强Java并发编程详解:知识点梳理,BAT面试题等
本文原创更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 知识体系系统性梳理 Java 并发之基础 A. Java进阶 - Java 并发之基础:首先全局的了解并发的知识体系,同时了解 ...