ARM Semihosting console not work in Example

Sysprogs forums Forums VisualGDB ARM Semihosting console not work in Example

Viewing 10 posts - 16 through 25 (of 25 total)
  • Author
    Posts
  • #6874
    support
    Keymaster

    Hi,

    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.

    #6889
    StrongArm
    Participant

    Hi 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!

    #8814
    Rumchiller
    Participant

    I 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.

    #8815
    Rumchiller
    Participant

    When I delete the flag from stm32.mak, everything works fine. But after changing project settings, the flag appears again.

    #8823
    support
    Keymaster

    Hi,

    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/

    #8849
    Rumchiller
    Participant

    Since 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 :>

    #8850
    Rumchiller
    Participant

    OK, 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 7 years, 7 months ago by Rumchiller.
    #8852
    Rumchiller
    Participant

    Maybe 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.

    #8855
    support
    Keymaster

    The ‘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.

    #8861
    Rumchiller
    Participant

    Thanks for reply,

    OK, i understand. I didnt know, that it defines the heap, thank you.

Viewing 10 posts - 16 through 25 (of 25 total)
  • You must be logged in to reply to this topic.