Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STM32F030F4P6: Can't flash because chip is write protected #705

Closed
6 tasks done
Kezii opened this issue Apr 5, 2018 · 11 comments · Fixed by #1124
Closed
6 tasks done

STM32F030F4P6: Can't flash because chip is write protected #705

Kezii opened this issue Apr 5, 2018 · 11 comments · Fixed by #1124

Comments

@Kezii
Copy link

Kezii commented Apr 5, 2018

  • Programmer/board type: Stlink/v2
  • Programmer firmware version: Don't know
  • Operating system: Arch Linux
  • Stlink tools version: just compiled from git
  • Stlink commandline tool name: st-flash
  • Target chip: STM32F030F4P6
 ./st-flash  --reset write firmware.bin     0x8000000
st-flash 1.4.0-32-gaaf8e92
2018-04-05T23:36:50 INFO common.c: Loading device parameters....
2018-04-05T23:36:50 INFO common.c: Device connected is: F0 small device, id 0x10006444
2018-04-05T23:36:50 INFO common.c: SRAM size: 0x1000 bytes (4 KiB), Flash: 0x4000 bytes (16 KiB) in pages of 1024 bytes
2018-04-05T23:36:50 INFO common.c: Attempting to write 5932 (0x172c) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08001400 erased
2018-04-05T23:36:50 INFO common.c: Finished erasing 6 pages of 1024 (0x400) bytes
2018-04-05T23:36:50 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2018-04-05T23:36:50 INFO flash_loader.c: Successfully loaded flash loader in sram
2018-04-05T23:36:53 ERROR flash_loader.c: flash loader run error
2018-04-05T23:36:53 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1

./st-info --probe
Found 1 stlink programmers
 serial: 303030303030303030303031
openocd: "\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x31"
  flash: 16384 (pagesize: 1024)
   sram: 4096
 chipid: 0x0444
  descr: F0 small device

I can't manage to flash one of these: https://www.ebay.com/itm/Mini-System-Development-Board-ARM-STM32-F030F4P6-CORTEX-M0-Core-32bit-48-MHz/331978736223?hash=item4d4b79825f:g:NncAAOSw-09aQKDm

It seems to --probe correctly, erase correctly, the stlink led flashes, but it does not flash the actual firmware, i tried to flash the same firmware with the same setup on an stm32f103c8t6 and it worked.
I'm using a cheap chinese stlink clone.

Output with --debug:

2018-04-05T23:14:00 DEBUG common.c: stlink current mode: mass
2018-04-05T23:14:00 DEBUG common.c: stlink current mode: mass
2018-04-05T23:14:00 DEBUG common.c: *** stlink_enter_swd_mode ***
2018-04-05T23:14:00 DEBUG common.c: *** looking up stlink version
2018-04-05T23:14:00 DEBUG common.c: st vid         = 0x0483 (expect 0x0483)
2018-04-05T23:14:00 DEBUG common.c: stlink pid     = 0x3748
2018-04-05T23:14:00 DEBUG common.c: stlink version = 0x2
2018-04-05T23:14:00 DEBUG common.c: jtag version   = 0x11
2018-04-05T23:14:00 DEBUG common.c: swim version   = 0x4
2018-04-05T23:14:00 DEBUG common.c: *** stlink_jtag_reset ***
2018-04-05T23:14:00 DEBUG common.c: *** stlink_reset ***
2018-04-05T23:14:01 INFO common.c: Loading device parameters....
2018-04-05T23:14:01 DEBUG common.c: *** stlink_core_id ***
2018-04-05T23:14:01 DEBUG common.c: core_id = 0x0bb11477
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 0 is 0xe0042000
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10006444 is 0x40015800
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 ffff0010 is 0x1ffff7cc
2018-04-05T23:14:01 INFO common.c: Device connected is: F0 small device, id 0x10006444
2018-04-05T23:14:01 INFO common.c: SRAM size: 0x1000 bytes (4 KiB), Flash: 0x4000 bytes (16 KiB) in pages of 1024 bytes
2018-04-05T23:14:01 DEBUG common.c: *** set_swdclk ***
2018-04-05T23:14:01 DEBUG common.c: stlink current mode: debug (jtag or swd)
2018-04-05T23:14:01 DEBUG common.c: stlink current mode: debug (jtag or swd)
2018-04-05T23:14:01 DEBUG common.c: *** stlink_force_debug_mode ***
2018-04-05T23:14:01 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:01 DEBUG common.c:   core status: halted
2018-04-05T23:14:01 INFO common.c: Attempting to write 5932 (0x172c) bytes to stm32 address: 134217728 (0x8000000)
2018-04-05T23:14:01 DEBUG common.c: *** stlink_core_id ***
2018-04-05T23:14:01 DEBUG common.c: core_id = 0x0bb11477
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 1 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Successfully unlocked flash
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 2 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 8000000 to 0x40022014
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 42 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 82 to 0x40022010
st-flash 1.5.0
data_len = 2 0x2
 77 14


