[elxr] (error #465) read-only small data overflow: 0xfa7960 (signed) didn't fit in 23 bits while performing relocation type R_V800_ROSDA23 (37) at address 0x100053a

The ApplRomC2 is code flash extended user, I would like to allocate the object file (.rosdata)

Now, I am using for both code flash to store (.rosdata) 

I am using GHS compiler and facing the above attached linker error. 

Please suggest me what might be the issue.

Parents
  • The address where the section is being placed (e.g. 0x10005xx) is 25-bits, which is incompatible with the 23-bit restriction imposed on the data in the section.

    You will need to understand the addressing modes of the device, and how the tools use them.  There is lots of info about section placement and addressing mode in the "build_v800.pdf" compiler manual.

  • Hello JimB

    I have been try looking for some information and then not mention the addressing at 0x1000000 has been set to 25bit.

    Now, I have been configurated as 

    -D__V800_registermode=32
    -Dlarge_sda                      \
    -Dsda=all                        \
    Now, I cannot find any solution to fix them. Could you suggestion me some hints to fix this issue?
  • What is it that you are wanting to accomplish with the custom section placement?  What does the default tool behavior (compiler generating code/data, linker locating the code/data to the default addresses) not handle that you need to add?

  • What is it that you are wanting to accomplish with the custom section placement?

    --> Now, the code flash region (0 - 0xFFFFF) has been out of memory during integration SW so I would like to move some modules object (.text, .rosdata) to extended user area.

    Do you have example linker file which handled as I mentioned? 

  • It appears that you are using the F1KM-S1 device.  Looking at the GHS device file package, the linker file provides sections already for the extended user arear:

    Unfortunately I do not have a GHS license so I cannot test my suggestion, but I believe the easiest way to accomplish what you are wanting is to change the default behavior of the compiler to put constants into the ".bconst" section using the "-section .rodata=.bconst" option:

  • Can I please ask which exact device it is that you are using?

  • Yes, It is dr7f701684

    I am trying to do with 

    and error happened.

    And I think the suggestion by you may be the same place a section in the memory region.

    I have been placed directly in linker file.

  • I believe you need to disable the small-data area optimization, but I am a little confused by the docs as to exactly which option should be used to do this.  Maybe try the "-sda=never" option.

  • As you are using the '694 device, the bad news is that you are in the largest 1MB device in the S1 lineup, so there isn't an option to choose something with more memory.  The good news is that in using the 100pin package, you have the option of moving up to the 2MB F1K "Classic" device, which is upward compatible with minimal effort.

    My concern is that if you are running out of memory, making use of the 32KB extended user area will likely only work as a very short-term band-aid until that memory is used up.  Most automotive customers that ever dealt with required something like 5% or 10% free resources for the design to allow for future updates.

    More information about migrating within the F1Kx family of devices can be found in the app-note r01an2917 ()RH850/F1Kx Migration Information)..

Reply
  • As you are using the '694 device, the bad news is that you are in the largest 1MB device in the S1 lineup, so there isn't an option to choose something with more memory.  The good news is that in using the 100pin package, you have the option of moving up to the 2MB F1K "Classic" device, which is upward compatible with minimal effort.

    My concern is that if you are running out of memory, making use of the 32KB extended user area will likely only work as a very short-term band-aid until that memory is used up.  Most automotive customers that ever dealt with required something like 5% or 10% free resources for the design to allow for future updates.

    More information about migrating within the F1Kx family of devices can be found in the app-note r01an2917 ()RH850/F1Kx Migration Information)..

Children