This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTDX Relocation Error (?)

Other Parts Discussed in Thread: SYSBIOS

I'm trying to include an "Agent" for RTDX to display logging messages in real time. I've followed the example stairtstep.c as closely as I can (my application is much bigger) but get the following warning/error when the XDC tools compile my configuration script. I do not get this error with the example. Any ideas?

 Thanks,

Calvin

 

generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

configuring mma_encoder_II.p64P from package/cfg/mma_encoder_II_p64P.cfg ...

Turning on task names...

cl64P package/cfg/mma_encoder_II_p64P.c ...

lnk64P mma_encoder_II.p64P ...

"RtdxDvr.c", line 171 (approximate): warning: relocation from function "ti_rtdx_driver_RtdxDvr_submit__F" to symbol "_RTDX_writeCB" overflowed; the

23-bit relocated address 0x20c9c8 is too large to encode in the 21-bit signed PC-Relative field (type = 'R_C60PCR21' (82), file = "C:\ProgramFiles\Texas

Instruments\bios_6_31_04_27\packages\ti\rtdx\driver\release\ti.rtdx.driver.a 64P<RtdxDvr.o64P>", offset = 0x00000210, section =

".text:_ti_rtdx_driver_RtdxDvr_submit__F")

"RtdxDvr.c", line 171 (approximate): warning: relocation from function

"ti_rtdx_driver_RtdxDvr_submit__F" to symbol "_RTDX_readCB" overflowed; the 23-bit relocated address 0x20c898 is too large to encode in the 21-bit

signed PC-Relative field (type = 'R_C60PCR21' (82), file = "C:\Program Files\Texas

Instruments\bios_6_31_04_27\packages\ti\rtdx\driver\release\ti.rtdx.driver.a 64P<RtdxDvr.o64P>", offset = 0x0000039c, section =

".text:_ti_rtdx_driver_RtdxDvr_submit__F")

"RtdxDvr.c", line 425 (approximate): warning: relocation from function

"ti_rtdx_driver_RtdxDvr_rtdxWriteIsDone__I" to symbol "_RTDX_writeCB" overflowed; the 23-bit relocated address 0x20a328 is too large to encode in

