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.

CCS/PROCESSOR-SDK-AM65X: Fail to build bare-metal programs for R5f

Part Number: PROCESSOR-SDK-AM65X

Tool/software: Code Composer Studio

Hello,

The environment setup:

  • CCS v9.00
  • PROCESSOR-SDK-RTOS-AM65X v05.02
  • AM65X IDK module

I am following this document to run bare-metal programs on R5f cores. However, there are some compiler errors at linker stage. Can you please give some comments?

**** Build of configuration Debug for project perf_r55 ****

"D:\\ti\\ccsv900\\ccs\\utils\\bin\\gmake" -k -j 8 all -O 
 
Building target: "perf_r55.out"
Invoking: ARM Linker
"D:/ti/ccsv900/ccs/tools/compiler/ti-cgt-arm_18.12.1.LTS/bin/armcl" --code_state=32 -me -g --diag_warning=225 --diag_wrap=off --display_error_number -z -m"perf_r55.map" -i"D:/ti/ccsv900/ccs/tools/compiler/ti-cgt-arm_18.12.1.LTS/lib" -i"D:/ti/ti-processor-sdk-rtos-am65xx-evm-05.02.00.10/pdk_am65xx_1_0_3/packages/ti/csl/lib/am65xx/r5f/release" -i"D:/ti/ccsv900/ccs/tools/compiler/ti-cgt-arm_18.12.1.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="perf_r55_linkInfo.xml" --rom_model -o "perf_r55.out" "./main.obj" "../linker_r5.lds"  -llibc.a -lti.csl.aer5f -lti.csl.init.aer5f 
<Linking>
warning #10366-D: automatic library build: using library "D:\ti\ccsv900\ccs\tools\compiler\ti-cgt-arm_18.12.1.LTS\lib\rtsv4_A_le_eabi.lib" for the first time, so it must be built.  This may take a few minutes.
Creating library c:/users/hungwe~1.yan/appdata/local/temp/ti_mkl~2/rtsv4_a_le_eabi.lib
 
>> Compilation failure
makefile:143: recipe for target 'perf_r55.out' failed
error #16004-D: file "D:/ti/ti-processor-sdk-rtos-am65xx-evm-05.02.00.10/pdk_am65xx_1_0_3/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.init.aer5f<boot.oer5f>" has a Tag_ABI_VFP_args attribute value of "1" that is different than one previously seen ("0"); combining incompatible files
error #16004-D: file "D:/ti/ti-processor-sdk-rtos-am65xx-evm-05.02.00.10/pdk_am65xx_1_0_3/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<csl_arm_r5.oer5f>" has a Tag_ABI_VFP_args attribute value of "1" that is different than one previously seen ("0"); combining incompatible files
warning #10063-D: entry-point symbol other than "_c_int00" specified:  "_resetvectors"
error #10010: errors encountered during linking; "perf_r55.out" not built
gmake[1]: *** [perf_r55.out] Error 1
makefile:139: recipe for target 'all' failed
gmake: *** [all] Error 2

**** Build Finished ****

  • Hungwei yang,

    There are couple of issue with your setup at the moment which I have highlighted below:

    1. Based on your compiler settings, it appears that you are building your code without setting of the compiler option --float_support, and that CSL library is built with --float_support=vfpv3d16. These settings must be compatible. Being compatible usually means they have to match. To ensure the same setting is used across the entire code base the compiler inserts a TAG which indicates the mismatch during the link stage.

    The complete list of R5F flags with TI ARM compiler used in PDK can found in the file rules_ti_cgt_am.mk and rules_r5f.mk found in the folder :
    pdk_am65xx_1_0_3\packages\ti\build\makerules

    2. Processor SDK RTOS 5.x doesn`t support the CCSv9 baseline yet. You will need to install CCSV8 as has been indicated in Release notes:
    software-dl.ti.com/.../index_release_specific.html

    If you are starting with R5F development and want to know how to create a project from scratch then you can refer to the following:
    software-dl.ti.com/.../index_examples_demos.html

    Hope this helps.

    Regards,
    Rahul
  • Also, seems like you are performing some R5F performance tests so please make sure that you have optimization flags enabled as explained here
    processors.wiki.ti.com/.../ARM_compiler_optimizations

    Regards,
    Rahul
  • Hello Rahul,

    Thanks for the detailed reply. After adding -mv7R5 and --float_support=VFPv3D16 and changing to use CCS v8, I successfully compile and run the bard-metal program on R5F.

    BTW, I am curious that if we can build bare-metal program without CSL libraries? I have created another thread (e2e.ti.com/.../786761) for this question.

    Regards,
    Hungwei
  • Hello Rahul,

    I am glad that you remind me this... :)

    I added -O3 and --opt_for_speed=5 but the performance is not good enough. And my next step is trying to executing the program in TCM which are the fastest memories I supposed. But I have some questions about the R5F mmap (e2e.ti.com/.../786771), can you please give some comment?

    Regards,
    Hungwei