Microsemi Libero使用技巧4——使用命令行模式下載程序

在這裏插入圖片描述


系列教程:Microsemi Libero系列教程

前言

在工程代碼編譯完成之後,如果需要給某個芯片下載程序時,或者是工廠量產燒錄程序時,我們不需要把整個工程文件給別人,而只需要把生成的下載文件給別人,然後使用FlashPro就可以單獨下載程序文件了。上一篇文章介紹瞭如何使用圖形化界面——FlashPro軟件,來進行pdb文件的下載,本文介紹如何通過命令行腳本來調用FlashPro軟件進行程序的下載。

關於FlashPro

關於FlashPro下載器及FlashPro軟件的介紹,可以查看上一篇文章:Microsemi Libero使用技巧——使用FlashPro單獨下載程序

關於FlashPro執行TCL腳本文件

FlashPro 用戶手冊中有一個章節專門介紹了Batch Mode(批處理模式)來使用FlashPro,詳細介紹了各種批處理命令,如new projectset_programming_fileset_programming_actionrun_selected_actionsclose_project等命令,使用這些命令等同於使用圖形化界面來執行打開工程、加載程序文件、選擇編程選項、運行等步驟,即通過命令行執行這些操作。

例如使用FlashPro執行一個TCL腳本文件的命令行指令:

<location of Microsemi software>/bin/flashpro.exe script:batch.tc

即:[flashpro.exe的路徑] script:name.tcl

而這個TCL腳本文件的功能就可以根據需要來指定了,如只編程FPGA部分,只編程ARM部分,只擦除程序等等。所有的命令使用方法都在FlashPro 用戶手冊中有詳細的介紹。而如果只想進行程序下載,應該如何來編寫一個TCL文件呢?這個很簡單,不需要我們編寫,Microsemi Libero軟件在生成下載文件時,已經爲我們生成好了,在我們執行Program Device,對FPGA進行編程時,Libero軟件就是在執行這個腳本文件。這個腳本文件位於:\LED_Blink\designer\impl1\led_driver_fp\led_driver.tcl,腳本文件已經生成好了,就是將我們工程編譯生成的pdb文見燒寫到FPGA內。具體內容如下:

open_project -project {D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver_fp\led_driver.pro}
set_programming_file -no_file
set_device_type -type {A2F200M3F}
set_device_package -package {208 PQFP}
update_programming_file \
    -feature {prog_fpga:on} \
    -fdb_source {fdb} \
    -fdb_file {D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver.fdb} \
    -feature {prog_from:off} \
    -feature {prog_nvm:off} \
    -pdb_file {D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver_fp\led_driver.pdb}
set_programming_action -action {PROGRAM}
run_selected_actions
save_project
close_project

每個命令和參數的意義可以對照FlashPro 用戶手冊進行查看,不過從字面意思我們也可以大概瞭解整個TCL腳本執行的過程:

  • 打開工程,指定模式爲單芯片模式
  • 設置芯片型號和封裝
  • 指定fdb文件和pdb文件絕對路徑
  • 設置編程選項爲:全編程,包括FPGA和ARM
  • 運行編程
  • 保存關閉工程

使用命令行來燒寫程序

1.添加FlashPro.exe文件路徑到系統環境變量

使用Everything搜索軟件全局搜索FlashPro.exe文件,可以看到FlashPro.exe文件位於安裝目錄下的F:\Microsemi\Designer\bin文件夾下:

添加到系統變量->PATH->F:\Microsemi\Designer\bin

2.運行TCL腳本文件

\LED_Blink\designer\impl1\led_driver_fp目錄運行Git Bash工具,運行命令:

flashpro script:led_driver.tcl

輸出編程狀態信息:

Qt: Untested Windows version 6.2 detected!
FlashPro
Version: 11.8.2.4
Release: Libero SoC v11.8 SP2

Software Version: 11.8.2.4
PDB file 'D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver_fp\led_driver.pdb' has been loaded successfully.
DESIGN : led_driver;  CHECKSUM : 23A8;  PDB_VERSION : 1.9
Driver : 3.0.0 build 1
programmer '08152' : FlashPro4
Opened 'D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver_fp\led_driver.pro'
The 'open_project' command succeeded.
The 'set_programming_file' command succeeded.
The 'set_device_type' command succeeded.
The 'set_device_package' command succeeded.
Info:  Adding FPGA Array data from file D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver.fdb.
PDB file 'D:\FPGA_Study\Microsemi\Blog\LED_Blink\designer\impl1\led_driver_fp\led_driver.pdb' has been loaded successfully.
DESIGN : led_driver;  CHECKSUM : 23A8;  PDB_VERSION : 1.9
The 'update_programming_file' command succeeded.
The 'set_programming_action' command succeeded.
programmer '08152' : Scan Chain...
programmer '08152' : Scan Chain PASSED.
programmer '08152' : Executing action PROGRAM
programmer '08152' : EXPORT FSN[48] = 01538a207858
programmer '08152' : Erase ...
programmer '08152' : Completed erase
programmer '08152' : EXPORT CHECKSUM[16] = 23a8
programmer '08152' : Programming FPGA Array
programmer '08152' : Verifying FPGA Array
programmer '08152' :         Verifying FPGA Array -- pass
programmer '08152' : Finished: Wed Oct 09 19:21:27 2019 (Elapsed time 00:00:34)
programmer '08152' : Executing action PROGRAM PASSED.

                        o - o - o - o - o - o

The 'run_selected_actions' command succeeded.
Project saved.
The 'save_project' command succeeded.
Project closed.
The 'close_project' command succeeded.
The Execute Script command succeeded.

可以看到和在Libero中運行Program Device時,輸出同樣的編程信息:

稍等幾十秒,就會看到程序執行成功的信息。

使用bat批處理文件簡化命令行操作

在工程目錄\LED_Blink\designer\impl1\led_driver_fp下新建batch_mode.bat文本文件,文件方式編輯,輸入以下內容:

flashpro script:led_driver.tcl
echo 燒寫完成
pause

如果想要下載程序,只需要直接雙擊這個批處理文件,稍等幾十秒,然後看到"燒寫完成",就說明燒寫成功了。

由於windows自帶的cmd命令行沒有後臺運行和交互的功能,所以這種方式不會顯示下載的狀態信息,我手動添加了"燒寫完成"的提示:

關於bat批處理文件的更多實用技巧可以參考:BAT批處理基本命令總結

FlashPro下載器的其他功能

  • 配合Synopsys Identity Debug實現在線調試
  • 支持多種編程選項:擦除、編程、驗證、復位M3、編程M3等
  • 配合Microsemi SoftConsole實現ARM程序的調試和下載
  • 支持導出或運行TCL腳本文件,或通過命令行下載程序
  • 支持菊花鏈拓撲同時編程多個目標芯片
  • 只更新ARM Cortex-M3的Hex程序
  • 設置編程密鑰和AES密鑰,增強安全性
  • 導出stp格式單程序文件

以上都是很實用的功能,具體的使用方法可以參考:FlashPro 用戶手冊,裏面介紹的很詳細。

總結

本篇文章主要介紹一個命令[flashpro.exe的路徑] script:name.tcl,通過使用此命令,可以實現不用打開FlashPro軟件,而直接進行程序燒寫,其實調用的還是FlashPro軟件,只不過沒有了圖形化界面。使用這種方法可以簡化操作的過程,但是不能顯示下載的進度,如擦除、編程、完成等狀態,如果熟練掌握了FlashPro支持的TCL命令,可以根據需要寫出很實用的腳本文件。

資料下載

推薦閱讀


在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章