after locating guix-rescources to QSPI-Flash -> arm-none-eabi-gdb.exe not working

Hi,

i worke on a custom Board with the R7FS5D97E3A01CFC and 32Mb QSPI-Flash.

(Toolchain: GCC ARM Embedded
Toolchain Version: 4.9.3.20150529
SSP Version: 1.6.3)

Since this controller has only 2Mb of Flash, we want to locate the GUIX resources to the QSPI-Flash.

 

I managed to locate the resources files to the QSPI-Flash (according to: https://renesasrulz.com/synergy/f/synergy---forum/10807/how-do-you-locate-all-guix-studio-resources-in-external-qspi-memory) with the following lines in the modified copy of the original Linker Script:

Then i choose this new Linker Script in the properties (according to: https://renesasrulz.com/synergy/f/synergy---forum/5881/linker-script-file)

 

I can successfully compile and download my code to the device, but i can´t debug it anymore and i get the Message "arm-none-eabi-gdb.exe has stopped working"

 

Can you help me with this problem?

 

regards, Smithers

  • Good day, SmithersM!

    How are things going so far? I have never encountered the same problem as yours before. Let's just wait for experts to comment on this.

    Best regards,

    Sai
    RenesasRulz Forum Moderator
    https://renesasrulz.com/
    https://academy.renesas.com/
    en-us.knowledgebase.renesas.com/
  • Hi SmithersM,

    Maybe your code hits access restricted areas.
    S5D9 has access restricted areas while changing option-setting memory or writing configuration setting area or debugging through an OCD.

    You can't access addresses that satisfy the ranges described by the expression defined in Expression 1 regardless of the means.
    This includes QSPI, SDRAM, CS, and SRAMHS.

    Expression 1
    If (((address & 0x0101F800) = = 0x01010000) || ((address & 0x0101FC00) = = 0x01012000))

    See 7.3.2 in S5D9 Microcontroller Group User’s Manual.
    www.renesas.com/.../r01um0004eu0130-synergy-s5d9.pdf
  • Hello Smithers,

    Has the previous comment helped you to solve your issue or do you need further assistance? Please let us know.

    Kind regards,
  • In reply to Sergey Sokol:

    Hello,
    I solved my problem by placing some of my resources manually in the Flash. I used BSP_PLACE_IN_SECTION() after almost each resources object in the guiapp_resources.c File, except:
    display_1_theme_1_font_table
    display_1_theme_1_pixelmap_table
    display_1_English_string_table
    display_1_language_table
    display_1_theme_table.

    regards, Smithers
  • In reply to SmithersM:

    The issue with manually editing the guiapp_resources.c file is that every time the project is re-generated by GUIX Studio, the file guiapp_resources.c  will be re-generated removing the changes you made.

    The linker script can be edited to move the constant data from the file guiapp_resources.c into the QSPI area.

    First edit the line (this assumes the guiapp_resources.c is in src/gui/ directory):-

    *(.rodata*)

    to

    *(EXCLUDE_FILE(*src/gui/*resources.o) .rodata*)

    So that the constant data from the GUIX resources file is not placed in the internal flash. then add :-

    .qspi_guix :

       {

           . = ALIGN(4);

    *src/gui/*resources.o (.rodata*)

           . = ALIGN(4);

       } > QSPI_FLASH

    So  that the constant data from the GUIX resources file is placed in QSPI.

    This will leave the non-constant data from the GUIX resources file to be placed in RAM in the default section (either .bss or .data), so it will be initialised correctly, and can be modified.