跳到主要内容

烧录器配置

烧录你的程序到芯片

我们支持多种烧录软件:

项目类型烧录器
8BIT Projectstvp for stm8, stcgal, any shell command
Arm Projectjlink, stlink, pyocd, openocd, any shell command
RISCV Projectjlink, pyocd, openocd, any shell command

你可以在项目中切换烧录器

安装烧录工具

烧录工具没有集成到 EIDE 安装包中,因此在使用烧录功能之前需要安装相应的 flasher 工具

点击 烧录程序 按钮启动 flasher 程序,我们将检查你的 flasher 可执行程序,如果它还没有安装,我们将弹出一个通知,现在你可以安装或设置 flasher

如果您想为 flasher 选择一个现有的安装位置,您需要修改 eide 的插件设置

这里是插件的 flasher 设置列表:

FlasherVSCode Settings ID
STVPEIDE.STM8.STVP.CliExePath
JLinkEIDE.JLink.InstallDirectory
STLinkEIDE.STLink.ExePath
OpenocdEIDE.OpenOCD.ExePath
提示

你可以将 flasher 可执行文件的路径设置到系统环境变量,eide 会找到它

基础配置

安装你的烧录器软件

在开始配置之前,必须先安装好你的烧录软件

在开始烧录程序之前,您需要检查 flasher 配置

