Hello,
On Linux 22.04.2 LTS. I'm trying to flash a board with ozone 3.30 with J-Trace Pro ARM Cortex-M.
I must say that this worked in the past with this board (in the past, I was using an older version of ozone. I don't remember
which but not very old. BTW I switched to 3.3 AFTER the bug occurs so it's not 3.30 specific.).
Today flash fails in ozone 3.30 with this log:
Display All
If I switch to command line, It works as expected:
Display All
Now, switch back to ozone. It checks that firmware is the same and runs:
Display All
What could it be?
Thanks
Julien
On Linux 22.04.2 LTS. I'm trying to flash a board with ozone 3.30 with J-Trace Pro ARM Cortex-M.
I must say that this worked in the past with this board (in the past, I was using an older version of ozone. I don't remember
which but not very old. BTW I switched to 3.3 AFTER the bug occurs so it's not 3.30 specific.).
Today flash fails in ozone 3.30 with this log:
Brainfuck Source Code
- Debug.Start();
- Device "STM32L471RG" selected.
- InitTarget() start
- SWD selected. Executing JTAG -> SWD switching sequence.
- DAP initialized successfully.
- InitTarget() end - Took 4.68ms
- Found SW-DP with ID 0x2BA01477
- DPIDR: 0x2BA01477
- CoreSight SoC-400 or earlier
- Scanning AP map to find all available APs
- AP[1]: Stopped AP scan as end of AP map has been reached
- AP[0]: AHB-AP (IDR: 0x24770011)
- Iterating through AP map to find AHB-AP to use
- AP[0]: Core found
- AP[0]: AHB-AP ROM base: 0xE00FF000
- CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
- Found Cortex-M4 r0p1, Little endian.
- FPUnit: 6 code (BP) slots and 2 literal slots
- CoreSight components:
- ROMTbl[0] @ E00FF000
- [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
- [0][1]: E0001000 CID B105E00D PID 003BB002 DWT
- [0][2]: E0002000 CID B105E00D PID 002BB003 FPB
- [0][3]: E0000000 CID B105E00D PID 003BB001 ITM
- [0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU
- [0][5]: E0041000 CID B105900D PID 000BB925 ETM
- Connected to target device.
- Reset: Halt core after reset via DEMCR.VC_CORERESET.
- Reset: Reset device via AIRCR.SYSRESETREQ.
- ------------------------------------------- _SetupTarget
- Elf.GetBaseAddr(); // returns 0x8041000
- Target.ReadU32 (0x08041000); // returns 0x4, data is 0x20018000
- Target.SetReg ("SP", 0x20018000);
- Elf.GetEntryPointPC(); // returns 0x804C404
- Target.SetReg ("PC", 0x804C404);
- J-Link: Flash download: Bank 0 @ 0x08000000: 1 range affected (96256 bytes)
- J-Link: Flash download: Total: 1.588s (Prepare: 0.071s, Compare: 0.066s, Erase: 1.037s, Program: 0.321s, Verify: 0.032s, Restore: 0.059s)
- J-Link: Flash download: Program speed: 292 KB/s
- Verification failed @ address 0x08041000
- Download failed: error during verification phase
- ------------------------------------------- _SetupTarget
- Elf.GetBaseAddr(); // returns 0x8041000
- Target.ReadU32 (0x08041000); // returns 0x4, data is 0x20018000
- Target.SetReg ("SP", 0x20018000);
- Elf.GetEntryPointPC(); // returns 0x804C404
- Target.SetReg ("PC", 0x804C404);
If I switch to command line, It works as expected:
Source Code
- SEGGER J-Link Commander V7.84b (Compiled Jan 11 2023 16:43:08)
- DLL version V7.84b, compiled Jan 11 2023 16:42:38
- Connecting to J-Link via USB...O.K.
- Firmware: J-Trace PRO V2 Cortex-M compiled Jun 6 2023 10:51:16
- Hardware version: V2.00
- J-Link uptime (since boot): 0d 00h 06m 27s
- S/N: 752000945
- License(s): RDI, FlashBP, FlashDL, JFlash, GDB
- USB speed mode: High speed (480 MBit/s)
- IP-Addr: DHCP (no addr. received yet)
- Emulator has RAWTRACE capability
- VTref=3.329V
- Type "connect" to establish a target connection, '?' for help
- J-Link>connect
- Please specify device / core. <Default>: STM32L471RG
- Type '?' for selection dialog
- Device>
- Please specify target interface:
- J) JTAG (Default)
- S) SWD
- T) cJTAG
- TIF>S
- Specify target interface speed [kHz]. <Default>: 4000 kHz
- Speed>
- Device "STM32L471RG" selected.
- Connecting to target via SWD
- InitTarget() start
- InitTarget() end
- Found SW-DP with ID 0x2BA01477
- DPIDR: 0x2BA01477
- CoreSight SoC-400 or earlier
- Scanning AP map to find all available APs
- AP[1]: Stopped AP scan as end of AP map has been reached
- AP[0]: AHB-AP (IDR: 0x24770011)
- Iterating through AP map to find AHB-AP to use
- AP[0]: Core found
- AP[0]: AHB-AP ROM base: 0xE00FF000
- CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
- Found Cortex-M4 r0p1, Little endian.
- FPUnit: 6 code (BP) slots and 2 literal slots
- CoreSight components:
- ROMTbl[0] @ E00FF000
- [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
- [0][1]: E0001000 CID B105E00D PID 003BB002 DWT
- [0][2]: E0002000 CID B105E00D PID 002BB003 FPB
- [0][3]: E0000000 CID B105E00D PID 003BB001 ITM
- [0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU
- [0][5]: E0041000 CID B105900D PID 000BB925 ETM
- Memory zones:
- Zone: Default Description: Default access mode
- Cortex-M4 identified.
- J-Link>loadfile /home/ju/dev/XXXXXXXXXXXXXXXXXXXXXXXXXXXX/_build/split_v1/bin-gcc/split-dbg.elf
- 'loadfile': Performing implicit reset & halt of MCU.
- Reset: Halt core after reset via DEMCR.VC_CORERESET.
- Reset: Reset device via AIRCR.SYSRESETREQ.
- Downloading file [/home/ju/dev/XXXXXXXXXXXXXXXXXXXXXXXXXXXX/_build/split_v1/bin-gcc/split-dbg.elf]...
- J-Link: Flash download: Bank 0 @ 0x08000000: 4 ranges affected (24576 bytes)
- J-Link: Flash download: Total: 0.776s (Prepare: 0.073s, Compare: 0.080s, Erase: 0.323s, Program & Verify: 0.274s, Restore: 0.024s)
- J-Link: Flash download: Program & Verify speed: 87 KB/s
- O.K.
- J-Link>OnDisconnectTarget() start
- OnDisconnectTarget() end
Now, switch back to ozone. It checks that firmware is the same and runs:
Brainfuck Source Code
- Debug.Start();
- Device "STM32L471RG" selected.
- InitTarget() start
- SWD selected. Executing JTAG -> SWD switching sequence.
- DAP initialized successfully.
- InitTarget() end - Took 4.61ms
- Found SW-DP with ID 0x2BA01477
- DPIDR: 0x2BA01477
- CoreSight SoC-400 or earlier
- Scanning AP map to find all available APs
- AP[1]: Stopped AP scan as end of AP map has been reached
- AP[0]: AHB-AP (IDR: 0x24770011)
- Iterating through AP map to find AHB-AP to use
- AP[0]: Core found
- AP[0]: AHB-AP ROM base: 0xE00FF000
- CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
- Found Cortex-M4 r0p1, Little endian.
- FPUnit: 6 code (BP) slots and 2 literal slots
- CoreSight components:
- ROMTbl[0] @ E00FF000
- [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
- [0][1]: E0001000 CID B105E00D PID 003BB002 DWT
- [0][2]: E0002000 CID B105E00D PID 002BB003 FPB
- [0][3]: E0000000 CID B105E00D PID 003BB001 ITM
- [0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU
- [0][5]: E0041000 CID B105900D PID 000BB925 ETM
- Connected to target device.
- Reset: Halt core after reset via DEMCR.VC_CORERESET.
- Reset: Reset device via AIRCR.SYSRESETREQ.
- ------------------------------------------- _SetupTarget
- Elf.GetBaseAddr(); // returns 0x8041000
- Target.ReadU32 (0x08041000); // returns 0x4, data is 0x20018000
- Target.SetReg ("SP", 0x20018000);
- Elf.GetEntryPointPC(); // returns 0x804C404
- Target.SetReg ("PC", 0x804C404);
- J-Link: Flash download: Bank 0 @ 0x08000000: Skipped. Contents already match
- ------------------------------------------- _SetupTarget
- Elf.GetBaseAddr(); // returns 0x8041000
- Target.ReadU32 (0x08041000); // returns 0x4, data is 0x20018000
- Target.SetReg ("SP", 0x20018000);
- Elf.GetEntryPointPC(); // returns 0x804C404
- Target.SetReg ("PC", 0x804C404);
What could it be?
Thanks
Julien