UM0892 User Manual: STM32 ST-LINK Utility Software Description
UM0892 User Manual: STM32 ST-LINK Utility Software Description
User manual
                                    STM32 ST-LINK utility software description
            Introduction
            The STM32 ST-LINK utility software facilitates fast in-system programming of the STM32
            microcontroller families in development environments via the ST-LINK and ST-LINK/V2
            tools.
            This user manual describes the software functions of the STM32 ST-LINK utility. When
            working with the STM32 ST-LINK utility, it is recommended to download the ST-LINK in-
            circuit debugger/programmer for STM8 and STM32 microcontrollers User manual
            (UM0627) or the ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32 User
            manual (UM1075), which provides more information about the ST-LINK tools.
Note:       The part number of the STM32 ST-LINK utility software is STSW-LINK004.
Contents
1          Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
           1.1      System requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
           1.2      Hardware requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
           1.3      Installing the STM32 ST-LINK utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
           1.4      Uninstalling the STM32 ST-LINK utility . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6 Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
List of tables
List of figures
1 Getting started
           This section describes the requirements and the procedures to install the STM32 ST-LINK
           utility software.
           The main window is composed of three zones and three bars, as illustrated in Figure 1:
           •    Memory display zone
           •    Device information zone
           •    Memory content zone
                –    LiveUpdate checkbox to update memory data in real time
                (This feature is described in more detail in Section 3.3)
           •    Title bar: name of the current menu
           •    Menu bar: Use the menu bar to access the following STM32 ST-LINK utility functions:
                –    File menu
                –    Edit menu
                –    View menu
                –    Target menu
                –    Help menu
                These menus are described in more detail in Section 2.2.
           •    Status window: The status bar displays:
                –    Connection status and debug interface
                –    Device ID
                –    Core State (active only when LiveUpdate feature is active and memory grid is
                     selected)
           The STM32 ST-LINK utility user interface also provides additional forms and descriptive
           pop-up error messages.
                             Saves the content of the memory panel into a binary, Intel Hex or Motorola S-
         Save file as…
                             record.
                           Compares two binary, hex, or srec files. The difference is colored in red in the file
         Compare two files panel. If a file contains a section with an address range that is unavailable in the
                           other file, this section is colored in violet.
Paste Pastes the copied cells in the selected position in file or memory grid.
Find Data Finds data in binary or Hex format in file or memory grid.
Fill Memory Fills file or memory grid with the chosen data starting from the chosen address.
                             Connects to the target device and displays the Device Type, Device ID and
         Connect
                             Flash memory size in the device information zone.
                             Performs a Flash memory mass erase and then displays the Flash memory
         Erase Chip
                             content in the memory panel.
                             Erases bank 1 of the Flash memory. This menu is enabled only when
         Erase Bank1
                             connected to an XL-density device.
                             Erases bank 2 of the Flash memory. This menu is enabled only when
         Erase Bank2
                             connected to an XL-density device.
                             Selects sector(s) to erase using the erase sectors dialog window (see
         Erase Sectors…
                             Section 3.4: Flash memory erase for more details).
                             Loads a binary, Intel Hex or Motorola S-record file into the device memory
                             (Flash or RAM). To do this, select a binary, Intel Hex or Motorola S-record file,
         Program…            enter the start address (where to put the file in the device) in the program
                             dialog window and then click on program button (see Section 3.5: Device
                             programming).
                             Loads a binary, Intel Hex or Motorola S-record file into the device memory
         Program & Verify…
                             (Flash or RAM) then performs a verification of the programmed data.
                             Verifies that the STM32 Flash memory is blank. If the Flash memory is not
         Blank Check
                             blank, the first address with data is highlighted in a prompt message.
           Compare device      Compares the MCU device memory content with a binary, hex, or srec file. The
           memory with file    difference is colored in red in the file panel.
                               Opens the option bytes dialog window (See Section 3.6: Option bytes
           Option bytes…
                               configuration for more details).
                               Opens the MCU Core dialog window (See Section 3.7: MCU core functions for
           MCU Core…
                               more details).
                               Opens the Automatic mode dialog window (See Section 3.8: Automatic mode
           Automatic Mode...
                               functions for more details).
                               The Settings dialog box allows to select one ST-LINK probes and defines its
                               connection settings.
                               The ST-LINK probes a list which contains the serial numbers of all probes
                               connected to the computer.
                               If some ST-LINK probes are plugged or unplugged while Settings dialog box is
                               displayed, the "Refresh" button allows the update of the ST-LINK probes list.
                               When the user selects one probe, the firmware version and the connected
                               target (depending on the connection settings) are displayed. After that, user
                               can choose the debug interface (JTAG or SWD) and select the Access Port (in
                               case the device contains multiple Access Ports) to which user wants to
                               connect.
                               Also the reset type can be selected:
                               * The “connect under reset” option allows to connect to the target before
           Settings...
                               executing any instruction. This is useful in many cases like when the target
                               contains a code that disables the JTAG/SWD pins.
                               *The “HotPlug” option allows to connect to the target without halt or reset. This
                               is useful to update RAM addresses or IP registers while application is running.
                               When connecting to the target via an ST-LINK/V2, the “Supply voltage” combo
                               box displays the target voltage.
                                When connecting to an STM32F2 or STM32F4 device using an ST-LINK, the
                               “Supply voltage” combo allows to select the supply voltage of the target to be
                               able to correctly program the Flash memory.
                               The "Enable debug in low-power mode" option allows to connect to a device in
                               low-power mode.
                               If any connection settings changes, the dialog tries to identify the target with
                               the new connection settings.
