Sysprogs forums › Forums › VisualGDB › ARM Semihosting console not work in Example
- This topic has 24 replies, 4 voices, and was last updated 8 years, 6 months ago by
Rumchiller.
-
AuthorPosts
-
August 27, 2015 at 20:03 #6874
support
KeymasterHi,
The extensibility interfaces are not documented as they are used by a fairly small amount of our users. If you have specific questions about those, feel free to ask here or direct them to our support.
August 31, 2015 at 15:44 #6889StrongArm
ParticipantHi Brazis,
thank you for all the suggestions.After reviewing all the possibilities I dicided to use openOCD direct. This is the only way to get runtime information from the CPU without the help of a debugger and without the need to stop/restart the CPU for data transfer. I wrote a small test project for this with QT5. An implemented TCP Client connects to the OpenOCD TCP Server on port 6666. Using an elf parser gives the possibilty to get the addresses and sizes from the variable names. Using the ocd_mdw/ocd_mww commands I can read and write variables, using array2mem/mem2array I can transfer whole buffer regions. Works great!
Best regards
P.S. Just tested VisualGDB with my MSP432 Discovery board, works fine!
August 12, 2016 at 08:57 #8814Rumchiller
ParticipantI have the same problem with the VisualGDB 5.2.5.954.
I am using newlib nano without floating point printf support.
The output:
C:\SysGCC\arm-eabi/bin/arm-eabi-g++.exe -o Debug/ERB_FW_SPL_DP.elf -Wl,-gc-sections -Wl,-q --specs=rdimon.specs --specs=nano.specs -TSTM32F429IG_flash.lds -mcpu=cortex-m4 -mthumb -mfloat-abi=hard ...
So I looked into the stm32.mak:
LDFLAGS += --specs=nano.specs
Where could I deactivate this flag? It is not showing in the project settings.
August 12, 2016 at 09:12 #8815Rumchiller
ParticipantWhen I delete the flag from stm32.mak, everything works fine. But after changing project settings, the flag appears again.
August 13, 2016 at 21:55 #8823support
KeymasterHi,
Good to know it works. We actually have out-of-the-box support for embedded unit tests in VisualGDB 5.2 Preview1. You can read more about it here: https://sysprogs.com/w/the-new-unit-test-support-in-visualgdb-5-2/
August 14, 2016 at 19:48 #8849Rumchiller
ParticipantSince the new version 5.2, the Code is hanging in the startup. __libc_init_array();
I am getting into the do_AngelSWI();
reason: AngelSWI_Reason_ReportException 0x18
arg: 0x00020026
I am going back :>
August 14, 2016 at 21:38 #8850Rumchiller
ParticipantOK, now i got it, maybe now you could help me:
I added a sdram section to the linkerscript:
. = ALIGN(4); _sisdraminit = .; .sdraminit : AT( _sisdraminit ) { . = ALIGN(4); _ssdraminit = .; *(.sdraminit) *(.sdraminit*) . = ALIGN(4); _esdraminit = .; } > SDRAM .sdram (NOLOAD) : { . = ALIGN(4); *(.sdram) *(.sdram*) . = ALIGN(4); } > SDRAM
The problem occure, when the “PROVIDE(end = .);” is after the sdram-section.
I dont know why, because my ram is inialized before the “__libc_init_array()” is called.
EDIT: The error occurs only when semihosting is activated.
-
This reply was modified 8 years, 6 months ago by
Rumchiller.
August 14, 2016 at 21:54 #8852Rumchiller
ParticipantMaybe its a problem with printf() and std::string. Now its to late for me to test it, but earlier i changed some const char* to std::string. I will test it tomorrow.
August 15, 2016 at 05:21 #8855support
KeymasterThe ‘end’ symbol is used to specify the beginning of heap, so defining it after SDRAM will break the malloc() functionality.
Hence we would recommend defining ‘end’ so that it actually points at the end of data in RAM.
August 15, 2016 at 15:55 #8861Rumchiller
ParticipantThanks for reply,
OK, i understand. I didnt know, that it defines the heap, thank you.
-
This reply was modified 8 years, 6 months ago by
-
AuthorPosts
- You must be logged in to reply to this topic.