每个 flasher 配置都有一些基本字段,如下所示:

  • Program File:程序文件路径(xxx.hex, xxx.bin, xxx.s19

    格式:<filepath_1>[,addr_1][;<filepath_2>[,addr_2];...;<filepath_n>]

    对于这个字段,我们支持一些变量:

    ${OutDir}: 输出目录
    ${ProjectName}: 项目名称
    ${ExecutableName}: 可执行文件输出路径,不含后缀
    ${ProjectRoot}: 项目根目录
    ${<EnvVarName>}: `Project Settings` -> `Env Variables` 中的变量

    示例:

    • ${ExecutableName}.hex:使用 '${ExecutableName}.hex' 文件进行烧录

    • ./bootloader.hex;${ExecutableName}.hex:首先,烧录 './bootloader.hex' 文件,然后烧录 '${ExecutableName}.hex' 文件

    • ./bootloader.bin,0x08000000;${ExecutableName}.hex:首先,烧录 './bootloader.bin' 文件到地址 '0x08000000',然后烧录 '${ExecutableName}.hex' 文件

    • ./bootloader.bin,0x08000000;${ExecutableName}.bin,0x08100000:首先,烧录 './bootloader.bin' 文件到地址 '0x08000000',然后烧录 '${ExecutableName}.bin' 文件到地址 '0x08100000'

    默认值

    如果这个字段值为 空白,则 ${ExecutableName}.hex 作为该字段的值

    多文件烧录

    上述的多文件烧录仅支持 JLink, OpenOCD, pyOCD 烧录器;对于其它类型的烧录器,需要切换至 Custom 烧录器,然后编写脚本自定义烧录流程

特定的配置

每个 flasher 都有其特定的配置

安装你的烧录器软件

在开始配置之前,必须先安装好你的烧录软件

  • CPU Name:JLink 芯片名

    我们将从 JLink 中提取所有可用的 cpu 供您选择

    点击 更改 按钮,将弹出一个列表

  • Interface Type:仿真器接口

    可用值:

    SWD
    JTAG
    cJTAG
    FINE
  • Download Speed:烧录器速率,单位:KHz

  • Extra CommandLine:传递给 JLink 的其他命令行选项

    示例选项:

    • -SelectEmuBySN <SN-Code>: It is possible to have multiple J-Links connected to the PC at the same time. Provide the JLink S/N Code for J-Link Commander to connect to a specific J-Link in an automated way (no user interaction required).

    前往 https://wiki.segger.com/J-Link_Commander#Batch_processing 查看更多的选项

对于 STLink,我们支持两种烧录软件:ST_Cube_ProgrammerSTLink_Utility
默认情况下,我们使用 ST_Cube_Programmer

  • Interface Type:仿真器接口

    可用值:SWD, JTAG

  • Reset Mode:烧录时的复位类型

    可用值:default, software, hardware, core reset

  • Launch App After Program:烧录结束后启动程序

    可用值:truefalse

  • Download Speed:烧录器速率,单位:KHz

  • External Loader File:烧录算法文件(xxx.stldr

  • Option Bytes Config:选项字节设置

  • Extra CommandLine:其他命令行选项

PyOCD

pyOCD: Python based tool and API for debugging, programming, and exploring Arm Cortex microcontrollers.

安装 PyOCD

https://pyocd.io/docs/installing.html

配置

  • Target Name:目标 MCU 名称

    我们将从 PyOCD 中提取所有可用的 cpu 供您选择

    更多信息请参考:target support

  • Download Speed:烧录器速率

    可用值:参考 debug probes

    默认值:4M

  • Other Options:pyOCD 配置文件

    请参考 pyocd config file

OpenOCD

OpenOCD, the Open On-Chip Debugger has been created by Dominic Rath as part of a diploma thesis at the University of Applied Sciences, FH-Augsburg. For other material presented on this site, see the respective notes of authorship.

安装

Windows 安装包:https://freddiechopin.info/en/download/category/4-openocd

官方站点:https://openocd.org/pages/getting-openocd.html

建议的版本

我们建议使用 v0.10.0 版本

配置

  • Chip Config:MCU 配置文件

    我们将从 openocd 中提取所有可用值供您选择

  • Interface Config:调试探针配置文件

    我们将从 openocd 中提取所有可用值供您选择

如何编写 openocd 配置文件:https://openocd.org/doc-release/html/Config-File-Guidelines.html#Config-File-Guidelines

自定义配置文件

如果你有现成的 xx.cfg 文件,将其放到 <projectRootFolder>, <projectRootFolder>/.eide<projectRootFolder>/tools 文件夹内
插件会找到它们,然后您可以重新选择配置文件

STVP

Only available for 8Bit Project

STVP-STM8 被用来烧录 STM8

  • CPU Name:STM8 芯片名

    我们将从 stvp 中提取所有可用的 stm8 芯片供您选择

  • eeprom Data File Path:eeprom 数据文件

    路径必须只包含 ASCII 码,且不能有空格

  • Option Bytes File Path:stm8 选项字节

    路径必须只包含 ASCII 码,且不能有空格

STCGAL

STCGAL 是一个为 STC MCU Ltd 8051 芯片而准备的命令行烧录软件

注意: STCGAL 支持有限数量的芯片模型

stcgal should fully support STC 89/90/10/11/12/15/8 series MCUs.

So far, stcgal was tested with the following MCU models:

* STC89C52RC (BSL version: 4.3C/6.6C)
* STC90C52RC (BSL version: 4.3C)
* STC89C54RD+ (BSL version: 4.3C)
* STC12C2052 (BSL version: 5.8D)
* STC12C2052AD (BSL version: 5.8D)
* STC12C5608AD (BSL version: 6.0G)
* STC12C5A16S2 (BSL version: 6.2I)
* STC12C5A60S2 (BSL version: 6.2I/7.1I)
* STC11F02E (BSL version: 6.5K)
* STC10F04XE (BSL version: 6.5J)
* STC11F08XE (BSL version: 6.5M)
* STC12C5204AD (BSL version: 6.6H)
* STC15F104E (BSL version: 6.7Q)
* STC15F204EA (BSL version: 6.7R)
* STC15L104W (BSL version: 7.1.4Q)
* STC15F104W (BSL version: 7.1.4Q and 7.2.5Q)
* IAP15F2K61S2 (BSL version: 7.1.4S)
* STC15L2K16S2 (BSL version: 7.2.4S)
* IAP15L2K61S2 (BSL version: 7.2.5S)
* STC15W408AS (BSL version: 7.2.4T)
* STC15W4K56S4 (BSL version: 7.3.4T, UART and USB mode)
* STC8A8K64S4A12 (BSL version: 7.3.9U)
* STC8F2K08S2 (BSL version: 7.3.10U)

安装

在开始之前,你必须安装 python3 环境

然后执行以下命令安装 STCGAL

pip3 install stcgal --user

然后你可以用以下命令检查是否安装完毕

stcgal -h

配置

  • eeprom Data File Path:eeprom 数据文件

    路径必须只包含 ASCII 码,且不能有空格

  • Extra CommandLine:其他 stcgal 命令行

    参考 stcgal usage

  • Other Config:stc 烧录参数

    参考 stcgal option keys

烧录程序

在 stcgal 输出:Cycling power done 之后,你必须复位才能启动一个烧录流程
否则 stcgal 将一直处于等待状态

使用 Shell 命令烧录

我们支持使用任何 shell 命令来编程您的 flash

  • Flash Command:当用户触发烧录命令时执行的 shell 命令

  • Erase Chip Command:当用户触发全片擦除命令时执行的 shell 命令

shell 可执行文件

对于 Win32,shell 命令将使用 CMD.exe 执行
对于 Unix,shell 命令将使用 /bin/bash 执行

在 Windows 中执行 unix shell 命令或脚本

我们为 Windows 内置了 unix shell 终端,所以你可以直接使用 bash 命令执行命令/脚本来实现复杂的烧录流程


shell 命令有一些可用的变量:

  • ${programFile}:程序文件的路径

    该变量的值位于 Base Config -> Program File

  • ${port}:可用的串口名(比如:COM1, COMxttyUSB0, ttyUSBx

当可以使用多个程序文件时,以下变量可用:

  • ${programFile[n]}:第 n 个程序文件路径(n 从 0 开始)

  • ${binAddr[n]}:第 n 个程序文件的烧录地址(n 从 0 开始)

一些简单的示例命令:

# execute unix shell script
bash ./xxx/xxx.sh [script arguments...]

# use NuLink to program nuvoton mcu
NuLink -w APROM "${programFile}"

# use stcflash to program stc 8051 mcu
python ./tools/stcflash.py -p ${port} "${programFile}"

# use STM32CubeProgramer + STLink probe to program STM32 mcu
STM32_Programmer_CLI -c port=SWD FREQ=4000 mode=NORMAL reset=SWrst --download "${programFile}" -v --go

编写shell脚本:

如果你的烧录流程比较复杂,含有多个步骤,你也可以自行编写 shell 脚本来执行烧录

首先,在 烧录配置 -> Flash Command UI 中填写: bash ./program_flash.sh "${programFile}"

在工程根目录下新建一个 program_flash.sh 文件,内容如下:

# 要烧录的文件路径
HEX_PATH=$1

# 如果你的脚本需要同时兼容windows和linux环境,
# 你可能需要在这个分支中做一些兼容处理
if uname | grep -qi 'mingw'; then
# Windows 下会进入这里
HEX_PATH=$(echo $HEX_PATH | sed 's/\\/\//g') # Windows 下需要将路径中的 \ 转换成 /
else
# Linux 下会进入这里
fi

echo ==========================
echo - FILE: ${HEX_PATH}
echo ==========================

# 接下来你可以在此处编写你的烧录流程 ....

接下来,在上述脚本中编写你的烧录流程

完成后,点击烧录按钮即可执行烧录

Windows平台上的unix命令支持

Windows上仅支持有限的unix命令,可用的命令见此处