DSP

STM32的烧录文件.bat 解析

2019-07-13 18:07发布

@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)STMicroelectronicsSTM32 ST-LINK UtilityST-LINK UtilityST-LINK_CLI.exe"
set STLINKUTIL="C:Program Files (x86)STMicroelectronicsSTM32 ST-LINK UtilityST-LINK UtilityST-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文件拓进去