Skip to main content
Visitor II
September 20, 2020
Question

Programming error writing to OTP on STM32F412xx

  • September 20, 2020
  • 2 replies
  • 1128 views

I am trying to write to the OTP on a STM32F412xx using version v4.5.0.0 of ST-LINK but am getting "Error occured during memory writing!" (note bad spelling is not mine but ST's :-))

The memory area for the OTP is 0x1FFF7800 and I can read it ok. I've tried 8/16/32 bit accesses but nothing works. It has never been programmed before and reads as all F's as you'd expect and the lock values are all F's as well.

    This topic has been closed for replies.

    2 replies

    Super User
    September 20, 2020

    Longstanding issue. Some workarounds here:

    https://community.st.com/s/question/0D50X00009XkeKc/stlink-utility-cant-program-otp-memory

    Might work if you can find v3.8 of STM32 ST-Link Utility:

    https://community.st.com/s/question/0D50X00009XkiXG/otp-programming-stm32f4-with-stlink

    Might work with STM32CubeProgrammer.

    GMeta.1Author
    Visitor II
    September 21, 2020

    Hi

    Yeah I did see that link but it's 4 years old so had assumed it was fixed by now.

    I did create a mini .bin file with a single 32-bit word and program it that way. It's a bit time-consuming as you have to have a second .bin file with just 0x00000000 to program the 'lock OTP' word when you're done.

    If I get a chance I might revert to the old v3.8 ST-Link as you suggested thanks. Doesn't sound like it should be much of a fix if they can just merge what has worked in the past, but anyway good that there is a workaround.