the 21-bit signed PC-Relative field (type = 'R_C60PCR21' (82), file = "C:\Program Files\Texas Instruments\bios_6_31_04_27\packages\ti\rtdx\driver\release\ti.rtdx.driver.a

64P<RtdxDvr.o64P>", offset = 0x00000074, section = ".text:_ti_rtdx_driver_RtdxDvr_rtdxWriteIsDone__I")

"RtdxDvr.c", line 475 (approximate): warning: relocation from function

"ti_rtdx_driver_RtdxDvr_checkPendingList__I" to symbol "_RTDX_writeCB" overflowed; the 23-bit relocated address 0x20a0a8 is too large to encode in

the 21-bit signed PC-Relative field (type = 'R_C60PCR21' (82), file ="C:\Program Files\Texas Instruments\bios_6_31_04_27\packages\ti\rtdx\driver\release\ti.rtdx.driver.a

64P<RtdxDvr.o64P>", offset = 0x00000068, section = ".text:_ti_rtdx_driver_RtdxDvr_checkPendingList__I")

"RtdxDvr.c", line 410 (approximate): warning: relocation from function

"ti_rtdx_driver_RtdxDvr_rtdxReadIsDone__I" to symbol "_RTDX_readCB" overflowed; the 23-bit relocated address 0x209f38 is too large to encode in

the 21-bit signed PC-Relative field (type = 'R_C60PCR21' (82), file = "C:\Program Files\Texas Instruments\bios_6_31_04_27\packages\ti\rtdx\driver\release\ti.rtdx.driver.a

64P<RtdxDvr.o64P>", offset = 0x000000a8, section = ".text:_ti_rtdx_driver_RtdxDvr_rtdxReadIsDone__I")

"RtdxDvr.c", line 49 (approximate): warning: relocation from function

"ti_rtdx_driver_RtdxDvr_Module_startup__F" to symbol "_RTDX_sizeofOutput" overflowed; the 23-bit relocated address 0x207fe8 is too large to encode in

the 21-bit signed PC-Relative field (type = 'R_C60PCR21' (82), file = "C:\Program Files\Texas Instruments\bios_6_31_04_27\packages\ti\rtdx\driver\release\ti.rtdx.driver.a

64P<RtdxDvr.o64P>", offset = 0x00000004, section = ".text:_ti_rtdx_driver_RtdxDvr_Module_startup__F")

"src/monitor/c64xxplus/rtdx_mon.c", line 275 (approximate): warning: relocation

from function "RTDX_Init_RT_Monitor" to symbol "_atexit" overflowed; the 23-bit relocated address 0xdf2d20 is too large to encode in the 21-bit

signed PC-Relative field (type = 'R_C60PCR21' (82), file = "C:\Program Files\Texas Instruments\bios_6_31_04_27\packages\ti\rtdx\lib\release\rtdx.a64P<rtdx_mon.

o64P>", offset = 0x00000038, section = ".rtdx_text:_RTDX_Init_RT_Monitor")

"src/buffer/buffer1.c", line 510 (approximate): warning: relocation from function "RTDX_Buffer_WriteCB" to symbol "_memcpy" overflowed; the 23-bit

relocated address 0xdf3168 is too large to encode in the 21-bit signed PC-Relative field (type = 'R_C60PCR21' (82), file = "C:\Program Files\Texas

Instruments\bios_6_31_04_27\packages\ti\rtdx\lib\release\rtdx.a64P<buffer1.o 64P>", offset = 0x0000012c, section = ".rtdx_text:_RTDX_Buffer_WriteCB")

'Finished building: ../mma_encoder_II.cfg'

' '

 

  • Calvin,
    since it seems that the build succeeded, you should have a MAP file in package/cfg subdirectory of your app directory. Can you post it together with the XDL file from the same subdirectory?

    Also, what's your build environment? Are you using CCS or building from the command line? I remember seeing relocation overflow errors for configurations that use "whole_program" profile. You can find out which profile you are using in Build Properties of a project, in CCS Build->RTSC tab, if you are using CCS, or in package.bld if you are building from the command line.
    Once I know answers to these questions, we can debug further.

  • Sasha,

    Finally got back to testing this. I'm building from with CCS 4.2, CGT 7.2.2, SYSBIOS 6.31.4.27.  When I changed the RTSC configuration from "whole program" to "debug" or "release" the XDC error messages went away. However the RTDX did not work.  RTA -> Raw Logs never got updated until I halted the processor (stop mode). However, if I left it at "whole program" the RTDX appears to work despite the warning and Raw logs do in fact get updated in real time (real RTA!).  Any ideas?

    Between adding the Agent/RTDX and changing to "debug" my L2RAM usage jumped 74 kBytes! That seems awfully large - is there anything I can do to reduce the footprint of the Agent/RTDX module? I had to move a lot of stuff out of L2RAM to make room which can have an adverse impact on performance (still have L2 cache).

    Lastly, I ran across a number of posts indicating that TI is no longer supporting RTDX. What does TI plan to replace it with? Many existing TI DSP (only) parts don't even have a UART or EMAC so RTA options may be limited to JTAG. Our products are "systems" involving all sorts of non-deterministic real time events that can not be debugged by a simulation. And lets be honest - calling "stop mode"  Real Time Analysis is a bit of marketing truth-bending. If I can't observe it as it happens its not real time.

    Thanks for your help!

    Calvin

  • I can't comment on the support and the future or RTDX because I just don't know much about it.

    The warnings you are seeing are coming from a partial link step that happens only when you use "whole_program" profile. (I don't see any errors in the output.) However, the actual output of that link step is not actually used. There is another generated file coming from that step that's being used, which is not affected by the relocation overflow warnings, so the warning do not really matter. That's why you were able to configure the app and run it.

    I don't know why the RTDX did not work for "debug" or "release" profiles, but the size increase is expected whenever you move from "whole_program" to another profile. If warnings in the "whole_program" profile are your main concern, we can work on solving them but I need to see a couple of files in package/cfg directory of your configuration. You may want to zip that whole directory and post the zip file or send it to me.

    As for the size increase, I doubt much of it is coming from Agent or RTDX. The profile "whole_program" allows for various optimizations that are not available in "debug" I would also need to see the map file from the package/cfg directory of your debug configuration to tell you if something unusal is happening.