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.

RTOS/AM6548: A question about a lib named "rdimon"

Part Number: AM6548

Tool/software: TI-RTOS

Hi, TI engineers

I have a question about a lib named 'rdimon',

I created a new hello world project of A53 in CCS,

if I selected Compiler version GNU v7.2.1(linaro aarch64), then a lib named "rdimon" is necessary,

if I don't use this lib, the project can't build successfully.

and if I I selected Compiler version GNU v7.2.1(linaro), this lib is not necessary.

would you please tell me some information or provide me some document about this lib?

Best Regards

Hope Chen

  • Hope_Chen,

    Can you please provide the build log with both version of the compiler that you are referring to. The library name is "librdimon" and it refers to semihosting library that is used for console IO operations like printf . Are you sure that for 32 bit GCC 7.2.1 compiler, CCS is not automatically including this in the project while for 64 bit version of the compiler, you need to manually add this to the project.

    If you capture the build log in the console and compare you should be able to see if this is linked in both the setups. The other thing to check for is --specs included in your build options as this sometimes brings in a group of libraries related to those compiler specs.

    Regards,
    Rahul
  • Hi Rahul

    Thanks very much for your reply.

    I have captured the build log in the console,

    the building log of the two compilers, the only difference is  32 bit GCC 7.2.1 compiler's building log didn't have "-lrdimon".

    while 64 bit GCC 7.2.1 compiler's building log has"-lrdimon". 

    So it seems that for 32 bit GCC 7.2.1 compiler, CCS is not automatically including this in the project?

    I also checked the --specs included in my build options, they are the same, both are -specs="nosys.specs".

    My project is just like below, it;s so simple and I am a little curious about why I need this lib ?

    int main(void)
    {
        return 0;
    }

    Best Regards

    Building log:64bit GCC compiler
    
    "C:/ti/gcc-linaro-7.2.1-2017.11-i686-mingw32_aarch64-elf/bin/aarch64-elf-gcc.exe" -mtune=cortex-a53 -fno-exceptions -Dam6548 -Dcore0 -DAARCH64 -DSOC_AM6X -Og -g -gdwarf-3 -gstrict-dwarf -Wall -specs="nosys.specs" -mcpu=cortex-a53 -Wl,-Map,"aaa.map" -Wl,--defsym,CORE0=1 -Wl,--defsym,STACKSIZE=0x10000 -Wl,--defsym,HEAPSIZE=0x400 -o"aaa.out" "./main.o" -Wl,-T"../linker_a53.lds"  -Wl,--start-group -lc -lrdimon -Wl,--end-group 
    Finished building target: "aaa.out"
    
    Building log:32bit GCC compiler
    
    "C:/ti/ccsv8/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc.exe" -mtune=cortex-a53 -fno-exceptions -Dam6548 -Dcore0 -DAARCH64 -DSOC_AM6X -Og -g -gdwarf-3 -gstrict-dwarf -Wall -specs="nosys.specs" -mcpu=cortex-a53 -Wl,-Map,"aaa.map" -Wl,--defsym,CORE0=1 -Wl,--defsym,STACKSIZE=0x10000 -Wl,--defsym,HEAPSIZE=0x400 -o"aaa.out" "./main.o" -Wl,-T"../linker_a53.lds"  -Wl,--start-group -lc -Wl,--end-group 
    Finished building target: "aaa.out"

  • Hope,

    Do you still need help with this issue. For AM654x the recommendation is to use 64 bit GCC compiler so if you still want to try to pursue difference between 32 bit compiler and 64 bit compiler, we will need to post in GNU GCC forums to understand why the the two linkers behave differently.

    Regards,
    Rahul
  • Hi Rahul
    Last week is Chinese Spring Festival, due to the holiday, Very sorry for replying little late。
    This issue is OK now, I have had a preliminary understanding about semihosting,I think it's enough for me.
    Thanks a lot.
    Best Regards
    Hope Chen