Note:      The “connect under reset” option is available only with ST-LINK/V2 and in SWD mode.
           For JTAG mode, “connect under reset” is available since ST-LINK/V2 firmware
           version V2J15Sx.
           The RESET pin of the JTAG connector (pin 15) should be connected to the device reset pin.
           The “HotPlug” option is available in SWD mode.
           The low-power mode is disabled when the user disconnects from the target.
           For JTAG mode, “HotPlug” has been available since ST-LINK firmware version V2J15Sx.
         The ST-LINK firmware version to be used in case of multi probes selection, should be:
         •   V1J13S0 or greater for ST-LINK.
         •   V2J21S4 or greater for ST-LINK/V2.
         •   V2J21M5 or greater for ST-LINK/V2-1.
         When an ST-LINK/V2 or ST-LINK/V2-1 probe is used with another application, the serial
         number is not displayed and the probe cannot be used in the current instance of ST-LINK
         utility.
         The STM32 ST-LINK utility includes the Add External Loader submenu which allows to
         select the external loaders to be used by the ST-LINK utility to read, program, or erase
         external memories.
         The external loaders must be added in the ExternalLoader directory located under the ST-
         LINK utility directory (see Section 3.9: Developing customized loaders for external memory
         for more details on how to create a custom loader).
         When the external loaders have been selected in the External Loader dialog box (see
         Figure 9), new submenus are displayed, one per each external loader selected.
         They offer all the functions (Program, Sector Erase...) available in the corresponding
         external loader (see Figure 10).
         The contents of the external memory is displayed in the external memory grid (Figure 11).
         Selecting the Close external memory grid submenu, shuts down the external memory
         grid window.
STM32 ST-LINK utility User Manual Opens the STM32 ST-LINK utility User Manual.
         This section provides a detailed description of how to use STM32 ST-LINK utility features:
         •    Device information
         •    Settings
         •    Memory display and modification
         •    Flash memory erase
         •    Device programming
         •    Option bytes configuration
         •    MCU core functions
         •    Automatic mode functions
                               Family of the connected STM32 device. Each device type includes many
         Device:               devices with different characteristics such as the Flash memory size, the RAM
                               size and peripherals.
Device ID: MCU device ID code located in the external PPB memory map.
3.2        Settings
           The Settings panel dialog box, shown in Figure 14, displays useful information on the
           connected ST-LINK probes and STM32 target, and allows to configure the connection
           settings.
           The user can choose one of the connected ST-LINK probes to use, based on its serial
           number or on the connected target, which is displayed in the STM32 target information
           section.
           When using ST-LINK/V2 or ST-LINK/V2-ISOL, the target voltage is measured and displayed
           in the STM32 target information section.
           Memory data: This zone displays the data read from a file or the memory content of a
           connected device. The user can modify the content of the file before downloading.
           •    To use this zone to display the content of a binary, Intel Hex or Motorola S-record file,
                go to File | Open file...
           •    To use this zone to read and display memory content of a connected device, enter the
                memory start Address, data Size and the Data Width in the Memory display zone and
                then press Enter.
           •    After reading data, the user also can modify each value merely by double-clicking on
                the concerned cell as illustrated by Figure 15. The user also can save the device
                memory content into a binary, Intel Hex or Motorola S-record file using the menu File |
                Save file as...
           •    When LiveUpdate feature is used the device memory grid is updated in real time and
                the data that have been modified are colored in red.
