2025-02-28 7:24 AM
I've been experimenting with STM32F765VGT6 (custom board made by a colleague) and STM32F769NIH6U (on a STM32F769I-DISCO).
Please correct me as soon as you see a mistake.
I did not "play" a lot with the F769. As long as I did, everything seemed as expected.
I'm focused on the F765 now, with which I have problems.
Both MCUs Option Bytes are configured in 2 banks mode : nDBANK is unchecked.
Flash size :
- the F765 has 1 MB :
- the F769 has 2 MB
Bank 2 start address, as from RM :
- F769 : 0x08100000
- F765 : 0x08080000
Problem : I found it impossible to flash my code at 0x08080000 on the F765.
STM32CubeProgrammer returns :
15:52:48 : Opening and parsing file: MCU_F765_LwIP_NoFreeRTOS-0.1.0-0x08080000-00ïº80ïºE1ïº06ïº66ïºA0.bin
15:52:48 : Memory Programming ...
15:52:48 : File : MCU_F765_LwIP_NoFreeRTOS-0.1.0-0x08080000-00ïº80ïºE1ïº06ïº66ïºA0.bin
15:52:48 : Size : 120.95 KB
15:52:48 : Address : 0x08080000
15:52:48 : Erasing memory corresponding to segment 0:
15:52:48 : Erasing internal memory sectors [12 16]
15:52:49 : Download in Progress:
15:52:49 : File download complete
15:52:49 : Time elapsed during download operation: 00:00:01.546
15:52:49 : Verifying ...
15:52:49 : Read progress:
15:52:50 : Error: Data mismatch found at address 0x08084001 (byte = 0xF0 instead of 0xFA)
15:52:50 : Error: Download verification failed
But it is possible to flash and run at 0x08100000 :
15:55:24 : Opening and parsing file: MCU_F765_LwIP_NoFreeRTOS-0.1.0-0x08100000-00ïº80ïºE1ïº06ïº66ïº9E.bin
15:55:24 : Memory Programming ...
15:55:24 : File : MCU_F765_LwIP_NoFreeRTOS-0.1.0-0x08100000-00ïº80ïºE1ïº06ïº66ïº9E.bin
15:55:24 : Size : 120.95 KB
15:55:24 : Address : 0x08100000
15:55:24 : Erasing memory corresponding to segment 0:
15:55:24 : Erasing external memory sector 8
15:55:25 : Download in Progress:
15:55:26 : File download complete
15:55:26 : Time elapsed during download operation: 00:00:01.256
15:55:26 : Verifying ...
15:55:26 : Read progress:
15:55:26 : Download verified successfully
Using debug traces, displaying compile time and dates, etc, and swapping the boot addresses BOOT_ADD0 <--> BOOT_ADD1, I've been able to verify that I can run two different FWs, one at 0x0800000, the other at 0x08100000
I never tried 0x08080000 since flashing is impossible there.
So here's my question: is the start address 0x08080000 an error in the RM rm0410-stm32f76xxx-and-stm32f77xxx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf ? (page 90 out of 1942)
Can I definitely rely on Bank 1 = 0x0800000 / Bank 2 = 0x0810000 ?
Is there an updated document, something I missed that confirms that ?
Or is it worse: did I mess with something and Bank 2 should be at 0x0808000 anyway ?