Flash page at addr: 0x08000000 erased2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 82 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 45670123 to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 cdef89ab to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Successfully unlocked flash
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 2 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 8000400 to 0x40022014
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 42 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 82 to 0x40022010

Flash page at addr: 0x08000400 erased2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 82 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 45670123 to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 cdef89ab to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Successfully unlocked flash
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 2 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 8000800 to 0x40022014
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 42 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 82 to 0x40022010

Flash page at addr: 0x08000800 erased2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 82 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 45670123 to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 cdef89ab to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Successfully unlocked flash
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 2 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 8000c00 to 0x40022014
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 42 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 82 to 0x40022010

Flash page at addr: 0x08000c00 erased2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 82 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 45670123 to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 cdef89ab to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Successfully unlocked flash
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 2 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 8001000 to 0x40022014
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 42 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 82 to 0x40022010

Flash page at addr: 0x08001000 erased2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 82 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 45670123 to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 cdef89ab to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Successfully unlocked flash
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 2 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 8001400 to 0x40022014
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 42 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 10 is 0x4002200c
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 82 to 0x40022010

Flash page at addr: 0x08001400 erased2018-04-05T23:14:01 INFO common.c: Finished erasing 6 pages of 1024 (0x400) bytes
2018-04-05T23:14:01 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_mem32 52 bytes to 0x20000000
2018-04-05T23:14:01 INFO flash_loader.c: Successfully loaded flash loader in sram
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 82 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 45670123 to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 cdef89ab to 0x40022004
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Successfully unlocked flash
2018-04-05T23:14:01 DEBUG common.c: *** stlink_read_debug32 2 is 0x40022010
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_debug32 1 to 0x40022010
2018-04-05T23:14:01 DEBUG common.c: Finished unlocking flash, running loader!
2018-04-05T23:14:01 DEBUG flash_loader.c: Running flash loader, write address:0x8000000, size: 1024
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_mem32 1024 bytes to 0x20000034
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_reg
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_reg
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_reg
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_reg
2018-04-05T23:14:01 DEBUG common.c: *** stlink_write_reg
2018-04-05T23:14:01 DEBUG common.c: *** stlink_run ***
2018-04-05T23:14:01 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:01 DEBUG common.c:   core status: running
2018-04-05T23:14:01 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:01 DEBUG common.c:   core status: running
2018-04-05T23:14:01 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:01 DEBUG common.c:   core status: running
2018-04-05T23:14:01 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:01 DEBUG common.c:   core status: running
2018-04-05T23:14:01 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:01 DEBUG common.c:   core status: running
2018-04-05T23:14:01 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:01 DEBUG common.c:   core status: running

...

