STM32的烧录文件.bat 解析

本文介绍了一个用于STM32微控制器固件烧录的批处理脚本,该脚本通过ST-LINK工具实现固件和引导加载程序的烧录。文章详细展示了如何设置ST-LINK路径、指定固件文件位置、定义烧录地址偏移等关键步骤。

@echo off
setlocal

:: Be sure to install the ST-LINK drivers and Utility application for Windows
:: Location of ST-LINK_CLI.exe, which is part of the Utility application
:: set STLINKUTIL="C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe"
set STLINKUTIL="C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe"//这个位置需要修改

:: Please update the bootloader and firmware image names accordingly
:: If dealing with one product, it is fine to update for just one product (don't need them all)
:: Firmware per product
:: Projector

set PROJECTOR_BL=pico_bootloader.bin //文件名需要修改如果有必要
set PROJECTOR_FW=pico_controller0103.bin

:: Update bootloader / firmware address offsets accordingly:
set BL_ADDRESS_OFFSET=0x08000000//文件的烧录地址需要根据,具体需求进行修改
set FW_ADDRESS_OFFSET=0x08004000

:: Usage - be sure to execute valence_flash.bat with respective bootloader/firmware images from the same directory
:: To flash projector: > valence_flash.bat projector

set data0=0xcd   //这是跳转的指令
set data1=0xab
set BL=%PROJECTOR_BL%
set FW=%PROJECTOR_FW%

::if [%1] == [] goto errorusage

::if %1 == projector (
::  set BL=%PROJECTOR_BL%
 :: set FW=%PROJECTOR_FW%
::) else (
::  goto Errorusage
::)


:getoptend
:: check JTAG adapter found
echo checking JTAG ...
call :CheckSTLink
if %ERRORLEVEL% neq 0 (
  exit /B %ERRORLEVEL%
)

:: attempt to connect to device
echo connect to device ...
call :Connect
if %ERRORLEVEL% neq 0 (
  exit /B %ERRORLEVEL%
)

:: erase flash
echo erase flash ...
call :EraseFlash
if %ERRORLEVEL% neq 0 (
  exit /B %ERRORLEVEL%
)

:: flash bootloader
set FILE=%BL%
set ADDRESS=%BL_ADDRESS_OFFSET%
echo flash bootloader %FILE% AT %ADDRESS% ...
call :Flash
if %ERRORLEVEL% neq 0 (
  exit /B %ERRORLEVEL%
)

:: flash firmware
set FILE=%FW%
set ADDRESS=%FW_ADDRESS_OFFSET%
echo flash bootloader %FILE% AT %ADDRESS% ...
call :Flash
if %ERRORLEVEL% neq 0 (
  exit /B %ERRORLEVEL%
)
::DFU_Mode
%STLINKUTIL% -OB Data0=%data0% Data1=%data1% 1>NUL 2>&1
echo DFU_Mode Data0 Data1 complete

:: reset device
call :SysReset


echo start Reset
echo  %ERRORLEVEL%
exit /B %ERRORLEVEL%

 


:errorusage
echo USAGE ERROR:
echo valence_flash.bat espresso
echo valence_flash.bat concert
exit /B 1


:: function CheckSTLink: check ST-LINK adpater exists
:: Input:
:: Output: ERRORLEVEL
:CheckSTLink
%STLINKUTIL% -List
exit /B %ERRORLEVEL%

:: function Connect: connect to the device
:: Input:
:: Output: ERRORLEVEL
:Connect
%STLINKUTIL% -c SWD UR LPM RM=Hrst
exit /B %ERRORLEVEL%

:: function SysReset: cause a system reset
:: Input:
:: Output: ERRORLEVEL
:SysReset
%STLINKUTIL% -Rst
exit /B %ERRORLEVEL%

:: function HardReset: cause a hardware reset
:: Input:
:: Output: ERRORLEVEL
:HardReset
%STLINKUTIL% -HardRst
exit /B %ERRORLEVEL%

:: function EraseFlash: full chip erase
:: Input:
:: Output: ERRORLEVEL
:EraseFlash
%STLINKUTIL% -ME
exit /B %ERRORLEVEL%

:: function Flash: Load firmware of FILE into ADDRESS and verify
:: Input: FILE - filepath, ADDRESS - location in flash
:: Output: ERRORLEVEL
:Flash
%STLINKUTIL% -V -P %FILE% %ADDRESS%
exit /B %ERRORLEVEL%

 

烧录的过程是按住shift按键,打开命令窗口。把bat文件拓进去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值