Loading...
 

SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

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.