2018-04-05T23:14:04 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:04 DEBUG common.c:   core status: running
2018-04-05T23:14:04 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:04 DEBUG common.c:   core status: running
2018-04-05T23:14:04 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:04 DEBUG common.c:   core status: running
2018-04-05T23:14:04 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:04 DEBUG common.c:   core status: running
2018-04-05T23:14:04 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:04 DEBUG common.c:   core status: running
2018-04-05T23:14:04 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:04 DEBUG common.c:   core status: running
2018-04-05T23:14:04 DEBUG common.c: *** stlink_status ***
2018-04-05T23:14:04 DEBUG common.c:   core status: running
2018-04-05T23:14:04 ERROR flash_loader.c: flash loader run error
2018-04-05T23:14:04 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
2018-04-05T23:14:04 DEBUG common.c: *** stlink_read_debug32 0 is 0x8000000
2018-04-05T23:14:04 DEBUG common.c: *** stlink_write_reg
2018-04-05T23:14:04 DEBUG common.c: *** stlink_read_debug32 0 is 0x8000004
2018-04-05T23:14:04 DEBUG common.c: *** stlink_write_reg
2018-04-05T23:14:04 DEBUG common.c: *** stlink_run ***
2018-04-05T23:14:04 DEBUG common.c: *** stlink_exit_debug_mode ***
2018-04-05T23:14:04 DEBUG common.c: *** stlink_write_debug32 a05f0000 to 0xe000edf0
2018-04-05T23:14:04 DEBUG common.c: *** stlink_close ***

data_len = 2 0x2
 80 00

data_len = 2 0x2
 80 00

data_len = 2 0x2
 80 00

data_len = 2 0x2
 80 00

data_len = 2 0x2
 80 00

data_len = 2 0x2
 81 00

data_len = 2 0x2
 81 00

stlink_fwrite_flash() == -1
@Kezii
Copy link
Author

Kezii commented Apr 5, 2018

Ok the issue was that the chip had the usual write protection enabled, I had to use a serial adapter and execute this other tool

stm32flash -k /dev/ttyUSB0

To unlock it.

So, maybe, this issue can be changed to "make st-flash give an appropriate warning on what's happening" because this was rather counter intuitive

@Kezii Kezii closed this as completed Apr 5, 2018
@xor-gate xor-gate reopened this Apr 6, 2018
@xor-gate xor-gate changed the title Can't flash STM32F030F4P6 Can't flash STM32F030F4P6 because it is write protected Apr 6, 2018
@xor-gate
Copy link
Member

xor-gate commented Apr 6, 2018

There are multiple issues closed and related to write protected microcontrollers which can be unprotected by mass erase and then flash. Not sure how we can detect this but it is a serious usability problem of the tools.

@hggq
Copy link

hggq commented Jun 1, 2018

my stm32f103
stm32f1xx_hal_msp.c file
/**DISABLE: JTAG-DP Disabled and SW-DP Disabled
*/
__HAL_AFIO_REMAP_SWJ_ENABLE();

enable sw is ok

now stm32CubeMX Create project this value default Disabled

st-flash write bin file not write in
2018-06-01T17:51:44 INFO common.c: Loading device parameters....
2018-06-01T17:51:44 WARN common.c: Invalid flash type, please check device declaration
Unknown memory region

@joe-skb7
Copy link

joe-skb7 commented Jun 9, 2018

Just my two cents: had the same situation, only for STM32F1. Managed to disable write protection using STLinkV2 (which is integrated in STM32F1DISCOVERY board) via OpenOCD command:

$ openocd -f interface/stlink-v2.cfg \
          -f target/stm32f1x.cfg \
          -c "init; reset halt; stm32f1x unlock 0; reset halt; exit"

where target is your CPU or board.

@nit1995
Copy link

nit1995 commented Feb 6, 2019

@joe-skb7 I get the same error as @hggq for my STM21L171 device. How do I disable write protection using openocd?

@joe-skb7
Copy link

joe-skb7 commented Feb 7, 2019

@nit1995 See my post above.

