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

STM32L476 DISCOVERY: Fails to write with large (e.g. > 64K) file size #995

Closed
tabemann opened this issue Jun 23, 2020 · 13 comments · Fixed by #1124
Closed

STM32L476 DISCOVERY: Fails to write with large (e.g. > 64K) file size #995

tabemann opened this issue Jun 23, 2020 · 13 comments · Fixed by #1124

Comments

@tabemann
Copy link

tabemann commented Jun 23, 2020

This is a repeat of a previous ticket, except with a larger file size; increasing the timeout fixed the other ticket, but it still is too short for writing the file I tried to write today, which is 96256 bytes in size. I created a new ticket because that other ticket was already closed.

  • Programmer/board type: Stlink /v2-1
  • Programmer firmware version: L4xx
  • Operating system and version: Linux sirius 5.5.0-1-amd64 # 1 SMP Debian 5.5.13-2 (2020-03-30) x86_64 GNU/Linux
  • Stlink tools version and/or git commit hash: v1.6.0-390-geeb3190
  • Stlink commandline tool name: st-flash
  • Target chip (and board if applicable): STM32L476 DISCOVERY

Futher we kindly ask you to describe the detected problem as detailed as possible and to add debug output if available, by using the following template:

Commandline-Output:

OUTPUT/ERROR of the commandline tool(s)tabemann@sirius:~/projects/zeptoforth$ st-flash write bin/0.6.0/stm32l476/zeptoforth_full-0.6.0.bin 0x08000000
st-flash 1.6.0-390-geeb3190
2020-06-22T22:35:33 INFO common.c: L4xx: 96 KiB SRAM, 1024 KiB flash in at least 2 KiB pages.
file bin/0.6.0/stm32l476/zeptoforth_full-0.6.0.bin md5 checksum: 94b6a895d25c308dfc8e355d5c71f57, stlink checksum: 0x008618d7
2020-06-22T22:35:33 INFO common.c: Attempting to write 96256 (0x17800) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Page:0x0 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08000000 erased
EraseFlash - Page:0x1 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08000800 erased
EraseFlash - Page:0x2 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08001000 erased
EraseFlash - Page:0x3 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08001800 erased
EraseFlash - Page:0x4 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08002000 erased
EraseFlash - Page:0x5 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08002800 erased
EraseFlash - Page:0x6 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08003000 erased
EraseFlash - Page:0x7 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08003800 erased
EraseFlash - Page:0x8 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08004000 erased
EraseFlash - Page:0x9 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08004800 erased
EraseFlash - Page:0xa Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08005000 erased
EraseFlash - Page:0xb Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08005800 erased
EraseFlash - Page:0xc Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08006000 erased
EraseFlash - Page:0xd Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08006800 erased
EraseFlash - Page:0xe Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08007000 erased
EraseFlash - Page:0xf Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08007800 erased
EraseFlash - Page:0x10 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08008000 erased
EraseFlash - Page:0x11 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08008800 erased
EraseFlash - Page:0x12 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08009000 erased
EraseFlash - Page:0x13 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08009800 erased
EraseFlash - Page:0x14 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800a000 erased
EraseFlash - Page:0x15 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800a800 erased
EraseFlash - Page:0x16 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800b000 erased
EraseFlash - Page:0x17 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800b800 erased
EraseFlash - Page:0x18 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800c000 erased
EraseFlash - Page:0x19 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800c800 erased
EraseFlash - Page:0x1a Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800d000 erased
EraseFlash - Page:0x1b Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800d800 erased
EraseFlash - Page:0x1c Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800e000 erased
EraseFlash - Page:0x1d Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800e800 erased
EraseFlash - Page:0x1e Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800f000 erased
EraseFlash - Page:0x1f Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x0800f800 erased
EraseFlash - Page:0x20 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08010000 erased
EraseFlash - Page:0x21 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08010800 erased
EraseFlash - Page:0x22 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08011000 erased
EraseFlash - Page:0x23 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08011800 erased
EraseFlash - Page:0x24 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08012000 erased
EraseFlash - Page:0x25 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08012800 erased
EraseFlash - Page:0x26 Size:0x800 2020-06-22T22:35:33 INFO common.c: Flash page at addr: 0x08013000 erased
EraseFlash - Page:0x27 Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08013800 erased
EraseFlash - Page:0x28 Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08014000 erased
EraseFlash - Page:0x29 Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08014800 erased
EraseFlash - Page:0x2a Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08015000 erased
EraseFlash - Page:0x2b Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08015800 erased
EraseFlash - Page:0x2c Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08016000 erased
EraseFlash - Page:0x2d Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08016800 erased
EraseFlash - Page:0x2e Size:0x800 2020-06-22T22:35:34 INFO common.c: Flash page at addr: 0x08017000 erased
2020-06-22T22:35:34 INFO common.c: Finished erasing 47 pages of 2048 (0x800) bytes
2020-06-22T22:35:34 INFO common.c: Starting Flash write for F2/F4/L4
2020-06-22T22:35:34 INFO flash_loader.c: Successfully loaded flash loader in sram
size: 32768
2020-06-22T22:35:34 ERROR flash_loader.c: flash loader run error
2020-06-22T22:35:34 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1

