STM32L476 Discovery
Contents
Example implementation
As described above, the reference flash algorithm is based on the Open Flash Loader and therefore needs to be added manually using a JLinkDevices.xml file. An example JLinkDevices.xml entry as well as the used pinout in the example flash algorithm
is given below. This example assumes a Winbond W25Q16DV (2MB flash) connected to the Quad-SPI interface of the STM32F446xx. For further information regarding the Open Flash Loader and how to use the JLinkDevices.xml file, please refer to the J-Link User Manual (UM08001), chapter 10 Adding Support for New Devices.
Quad-SPI interface pins
The example algorithm uses the following port pins to interface the (Q)SPI flash.
Alternate function | Port / Pin |
---|---|
QUADSPI_BK1_IO0 | PF8 |
QUADSPI_BK1_IO1 | PF9 |
QUADSPI_BK1_IO2 | PE2 |
QUADSPI_BK1_IO3 | PF6 |
QUADSPI_CLK | PB2 |
QUADSPI_BK1_NCS | PG6 |
JLinkDevices.xml
<Database> <Device> <ChipInfo Vendor="ST" Name="STM32F446ZE" WorkRAMAddr="0x20000000" WorkRAMSize="0x18000" Core="JLINK_CORE_CORTEX_M4" /> <FlashBankInfo Name="Internal Flash" BaseAddr="0x90000000" MaxSize="0x200000" Loader="ST_STM32F446_Reference.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" /> </Device> </Database>
Flash algorithm (*.elf)
This file contains the program routines used by the J-Link DLL during flash programming.
IAR example project
The example project contains a simple counter loop which is linked into the (Q)SPI flash memory region @ address 0x90000000. The project includes the JLinkDevices.xml file as well as the ST_STM32F446_Reference.elf. It runs out-of-the-box. Please note, that IAR EWARM must at least use the J-Link DLL version V6.01a, which supports the Open Flash Loader.