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


Error in final launch sequence

Here is the dump:

Open On-Chip Debugger 0.10.0-dev-00302-gc211ca5-dirty (2017-07-03-10:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
none separate
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 950 kHz
adapter_nsrst_delay: 100
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v19 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : vid/pid are not identical: 0x0483/0x374B 0x0483/0x3748
Info : using stlink api v2
Info : Target voltage: 2.885950
Info : STM32F303VETx.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : accepting ‘gdb’ connection on tcp/3333
Info : device id = 0x10036446
Info : flash size = 512kbytes
Error: address + size wrapped(0xfffffffe, 0x00000004)
adapter speed: 950 kHz
STM32F303VETx.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Error: address + size wrapped(0xffffffff, 0x00000004)
Error: address + size wrapped(0xffffffff, 0x00000002)
Error: address + size wrapped(0xffffffff, 0x00000004)
Error: address + size wrapped(0xffffffff, 0x00000002)
Info : dropped ‘gdb’ connection

I’m using ST-Link from smt32f0disco was working perfectly before. Now the loading is not working at all, but it’s working with uVision 4. Erase memory is working with both though. I’m asking kindly for quick support.

Here is the output from program chip:

09:28:18 **** Programming project emct_display_ac6 on chip ****
“D:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.externaltools.openocd.win32_1.15.0.201707031232\tools\openocd\bin\openocd.exe” -f stm32.flash.3802743436586130758.cfg -s “D:\Projects\ac6_workspace\emct_display_ac6” -s “D:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.debug_2.1.0.201707031232\resources\openocd\st_scripts” -c “program Debug/emct_display_ac6.elf verify reset exit”
Open On-Chip Debugger 0.10.0-dev-00302-gc211ca5-dirty (2017-07-03-10:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
srst_only separate srst_nogate srst_open_drain connect_assert_srst
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 950 kHz
adapter_nsrst_delay: 100
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v19 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : vid/pid are not identical: 0x0483/0x374B 0x0483/0x3748
Info : using stlink api v2
Info : Target voltage: 2.866116
Info : STM32F303VETx.cpu: hardware has 6 breakpoints, 4 watchpoints
adapter speed: 950 kHz
STM32F303VETx.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000b2c msp: 0x20001270
adapter speed: 1800 kHz

    • Programming Started **

auto erase enabled
Info : device id = 0x10036446
Info : flash size = 512kbytes
Warn : no flash bank found for address 0
Warn : no flash bank found for address 448b0
wrote 0 bytes from file Debug/emct_display_ac6.elf in 0.119000s (0.000 KiB/s)

    • Programming Finished **
    • Verify Started **

STM32F303VETx.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20001270
Error: checksum mismatch - attempting binary compare
diff 0 address 0x00000000. Was 0x70 instead of 0x7f
diff 1 address 0x00000001. Was 0x12 instead of 0x45
diff 2 address 0x00000002. Was 0x00 instead of 0x4c
diff 3 address 0x00000003. Was 0x20 instead of 0x46
diff 4 address 0x00000004. Was 0x2d instead of 0x01
diff 5 address 0x00000005. Was 0x0b instead of 0x01
diff 6 address 0x00000006. Was 0x00 instead of 0x01
diff 7 address 0x00000007. Was 0x08 instead of 0x00
diff 8 address 0x00000008. Was 0x35 instead of 0x00
diff 9 address 0x00000009. Was 0x0b instead of 0x00
diff 10 address 0x0000000b. Was 0x08 instead of 0x00
diff 11 address 0x0000000c. Was 0x37 instead of 0x00
diff 12 address 0x0000000d. Was 0x0b instead of 0x00
diff 13 address 0x0000000f. Was 0x08 instead of 0x00
diff 14 address 0x00000010. Was 0x39 instead of 0x02
diff 15 address 0x00000011. Was 0x0b instead of 0x00
diff 16 address 0x00000012. Was 0x00 instead of 0x28
diff 17 address 0x00000013. Was 0x08 instead of 0x00
diff 18 address 0x00000014. Was 0x3b instead of 0x01
diff 19 address 0x00000015. Was 0x0b instead of 0x00
diff 20 address 0x00000017. Was 0x08 instead of 0x00
diff 21 address 0x00000018. Was 0x3d instead of 0xd1
diff 22 address 0x00000019. Was 0x0b instead of 0x80
diff 23 address 0x0000001b. Was 0x08 instead of 0x00
diff 24 address 0x0000001c. Was 0x00 instead of 0x34
diff 25 address 0x00000020. Was 0x00 instead of 0x50
diff 26 address 0x00000021. Was 0x00 instead of 0xe9
diff 27 address 0x00000022. Was 0x00 instead of 0x15
diff 28 address 0x00000025. Was 0x00 instead of 0x04
diff 29 address 0x00000027. Was 0x00 instead of 0x05
diff 30 address 0x00000028. Was 0x00 instead of 0x34
diff 31 address 0x0000002a. Was 0x00 instead of 0x20
diff 32 address 0x0000002c. Was 0x3f instead of 0x03
diff 33 address 0x0000002d. Was 0x0b instead of 0x00
diff 34 address 0x0000002e. Was 0x00 instead of 0x28
diff 35 address 0x0000002f. Was 0x08 instead of 0x00
diff 36 address 0x00000030. Was 0x41 instead of 0x19
diff 37 address 0x00000031. Was 0x0b instead of 0x00
diff 38 address 0x00000032. Was 0x00 instead of 0x16
diff 39 address 0x00000033. Was 0x08 instead of 0x00
diff 40 address 0x00000034. Was 0x00 instead of 0x01
diff 41 address 0x00000037. Was 0x00 instead of 0x70
diff 42 address 0x00000038. Was 0x43 instead of 0xa4
diff 43 address 0x00000039. Was 0x0b instead of 0x48
diff 44 address 0x0000003a. Was 0x00 instead of 0x03
diff 45 address 0x0000003b. Was 0x08 instead of 0x00
diff 46 address 0x0000003c. Was 0x89 instead of 0xa4
diff 47 address 0x0000003d. Was 0x06 instead of 0x48
diff 48 address 0x0000003e. Was 0x00 instead of 0x03
diff 49 address 0x0000003f. Was 0x08 instead of 0x00
diff 50 address 0x00000040. Was 0x47 instead of 0xa4
diff 51 address 0x00000041. Was 0x0b instead of 0x48
diff 52 address 0x00000042. Was 0x00 instead of 0x03
diff 53 address 0x00000043. Was 0x08 instead of 0x00
diff 54 address 0x00000044. Was 0x47 instead of 0x08
diff 55 address 0x00000045. Was 0x0b instead of 0x00
diff 56 address 0x00000047. Was 0x08 instead of 0x00
diff 57 address 0x00000048. Was 0x47 instead of 0x08
diff 58 address 0x00000049. Was 0x0b instead of 0x00
diff 59 address 0x0000004b. Was 0x08 instead of 0x00
diff 60 address 0x0000004c. Was 0x47 instead of 0x04
diff 61 address 0x0000004d. Was 0x0b instead of 0x00
diff 62 address 0x0000004f. Was 0x08 instead of 0x00
diff 63 address 0x00000050. Was 0x47 instead of 0x04
diff 64 address 0x00000051. Was 0x0b instead of 0x00
diff 65 address 0x00000053. Was 0x08 instead of 0x00
diff 66 address 0x00000054. Was 0x47 instead of 0x01
diff 67 address 0x00000055. Was 0x0b instead of 0x00
diff 68 address 0x00000057. Was 0x08 instead of 0x00
diff 69 address 0x00000058. Was 0x47 instead of 0x00
diff 70 address 0x00000059. Was 0x0b instead of 0x00
diff 71 address 0x0000005b. Was 0x08 instead of 0x00
diff 72 address 0x0000005c. Was 0x47 instead of 0x00
diff 73 address 0x0000005d. Was 0x0b instead of 0x00
diff 74 address 0x0000005f. Was 0x08 instead of 0x00
diff 75 address 0x00000060. Was 0x47 instead of 0x00
diff 76 address 0x00000061. Was 0x0b instead of 0x00
diff 77 address 0x00000063. Was 0x08 instead of 0x00
diff 78 address 0x00000064. Was 0x47 instead of 0xb0
diff 79 address 0x00000065. Was 0x0b instead of 0x48
diff 80 address 0x00000066. Was 0x00 instead of 0x03
diff 81 address 0x00000067. Was 0x08 instead of 0x00
diff 82 address 0x00000068. Was 0x47 instead of 0xb0
diff 83 address 0x00000069. Was 0x0b instead of 0x48
diff 84 address 0x0000006a. Was 0x00 instead of 0x03
diff 85 address 0x0000006b. Was 0x08 instead of 0x00
diff 86 address 0x0000006c. Was 0x47 instead of 0x05
diff 87 address 0x0000006d. Was 0x0b instead of 0x00
diff 88 address 0x0000006f. Was 0x08 instead of 0x00
diff 89 address 0x00000070. Was 0x47 instead of 0x00
diff 90 address 0x00000071. Was 0x0b instead of 0x00
diff 91 address 0x00000072. Was 0x00 instead of 0x01
diff 92 address 0x00000073. Was 0x08 instead of 0x00
diff 93 address 0x00000074. Was 0x47 instead of 0x01
diff 94 address 0x00000075. Was 0x0b instead of 0x00
diff 95 address 0x00000077. Was 0x08 instead of 0x00
diff 96 address 0x00000078. Was 0x47 instead of 0xb0
diff 97 address 0x00000079. Was 0x0b instead of 0x48
diff 98 address 0x0000007a. Was 0x00 instead of 0x03
diff 99 address 0x0000007b. Was 0x08 instead of 0x00
diff 100 address 0x0000007c. Was 0x47 instead of 0xb0
diff 101 address 0x0000007d. Was 0x0b instead of 0x48
diff 102 address 0x0000007e. Was 0x00 instead of 0x04
diff 103 address 0x0000007f. Was 0x08 instead of 0x00
diff 104 address 0x00000080. Was 0x47 instead of 0xb0
diff 105 address 0x00000081. Was 0x0b instead of 0x48
diff 106 address 0x00000082. Was 0x00 instead of 0x04
diff 107 address 0x00000083. Was 0x08 instead of 0x00
diff 108 address 0x00000084. Was 0x47 instead of 0x58
diff 109 address 0x00000085. Was 0x0b instead of 0x23
diff 110 address 0x00000087. Was 0x08 instead of 0x00
diff 111 address 0x00000088. Was 0x47 instead of 0xd8
diff 112 address 0x00000089. Was 0x0b instead of 0x83
diff 113 address 0x0000008b. Was 0x08 instead of 0x00
diff 114 address 0x0000008c. Was 0x47 instead of 0x06
diff 115 address 0x0000008d. Was 0x0b instead of 0x00
diff 116 address 0x0000008f. Was 0x08 instead of 0x00
diff 117 address 0x00000090. Was 0x47 instead of 0x00
diff 118 address 0x00000091. Was 0x0b instead of 0x00
diff 119 address 0x00000092. Was 0x00 instead of 0x01
diff 120 address 0x00000093. Was 0x08 instead of 0x00
diff 121 address 0x00000094. Was 0x47 instead of 0x00
diff 122 address 0x00000095. Was 0x0b instead of 0x00
diff 123 address 0x00000097. Was 0x08 instead of 0x00
diff 124 address 0x00000098. Was 0x47 instead of 0x00
diff 125 address 0x00000099. Was 0x0b instead of 0x00
diff 126 address 0x0000009b. Was 0x08 instead of 0x00
diff 127 address 0x0000009c. Was 0x47 instead of 0x00
More than 128 errors, the rest are not printed.

    • Verify Failed **

shutdown command invoked


09:28:34 Build Finished (took 15s.420ms)

Again with uVision 4 it’s working without problems.


Hi,

First, update the stlink firmware, v19 is quite old...

Did you connect the reset line from STlink to target F303 reset input ?


Are you sure the elf file is correct ?
because these lines in log seem suspect :
******
Warn : no flash bank found for address 0
Warn : no flash bank found for address 448b0
wrote 0 bytes from file Debug/emct_display_ac6.elf in 0.119000s (0.000 KiB/s)
*******
Was it created for a F303 device ?


Laurent,

thank you very much for your answer. I’ve already updated the firmware from the following website:

https://my.st.com/content/my_st_com/en/products/embedded-software/development-tool-software/stsw-link007.license%3d1500978085593.htmlQuestion

but it didn’t change anything.The STLink from stm32f0 disco is connected to the NRST line, and this should be ok, because as mentioned it’s working perfectly with uVision 4. Therefore I think the problem should be in the elf file.

I’m attaching the screenshot of the settings in ac6, where it’s obvious that the selected microcontroller is stm32f303vet, apart from that I don’t know if the elf file is correct. It’s not looking like a text file, it’s just showing “chineese” symbols...

Ok so, maybe try a new simple project, or import a cubeF3 project example to try debugging.
Take a F3 nucleo example that is not too different from hardware point of view of your board (running on HSI clock for example).

Rgds,
Laurent


I’ve just checked with another project and it’s working. Here is the output:

14:22:40 **** Programming project emct_display_stm32f303 on chip ****
“D:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.externaltools.openocd.win32_1.15.0.201707031232\tools\openocd\bin\openocd.exe” -f stm32.flash.2486974616704452420.cfg -s “D:\Projects\ac6_workspace\emct_display_stm32f303” -s “D:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.debug_2.1.0.201707031232\resources\openocd\scripts” -c “program Debug/emct_display_stm32f303.elf verify exit”
Open On-Chip Debugger 0.10.0-dev-00302-gc211ca5-dirty (2017-07-03-10:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
srst_only separate srst_nogate srst_open_drain connect_assert_srst
srst_only separate srst_nogate srst_open_drain connect_assert_srst
Info : clock speed 1000 kHz
Info : STLINK v2 JTAG v28 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.877732
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : STM32F303VETx.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
STM32F303VETx.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0801be98 msp: 0x20010000
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 : device id = 0x10036446
Info : flash size = 512kbytes
STM32F303VETx.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000003a msp: 0x20010000
wrote 206848 bytes from file Debug/emct_display_stm32f303.elf in 8.406000s (24.030 KiB/s)

    • Programming Finished **
    • Verify Started **

STM32F303VETx.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20010000
STM32F303VETx.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20010000
verified 204892 bytes in 0.560000s (357.303 KiB/s)

    • Verified OK **

shutdown command invoked

14:22:49 Build Finished (took 9s.620ms)

Now the question is - how to make the original project loaded be without errors as well?