Expected/description:

st-flash would successfully write zeptoforth_full-0.6.0.bin to the STM32L476 MCU.

@Nightwalker-87
Copy link
Member

Can you please also test the latest release (v1.6.1) and the current develop branch?

@tabemann
Copy link
Author

I just tried with the latest develop branch (which was nearly identical to the develop branch in the state I tested it with) and got the same result.

@Nightwalker-87 Nightwalker-87 added this to the v1.6.2 milestone Jun 27, 2020
@Nightwalker-87
Copy link
Member

Thanks for the feedback.
I suppose we need an option in the code to allow for additional flash sizes as there appear to be several hardware variants.
Against the current workload with maintenance of this project I can't promise that I find time to look at this though...

@tabemann
Copy link
Author

In ./src/stlink-lib/flash_loader.c I changed WAIT_ROUNDS to #define WAIT_ROUNDS 1000 and now it works.

@Nightwalker-87
Copy link
Member

Uh wait - we need to evaluate that. 👀
This #define was reduced to 30 recently (#987) to fix a regression.
We need to ensure that all boards work with this setting.

@Nightwalker-87
Copy link
Member

@geoffreymbrown: What do you think about this?

@geoffreymbrown
Copy link
Collaborator

geoffreymbrown commented Jun 28, 2020 via email

@tabemann
Copy link
Author

tabemann commented Sep 5, 2020

I pulled code recently (in the last few days) from the develop branch and built it, hoping this issue would have been resolved for the STM32L476, but it still has not been:

tabemann@sirius:~/projects/zeptoforth$ st-flash write bin/0.10.2/stm32l476/zeptoforth_swdcom-0.10.2.bin 0x08000000
st-flash 1.6.1-93-g5c03678
2020-09-05T13:21:40 INFO common.c: L4xx: 96 KiB SRAM, 1024 KiB flash in at least 2 KiB pages.
file bin/0.10.2/stm32l476/zeptoforth_swdcom-0.10.2.bin md5 checksum: a84ce1626af3bdec519d9e1c2bd44df, stlink checksum: 0x00a8571e
2020-09-05T13:21:40 INFO common.c: Attempting to write 129024 (0x1f800) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Page:0x0 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08000000 erased
EraseFlash - Page:0x1 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08000800 erased
EraseFlash - Page:0x2 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08001000 erased
EraseFlash - Page:0x3 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08001800 erased
EraseFlash - Page:0x4 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08002000 erased
EraseFlash - Page:0x5 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08002800 erased
EraseFlash - Page:0x6 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08003000 erased
EraseFlash - Page:0x7 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08003800 erased
EraseFlash - Page:0x8 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08004000 erased
EraseFlash - Page:0x9 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08004800 erased
EraseFlash - Page:0xa Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08005000 erased
EraseFlash - Page:0xb Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08005800 erased
EraseFlash - Page:0xc Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08006000 erased
EraseFlash - Page:0xd Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08006800 erased
EraseFlash - Page:0xe Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08007000 erased
EraseFlash - Page:0xf Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08007800 erased
EraseFlash - Page:0x10 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08008000 erased
EraseFlash - Page:0x11 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08008800 erased
EraseFlash - Page:0x12 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08009000 erased
EraseFlash - Page:0x13 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x08009800 erased
EraseFlash - Page:0x14 Size:0x800 2020-09-05T13:21:40 INFO common.c: Flash page at addr: 0x0800a000 erased
EraseFlash - Page:0x15 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800a800 erased
EraseFlash - Page:0x16 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800b000 erased
EraseFlash - Page:0x17 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800b800 erased
EraseFlash - Page:0x18 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800c000 erased
EraseFlash - Page:0x19 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800c800 erased
EraseFlash - Page:0x1a Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800d000 erased
EraseFlash - Page:0x1b Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800d800 erased
EraseFlash - Page:0x1c Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800e000 erased
EraseFlash - Page:0x1d Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800e800 erased
EraseFlash - Page:0x1e Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800f000 erased
EraseFlash - Page:0x1f Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0800f800 erased
EraseFlash - Page:0x20 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08010000 erased
EraseFlash - Page:0x21 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08010800 erased
EraseFlash - Page:0x22 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08011000 erased
EraseFlash - Page:0x23 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08011800 erased
EraseFlash - Page:0x24 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08012000 erased
EraseFlash - Page:0x25 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08012800 erased
EraseFlash - Page:0x26 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08013000 erased
EraseFlash - Page:0x27 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08013800 erased
EraseFlash - Page:0x28 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08014000 erased
EraseFlash - Page:0x29 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08014800 erased
EraseFlash - Page:0x2a Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08015000 erased
EraseFlash - Page:0x2b Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08015800 erased
EraseFlash - Page:0x2c Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08016000 erased
EraseFlash - Page:0x2d Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08016800 erased
EraseFlash - Page:0x2e Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08017000 erased
EraseFlash - Page:0x2f Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08017800 erased
EraseFlash - Page:0x30 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08018000 erased
EraseFlash - Page:0x31 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08018800 erased
EraseFlash - Page:0x32 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08019000 erased
EraseFlash - Page:0x33 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x08019800 erased
EraseFlash - Page:0x34 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801a000 erased
EraseFlash - Page:0x35 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801a800 erased
EraseFlash - Page:0x36 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801b000 erased
EraseFlash - Page:0x37 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801b800 erased
EraseFlash - Page:0x38 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801c000 erased
EraseFlash - Page:0x39 Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801c800 erased
EraseFlash - Page:0x3a Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801d000 erased
EraseFlash - Page:0x3b Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801d800 erased
EraseFlash - Page:0x3c Size:0x800 2020-09-05T13:21:41 INFO common.c: Flash page at addr: 0x0801e000 erased
EraseFlash - Page:0x3d Size:0x800 2020-09-05T13:21:42 INFO common.c: Flash page at addr: 0x0801e800 erased
EraseFlash - Page:0x3e Size:0x800 2020-09-05T13:21:42 INFO common.c: Flash page at addr: 0x0801f000 erased
2020-09-05T13:21:42 INFO common.c: Finished erasing 63 pages of 2048 (0x800) bytes
2020-09-05T13:21:42 INFO common.c: Starting Flash write for F2/F4/F7/L4
2020-09-05T13:21:42 INFO flash_loader.c: Successfully loaded flash loader in sram
size: 32768
2020-09-05T13:21:42 ERROR flash_loader.c: flash loader run error
2020-09-05T13:21:42 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1

@cmdrf
Copy link
Contributor

cmdrf commented Oct 23, 2020

I seem to have the same problem with an STM32F767. And since I'm busy bisecting anyway:

There are only 'skip'ped commits left to test.
The first bad commit could be any of:
54e5627
ff26313
We cannot bisect more!

54e5627 doesn't build because of undefined __FreeBSD__.

EDIT: Looking at the commits, that can't be right 😕 . Trying again.

EDIT2: OK, it works every second time. Seems I've been hit by #1054 instead.

@cmdrf
Copy link
Contributor

cmdrf commented Oct 23, 2020

Another attempt, this time with --reset and two st-flash runs each time to be sure. It points to c1ea72d. Sorry for the spam.

EDIT: I tried smaller images now, and they all fail. So maybe the problem is not related.

@Nightwalker-87
Copy link
Member

Sry, but that does not seem to help any further...

@Nightwalker-87
Copy link
Member

@Ant-ON Fixed?

@Ant-ON
Copy link
Collaborator

Ant-ON commented Apr 12, 2021

@Nightwalker-87 yes, it closes by #1124

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.