Note:      When the memory data zone displays device memory contents, any modification is
           automatically applied to the chip. The user can modify the user Flash memory, RAM
           memory and peripherals registers.
           For the STM32F2 and STM32F4 devices, the OTP area can be modified directly from the
           memory data zone.
Note:    To erase the Flash data memory sector of the ultra-low-power STM32L1 devices, select the
         data memory box at the end of the list and click Apply.
           2.   Select a binary, Intel Hex or Motorola S-record file and click on the Open button.
           3.   Specify the address from which to start programming, as shown in Figure 18: it may be
                a Flash or a RAM address.
         4.   Select Skip Flash erase option to skip Flash erase operation in case the device is
              already erased
         5.   Select Skip Flash Protection verification to skip Flash memory protection verification in
              case the devise is not protected.
         6.   Choose a verification method by selecting one of the two radio buttons:
              a)   Verify while programming: fast on-chip verification method which compares the
                   program buffer content (portion of file) with the Flash memory content.
              b)   Verify after programming: slow but reliable verification method which reads all the
                   programmed memory zone after the program operation ends and compares it with
                   the file content.
         7.   At last, click on the Start button to start programming:
              a)   If the Reset after programming box is checked, an MCU reset is issued.
              b)   If the Full Flash memory Checksum box is checked, the checksum of the full
                   Flash memory is calculated after programming operation, and displayed in the log
                   window.
         8.   Choose a verification method by selecting one of the two radio buttons:
              a)   Verify while programming: fast on-chip verification method which compares the
                   program buffer content (portion of file) with the Flash memory content.
              b)   Verify after programming: slow but reliable verification method which reads all the
                   programmed memory zone after the program operation ends and compares it with
                   the file content.
         9.   At last, click on the Start button to start programming:
              a)   If Target | Program & Verify... is selected in the first step, a check is done during
                   the programming operation.
              b)   If the Reset after programming box is checked, an MCU reset is issued.
Note:1   The STM32F2 and STM32F4 Series supports different programming modes depending on
         the MCU supply voltage. When using ST-LINK, the MCU supply voltage should be specified
           in the Target | Settings Menu to be able to program the device with the correct mode.
           When using ST-LINK/V2, the supply voltage is detected automatically.
           If the device is read-protected, the protection is disabled. If some Flash memory pages are
           write-protected, the protection is disabled during programming and then recovered.
Note:2     The user can program Hex/Srec files that contains multiple segments for different target
           memory locations (Internal Flash memory, external Flash memory, Option bytes...).
           When programming the Read Out Protection to level 2 (debug and boot in SRAM/system
           Memory features are DISABLED), a message box is displayed for confirmation to avoid
           protecting the chip by accident.
Note:3     The extra options are dedicated for programming operation on unprotected and erased
           devices.
                     check.
                     If checked, SRAM parity check is disabled; otherwise it is enabled.
                –    SDADC12_VDD_Monitor(a):
                     If checked, SDADC12_VDD power supply supervisor is enabled; otherwise it is
                     disabled.
                –    nBoot0_SW_Cfg(b): This bit allows the user to completely disable BOOT0
                     hardware pin and use User Option bit 11 (nBoot0).
                     If checked, the BOOT0 pin is bonded to GPIO pin (PB8 on LQFP32 and smaller
                     packages, PF11 for QFN32 and bigger packages).
           •    Boot address option bytes:
                for devices supporting BOOT_ADDx, it allows the boot from base address defined by
                option bytes BOOT_ADDx.
                BOOT_ADDx[15:0] corresponds to address [29:11].
                For devices supporting both BOOT_ADD0 and BOOT_ADD1, it depends upon BOOT0
                pin:
                –    If BOOT0 = 0 boot from base address defined by option bytes BOOT_ADD0.
                –    If BOOT0 = 1 boot from base address defined by option bytes BOOT_ADD1.
                The user can enter either the address of the boot, or the BOOT_ADDx option bytes
                values.
           •    User data storage option bytes: contains two bytes for user storage. These two
                option bytes are not available in the STM32F0, STM32F2, STM32F3, STM32F4 and
                STM32L1 devices.
           •    Flash Sectors Protection: depending on the connected device, Flash sectors are
                grouped by a defined number of pages. The user can modify the write protection of
                each Flash sector here.
           •    For devices supporting PCRop feature, it is possible to enable/disable the Read
                protection of each sector. The “Flash protection mode” allows to choose between read
                or write protection.
           For STM32L4 devices, the PCROP zone is defined by two addresses as showed in
           Figure 20:
Note: The PC and MSP registers can be modified from this panel.
Note:      If the user deselects Flash programming action while the STM32 Flash memory is readout
           protected, it is automatically unprotected.
           If the user deselects Flash programming action while some or all STM32 Flash memory are
           write-protected, they are automatically unprotected and restored after programming
           operation.
           The connection to the device should be established to be able to select the option bytes
           configuration using the configure button.
           The connected devices should be derivatives of the same STM32 family and must all be
           connected in the same mode (JTAG or SWD).
           The automatic mode cannot be used if more than one ST-LINK probe is connected to the
           computer. A dialog is displayed to prevent the user and ask him to keep only one ST-LINK
           probe connected to continue using this mode.
           Before starting the automatic mode and if the option byte configuration is checked, the
           The SWV information bar displays useful information on the current SWV transfer such as
           the SWO frequency (deduced from the system clock frequency), and the received
           (expressed in bytes).
Note:      Some SWV bytes could be lost during transfer due to ST-LINK hardware buffer size
           limitation.
                 9 = 0.9 MHz
                 10 = 1.8 MHz
           [JTAGCLK=<f>]: frequency [0..6] of JTAG protocol
                 0 = 9.0 MHz (Default value when not specified)
                 1 = 140 KHz
                 2 = 281 KHz
                 3 = 562 KHz
                 4 = 1125 KHz
                 5 = 2250 KHz
                 6 = 4500 KHz
           [JTAG=<f>] is supported with V2J24xx or greater ST-LINK/V2 firmware version.
Note:      When [ID=<id>] and [SN=<sn>] are not specified, the first ST-LINK with ID=0 is selected.
           Selection of ST-LINK by ID or SN should be used with:
           •     V1J13S0 or greater ST-LINK firmware version
           •     V2J21S4 or greater ST-LINK/V2 firmware version
           •     V2J21M5 or greater ST-LINK/V2-1 firmware version
           [UR] available only with ST-LINK/V2 and in SWD mode.
           [LPM] mode is disabled, when the user disconnects from the target.
           For JTAG mode, “connect under reset” has been available since ST-LINK firmware version
           V2J15Sx.
           The RESET pin of the JTAG connector (pin 15) should be connected to the device reset pin.
           [HOTPLUG] available in SWD mode.
           For JTAG mode, HotPlug Connect has been available since ST-LINK firmware version
           V2J15Sx.
           -List
           Description: Lists the corresponding firmware version and the unique Serial Number (SN)
           of every ST-LINK probe connected to the computer.
Note:      To have a correct SN, the ST-LINK firmware version should be:
           •     V1J13S0 or greater for ST-LINK.
           •     V2J21S4 or greater for ST-LINK/V2.
           •     V2J21M5 or greater for ST-LINK/V2-1.
           When an ST-LINK/v2 or ST-LINK/V2-1 probe is used with another application, the serial
           number is not displayed and the probe cannot be used in the current instance of the ST-
           LINK utility.
           -r8
           Description: Reads <NumBytes> memory.
           Syntax: -r8 <Address> <NumBytes>
           Example: -r8 0x20000000 0x100
         -w8
         Description: Writes 8-bit data to the specified memory address.
         Syntax: -w8 <Address> <data>
         Example: -w8 0x20000000 0xAA
Note:    -w8 supports writing to Flash memory, OTP, SRAM and R/W registers.
         -w32
         Description: Writes 32-bit data to the specified memory address.
         Syntax: -w32 <Address> <data>
         Example: -w32 0x08000000 0xAABBCCDD
Note:    -w32 supports writing to Flash memory, OTP, SRAM and R/W registers.
         -HardRst
         Description: Hardware reset.
         Syntax: -HardRst
