I'm using OZone, JFlash, Flasher Portable with Open Flash Loader for custom board using STM32F730V8, but I ran into unnecessary troubles due to lack of understanding of how to write JLinkDevices.xml.
The following description is tested with OZone (v3.22a) and J-Link (V6.92). Also, by executing JLinkDLLUpdater.exe, OZone is set to refer to J-Link (v6.92).
1) Inheritance of existing device settings
From the J-Link release notes and the URL below, I thought that it could not be inherited with the Aliases attribute, but when I tried it with J-Link of v6.92, I found that it could be inherited with Aliases.
However, regarding FlashBankInfo, OZone has the expected settings, but JFlash does not reflect the settings.
[SOLVED] JFlash/JLink v6.34e and Aliases in JLinkDevices.xml
For example, when the following settings are added to JLinkDevices.xml, the device selection screen for OZone and JFlash is as follows.
JLinkDevices.xml
Display All
OZone:
forum.segger.com/index.php/Attachment/4473/
JFlash:
forum.segger.com/index.php/Attachment/4472/
forum.segger.com/index.php/Attachment/4474/forum.segger.com/index.php/Attachment/4475/forum.segger.com/index.php/Attachment/4476/
2) Regarding WorkRAMAddr and WorkRAMSize
Regarding WorkRAMAddr and WorkRAMSize, if you do not set it in JLinkDevices.xml, it seems that the default values built into J-Link (WorkRAMAddr = 0x20020000, WorkRAMSize = 0x1C000 for STM32F730V8) are used, but JFlash ignores this setting. And it works as expected with the Flash Loader settings (Loader Project MemoryMap.xml settings). In contrast, OZone always follows WorkRAMAddr and WorkRAMSize.
For this reason, I was worried about why FlashLoader, which works with JFlash, does not work with OZone. It happened that when I checked the contents of the RAM, I found that the FlashLoader wasn't loaded at the expected address, and realized the need for WorkRAMAddr and WorkRAMSize.
The following description is tested with OZone (v3.22a) and J-Link (V6.92). Also, by executing JLinkDLLUpdater.exe, OZone is set to refer to J-Link (v6.92).
1) Inheritance of existing device settings
From the J-Link release notes and the URL below, I thought that it could not be inherited with the Aliases attribute, but when I tried it with J-Link of v6.92, I found that it could be inherited with Aliases.
However, regarding FlashBankInfo, OZone has the expected settings, but JFlash does not reflect the settings.
[SOLVED] JFlash/JLink v6.34e and Aliases in JLinkDevices.xml
For example, when the following settings are added to JLinkDevices.xml, the device selection screen for OZone and JFlash is as follows.
JLinkDevices.xml
XML Source Code
- <Device>
- <ChipInfo Vendor="ST" Name="STM32F730V8" Core="JLINK_CORE_CORTEX_M7" Aliases="Palawan_1;Palawan_2" />
- </Device>
- <Device>
- <ChipInfo Vendor="ST" Name="Palawan_1" Core="JLINK_CORE_CORTEX_M7" WorkRAMAddr="0x20010000" WorkRAMSize="0x0002C000" />
- <FlashBankInfo Name="QSPI Flash" BaseAddr="0x90000000" MaxSize="0x01000000" Loader="Devices/ST/STM32F7/ST_STM32F730V8_Palawan_QSPI.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1" />
- </Device>
- <Device>
- <ChipInfo Vendor="ST" Name="Palawan_2" Core="JLINK_CORE_CORTEX_M7" WorkRAMAddr="0x20020000" WorkRAMSize="0x0001C000" />
- <FlashBankInfo Name="QSPI Flash" BaseAddr="0x90000000" MaxSize="0x08000000" Loader="Devices/ST/STM32F7/ST_STM32F730V8_Palawan_QSPI.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1" />
- </Device>
forum.segger.com/index.php/Attachment/4473/
JFlash:
forum.segger.com/index.php/Attachment/4472/
forum.segger.com/index.php/Attachment/4474/forum.segger.com/index.php/Attachment/4475/forum.segger.com/index.php/Attachment/4476/
2) Regarding WorkRAMAddr and WorkRAMSize
Regarding WorkRAMAddr and WorkRAMSize, if you do not set it in JLinkDevices.xml, it seems that the default values built into J-Link (WorkRAMAddr = 0x20020000, WorkRAMSize = 0x1C000 for STM32F730V8) are used, but JFlash ignores this setting. And it works as expected with the Flash Loader settings (Loader Project MemoryMap.xml settings). In contrast, OZone always follows WorkRAMAddr and WorkRAMSize.
For this reason, I was worried about why FlashLoader, which works with JFlash, does not work with OZone. It happened that when I checked the contents of the RAM, I found that the FlashLoader wasn't loaded at the expected address, and realized the need for WorkRAMAddr and WorkRAMSize.