Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


Reinstalling STM32F745G-DISCO Demo

I just begin to test with my board so I chosed to use the demo source code and just change a string who is supposed to be displayed. Everything work fine with compilation and linking (apparently) my modification. But when I try to run it I have this in the Console Tab:

Open On-Chip Debugger 0.9.0-dev-00415-g2d4ae3f-dirty (2015-06-12-17:54)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 1800 kHz
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
adapter_nsrst_delay: 100
Info : clock speed 1800 kHz
Info : STLINK v2 JTAG v24 API v2 SWIM v11 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 3.215748
Info : STM32F756.cpu: hardware has 8 breakpoints, 4 watchpoints
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08019b8c msp: 0x2004fffc
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
adapter speed: 4000 kHz

    • Programming Started **

auto erase enabled
Info : flash size probed value 1024
Warn : no flash bank found for address 90000000
wrote 786432 bytes from file Debug/STM32F7-DISCO.elf in 15.662428s (49.035 KiB/s)

    • Programming Finished **
    • Verify Started **

target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x2004fffc
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x2004fffc
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x2004fffc
Error: checksum mismatch - attempting binary compare

Then the screen stay white and nothing appen. The only activity is LD7 who is flashing RED-GREEN.

If I push the reset button the change I made are working but ALL images are corrupted
splash screen, icons etc.

Any idea of what append? I never used this weird Eclipse interface before to help my situation...

Thank you for your help

Tunisia

Hello ViveBob,

As I know STM32F746G-DISCO demonstration graphic content is stored within N25Q128A external flash memory.
I think that your problem is that openocd cannot program this external flash memory.

To do this you have to convert your elf file to hex, and program it using ST-Link Utility (at least v3.7.0) available in http://www.st.com/web/en/catalog/tools/PF258168Question

before you load the hex file you should select “N25Q128A_STM32F746G-DISCO” Nor Flash from Menu > External Loader > Add External Loader

Best Regards,
Tarek

Tunisia

TIP: to convert your elf to HEX you can simply do it by modifying Post-Build steps (properties > C/C++ Build > Settings > Build Steps) as following:
arm-none-eabi-objcopy -O ihex “${BuildArtifactFileBaseName}.elf” “${BuildArtifactFileBaseName}.hex”; arm-none-eabi-size “${BuildArtifactFileName}”

Ha! Wonderfull! It work! biggrin

Thank you for your help!
The only «bémol» is that I suppuse that debugger is out when loading the programm that way... Or is there some astuce?

Tunisia

The only problem is that the debugger (gdb+openocd) cannot program the content located within the external flash memory.

Otherwise when debugging your application (after loading the hex using ST-LINK UTILITY) you can disable the programming step (Debug Configurations > $Your_Config$ > Startup ⇒ uncheck ‘Load image’ checkbox), so the debugger will connnect to your device without reprogramming the application.

If you want to display the external memory content, this is possible if the external memory is initialized.
In other words: you can read the external memory content after your application initializes the external memory.


 

Newest Forum Posts

  1. Монтаж камина с грилем в Москве - установка и барбекю by KpddomErorb, 2025-05-10 18:28
  2. SPI on Nucleo_STMH533RE by royjamil, 2025-05-04 20:13
  3. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-25 07:37
  4. SPI on Nucleo_STMH533RE by royjamil, 2025-03-23 11:31
  5. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-23 09:33
  6. Configuring DMA for ADC in SW? by sam.hodgson, 2025-03-04 12:58
  7. Build a project in "release" mode by info@creosrl.it, 2025-02-20 18:12
  8. Build a project in "release" mode by info@creosrl.it, 2025-02-20 17:05
  9. Build a project in "release" mode by tang, 2025-02-20 10:36
  10. Build a project in "release" mode by info@creosrl.it, 2025-02-19 17:35

Last-Modified Blogs