Note:    -HardRst command is available only with ST-LINK/V2. The RESET pin of the JTAG
         connector (pin 15) should be connected to the device reset pin.
         -Run
         Description: Sets the program counter and stack pointer as defined at user application and
         performs a run operation.
         Syntax:-Run [<Address>]
         Example: -run 0x08003000
         –Halt
         Description: Halts the core.
         Syntax: -Halt
           –Step
           Description: Executes Step core instruction.
           Syntax:-Step
           –SetBP
           Description: Sets the software or hardware breakpoint at a specific address. If an
           address is not specified, 0x08000000 is used.
           Syntax: -SetBP [<Address>]
           Example: -SetBP 0x08003000
           –ClrBP
           Description: Clears all hardware breakpoints, if any.
           Syntax: -ClrBP
           –CoreReg
           Description: Reads the Core registers.
           Syntax: -CoreReg
           –SCore
           Description: Detects the Core status.
           Syntax: -SCore
           -SE
           Description: Erases Flash sector(s).
           Syntax: -SE <Start_Sector> [<End_Sector>]
           Example: -SE 0        => Erase sector 0
           -SE 2 12 => Erase sectors from 2 to 12
           *For STM32L Series, the following cmd erases data eeprom:
           -SE ed1 => Erases data eeprom at 0x08080000
         -P
         Description: Loads binary, Intel Hex or Motorola S-record file into device memory without
         verification. For hex and srec format, the address is relevant.
         Syntax: -P <File_Path> [<Address>]
         Examples: -P C:\file.srec
         -P C:\file.bin 0x08002000
         -P C:\file.hex
Note:    Depending on the STM32 supply voltage, STM32F2 and STM32F4 Series support different
         programming modes . When using ST-LINK/V2, the supply voltage is detected
         automatically. Therefore, the correct programming mode is selected. When using ST-LINK,
         the 32-bit programming mode is selected by default.
         If the device is read-protected, the protection is disabled. If some Flash memory pages are
         write-protected, the protection is disabled during programming and then recovered.
         -V
         Description: Verifies that the programming operation was performed successfully.
         Syntax: -V [while_programming/after_programming]
         Example: -P *C:\file.srec* -V "after_programming"
Note:    If no argument is provided the while_programming verification method is performed.
         -Cksum
         Description: Calculates the Checksum value of a given file or a specified memory zone.
         The algorithm used is the simple arithmetic sum algorithm, byte per byte. The result is
         truncated to 32-bit word.
         Syntax: -Cksum <File_Path>
           -Dump
           Description: Reads target memory and save it in a file
           Syntax: -Dump<Address> <Memory_Size> <File_Path>
           -Log
           Description: Enables Trace LOG file generation.
           The log file is generated under %userprofile%\STMicroelectronics\ST-LINK utility.
           -NoPrompt
           Description: Disables user confirmation prompts (For example, to program RDP Level 2
           within a file).
           -Q
           Description: Enables quiet mode. No progress bar displayed.
           -TVolt
           Description: Displays target voltage.
           -OB
           Description: Configures the option bytes. This command:
           •     sets the Read Protection Level to Level 0 (no protection)
           •     sets the IWDG_SW option to ‘1’ (watchdog enabled by software)
           •     sets the nRST_STOP option to ‘0’ (reset generated when entering Standby mode)
           •     sets the Data0 option byte
           •     sets the Data1 option byte
           Syntax: -OB [RDP=<Level>][BOR_LEV=<Level>][IWDG_SW=<Value>]
         [nRST_STOP=<Value>][nRST_STDBY=<Value>][nBFB2=<Value>]
         [nBoot1=<Value>][nSRAM_Parity=<Value>][Data0=<Value>]
         [SPRMOD=<Value>][Data1=<Value>][WRP=<Value>][WRP2=<Value>]
         [WRP3=<Value>][WRP4=<Value>]
         [BOOT_ADD0=<Value>]
         [BOOT_ADD1=<Value>]
         Example:–OB RDP=0 IWDG_SW=1 nRST_STOP=0 Data0=0xAA Data1=0xBC
         RDP=<Level>:
         RDP=<Level> sets the Flash memory read protection level.
             The <Level> could be one of the following levels:
                  0: Protection disabled
                  1: Protection enabled
                  2: Protection enabled (debug and boot in SRAM features are DISABLED)