@Nightwalker-87 Nightwalker-87 modified the milestones: General, v1.6.1 Feb 19, 2020
@Nightwalker-87 Nightwalker-87 modified the milestones: v1.6.1, Feedback required Feb 21, 2020
@Nightwalker-87 Nightwalker-87 added this to To do in Release v1.6.1 via automation Feb 21, 2020
@Nightwalker-87 Nightwalker-87 self-assigned this Feb 21, 2020
@Nightwalker-87 Nightwalker-87 removed this from To do in Release v1.6.1 Mar 19, 2020
@Nightwalker-87 Nightwalker-87 removed their assignment Mar 28, 2020
@Nightwalker-87 Nightwalker-87 modified the milestones: Feedback required, Device issues Mar 31, 2020
@Nightwalker-87 Nightwalker-87 changed the title Can't flash STM32F030F4P6 because it is write protected STM32F030F4P6: Can't flash because chip is write protected Mar 31, 2020
@Nightwalker-87 Nightwalker-87 removed this from the Device issues milestone Apr 6, 2020
@Nightwalker-87 Nightwalker-87 added this to the Flash-loader errors milestone Apr 6, 2020
@kahanchudasama
Copy link

Just my two cents: had the same situation, only for STM32F1. Managed to disable write protection using STLinkV2 (which is integrated in STM32F1DISCOVERY board) via OpenOCD command:

$ openocd -f interface/stlink-v2.cfg \
          -f target/stm32f1x.cfg \
          -c "init; reset halt; stm32f1x unlock 0; reset halt; exit"

where target is your CPU or board.

HI,
can you please guide me how can we achive level 2 protection through openocd

@joe-skb7
Copy link

@kahanchudasama Locking with OpenOCD can be done as shown here (in Flash Driver: stm32f1x section, see lock command). Something like this should work (if you use STLinkv2 programmer and your chip is STM32F1xx):

$ openocd -f interface/stlink-v2.cfg \
          -f target/stm32f1x.cfg \
          -c "init; reset halt; stm32f1x lock 0; reset halt; exit"

Whether it's level 2 or no -- can't say for sure, but documentation for lock command says:

Locks the entire stm32 device against reading.

I think it's better to read STM32 corresponding registers and check how exactly it was locked, after performing mentioned OpenOCD lock command. Either that, or check how that OpenOCD commands is implemented.

@Nightwalker-87
Copy link
Member

As @xor-gate mentioned this is a serious usability problem.
Can somebody propose a PR to finally fix this in the toolset?

@Nightwalker-87 Nightwalker-87 modified the milestones: c) Flash loader run errors, a) Old issues Mar 11, 2021
@Nightwalker-87 Nightwalker-87 modified the milestones: Old issues, v1.6.3 Apr 4, 2021
@Nightwalker-87 Nightwalker-87 added this to To do in Release v1.8.0 via automation Apr 4, 2021
@Nightwalker-87
Copy link
Member

IMHO documentation should be improved here.
Can one think of a reasonable way to remove write protection via the toolset directly?

@Ant-ON
Copy link
Collaborator

Ant-ON commented Apr 5, 2021

@Nightwalker-87 Yes it possible through writing of protection bits (part of option bytes).
I added check WRPERR error to the https://github.com/Ant-ON/stlink/tree/fl_fix branch. In the event of a write error due to the set protection bits, a corresponding message should be displayed.

@Nightwalker-87 Nightwalker-87 modified the milestones: v1.7.1, v1.7.0 Apr 5, 2021
@Nightwalker-87 Nightwalker-87 removed this from To do in Release v1.8.0 Apr 5, 2021
@Nightwalker-87 Nightwalker-87 added this to To do in Release v1.7.0 via automation Apr 5, 2021
@Nightwalker-87 Nightwalker-87 moved this from To do to In progress in Release v1.7.0 Apr 5, 2021
@Nightwalker-87 Nightwalker-87 moved this from In progress to Reviewer approved in Release v1.7.0 Apr 11, 2021
Release v1.7.0 automation moved this from Reviewer approved to Done Apr 13, 2021
@stlink-org stlink-org locked as resolved and limited conversation to collaborators Apr 13, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.