Note:    Level 2 is available on STM32F0, STM32F2, STM32F3, STM32F4 and STM32L1 Series
         only.
         BOR_LEV=<Level>:
         BOR_LEV sets the Brownout Reset threshold level.
             For STM32L4 Series:
                  0: Reset level threshold is around 1.7 V
                  1: Reset level threshold is around 2.0 V
                  2: Reset level threshold is around 2.2 V
                  3: Reset level threshold is around 2.5 V
                  4: Reset level threshold is around 2.8 V
             For STM32L1 Series:
                  0: BOR OFF, 1.45 to 1.55 V voltage range
                  1: 1.69 to 1.8 V voltage range
                  2: 1.94 to 2.1 V voltage range
                  3: 2.3 to 2.49 V voltage range
                  4: 2.54 to 2.74 V voltage range
                  5: 2.77 to 3.0 V voltage range
             For STM32F2 and STM32F4 Series:
                  0: BOR OFF, 1.8 to 2.10 V voltage range
                  1: 2.10 to 2.40 V voltage range
                  2: 2.40 to 2.70 V voltage range
                  3: 2.70 to 3.60 V voltage range
           IWDG_SW=<Value>:
               The <Value> should be 0 or 1:
                    0: Hardware-independent watchdog
                    1: Software-independent watchdog
           nRST_STOP=<Value>:
               The <Value> should be 0 or 1:
                    0: Reset generated when CPU enters the Stop mode
                    1: No reset generated.
           nRST_STDBY=<Value>:
               The <Value> should be 0 or 1:
                    0: Reset generated when CPU enters the Standby mode
                    1: No reset generated.
           PCROP_RDP=<Value>:
               The <Value> should be 0 or 1:
                    0: PCROP area is not erased when the RDP level is decreased from Level 1 to
                    Level 0.
                    1: PCROP area is erased when the RDP level is decreased from Level 1 to Level
                    0 (full mass erase).
           PCROPA_STRT=<Value>:
               Sets the PCROP start zone for bank A
               Refer to the reference manual of the corresponding device <Value>
           PCROPA_END
               Sets the PCROP end zone for bank A
               Refer to the reference manual of the corresponding device <Value>
           PCROPB_STRT
               Sets the PCROP start zone for bank B
               Refer to the reference manual of the corresponding device <Value>
           PCROPB_END
               Sets the PCROP end zone for bank B
               Refer to the reference manual of the corresponding device <Value>
           VDDA=<Value>:
               The <Value> should be 0 or 1:
                    0: VDDA power supply supervisor disabled
                    1: VDDA power supply supervisor enabled
         DUALBANK=<Value>:
             The <Value> should be 0 or 1:
                  0: Single bank Flash.
                  1: Dual bank Flash.
         BFB2=<Value>:
             Dual-bank boot
             The <Value> should be 0 or 1:
                  0: Dual-bank boot disable.
                  1: Dual-bank boot enable.
         SRAM2_RST=<Value>:
             SRAM2 Erase when system reset
             The <Value> should be 0 or 1:
                  0: SRAM2 erased when a system reset occurs.
                  1: SRAM2 is not erased when a system reset occurs.
         SRAM2_PE=<Value>:
             SRAM2 parity check enable
             The <Value> should be 0 or 1:
                  0: SRAM2 parity check enable.
                  1: SRAM2 parity check disable.
         nBFB2=<Value>:
             The <Value> should be 0 or 1:
                  0: Boot from Flash bank 2 when boot pins are set in boot from user Flash position
                  (default)
                  1: Boot from Flash bank 1 when boot pins are set in boot from user Flash position
                  (default).
Note:    nBFB2 is available only on devices containing two Flash banks.
         nBoot0_SW_Cfg=<Value>:
         Only for STM32F04x
             The <Value> should be 0 or 1:
                  0: It allows the user to disable BOOT0 hardware pin completely and use User
                  Option bit 11 (nBoot0).
                  1: The BOOT0 pin is bonded to GPIO pin (PB8 on LQFP32 and smaller packages,
                  PF11 for QFN32 and bigger packages).
         nBoot0=<Value>:
         Only for STM32F04x and only when nBoot0_SW_Cfg is set.
             The <Value> should be 0 or 1:
             Select the Boot mode together with nBoot1 (SeeTable 1 below).
           nBoot1=<Value>:
           Only for STM32F0 and STM32F3 Series
               The <Value> should be 0 or 1:
           nSRAM_Parity=<Value>:
           This bit allows the user to enable the SRAM hardware parity check.
               The <Value> should be 0 or 1.
Note:      nSRAM_Parity is available only on STM32F0 and STM32F3 Series.
           SDADC12_VDD=<Value>:
           It selects the analog monitoring (comparison with Bgap 1.2V voltage) on SDADC12_VDD
           Power source.
               The <Value> should be 0 or 1.
Note:      SDADC12_VDD is available only on STM32F37x devices.
           Data0=<Value>:
           Data0 sets the Data0 option byte.
               The <Value> should be in [0..0xFF].
Note:      Not available on STM32F0, STM32F2, STM32F3, STM32F4 and STM32L1 devices.
         Data1=<Value>:
         Data1 sets the Data1 option byte.
             The <Value> should be in [0..0xFF].
Note:    Not available on STM32F0, STM32F2, STM32F3, STM32F4 and STM32L1 Series.
         SPRMOD =<Value>:
         Selection of Protection Mode of WPRi bits:
             The <Value> should be 0 or 1.
                  0: WPRi bits used for Write Protection on sector i (Default).
                  1: WPRi bits used for PCRoP Protection (read protection) on sector i (Sector).
Note:    Available only on devices supporting PCRop feature.
         WPRMOD =<Value>:
         Selection of Protection Mode of WPRi bits:
             The <Value> should be 0 or 1.
                  0: WPRi bits used for Write Protection on sector i (Default).
                  1: WPRi bits used for PCRoP Protection (read protection) on sector i (Sector).
Note:    Available only on STM32L0 devices supporting PCRop feature.
         WRP=<Value>:
         WRP enables/disables the write protection of the MCU Flash sectors.
         Depending on the connected device, each bit enables/disables the write protection of one
         sector or more.
             For STM32L1 devices, WRP[i] = 0: Flash sector(s) is protected.
             For other devices, WRP[i] = 1: Flash sector(s) is protected.
         This command is sufficient to enable/disable all Flash sector protection, except for
         STM32L1 medium density plus and high density where WRP2, WRP3 and WRP4
         commands can be mandatory.
         For STM32F4 Series, each bit of WRP enables/disables the write protection of one sector.
             The <Value> should be in [0..0xFFFFFFFF]
Note:    For devices supporting PCRop feature, WRP controls the read protection of the MCU Flash
         sectors when SPRMOD = 1.
         WRP2=<Value>:
         WRP2 is available only for STM32L1 medium density plus, high density and high density
         plus devices to enable/disable the protection of Flash sectors from page 512 to 1023.
             The <Value> should be in [0..0xFFFFFFFF].
Note:      For devices supporting PCRop feature, WRP controls the read protection of the MCU Flash
           sectors when SPRMOD = 1.
           WRP3=<Value>:
           WRP3 is available only for STM32L1 high density and high density plus devices to
           enable/disable the protection of Flash sectors from page 1024 to 1535.
                 The <Value> should be in [0..0xFFFFFFFF]
           WRP4=<Value>:
           WRP4 is available only on STM32L1 high density plus devices to enable/disable the
           protection of Flash sectors from sector 1536 to sector 2047.
                The <Value> should be in [0..0xFFFFFFFF]
           BOOT_ADD0=<Value>:
           Boot Address enable when BOOT0 = 0.
                 The <Value> should be in [0..0xFFFF].
                 BOOT_ADD0[15:0] corresponds to address [29:14]
           BOOT_ADD1=<Value>:
           Boot Address enable when BOOT0 = 1.
                 The <Value> should be in [0..0xFFFF].
                 BOOT_ADD1[15:0] correspond to address [29:14]
           DB1M =<Value>:
           Dual-Bank on 1-Mbyte Flash memory:
                 The <Value> should be 0 or 1.
Note:1     Available on STM32F42x/STM32F43x 1-Mbyte devices supporting dual bank swap.
Note:2     All parameters listed above should be in hexadecimal format.
           For more details, refer to the Option bytes section in the Flash programming manual
           corresponding to the device available at the www.st.com website.
In an external loader project, there are two basic files: Loader_Src.c and Dev_Inf.c
6 Revision history
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and
improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on
ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order
acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or
the design of Purchasers’ products.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.