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.

MCU-PLUS-SDK-AM243X: The IPC_RPMsg_echo driver broken in SDK

Part Number: MCU-PLUS-SDK-AM243X

Tool/software:

Hi,

I was trying to build the demo driver "ipc_rpmsg_echi.c", which seems to give a build error. The driver in the SDK appears to be broken or file auto-generation appears to be broken

  • Here is part of the output errors

    Invoking: Arm Compiler
    "C:/ti/ccs1280/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-m4 -mfloat-abi=hard -mlittle-endian -mthumb -I"C:/ti/ccs1280/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/include/c" -I"C:/dev/mcusdk/source" -DSOC_AM243X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_drivers_config.d_raw" -MT"syscfg/ti_drivers_config.o" -I"C:/dev/ccsjacob/ipc_rpmsg_echo_am243x-evm_m4fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_drivers_config.o" "syscfg/ti_drivers_config.c"
    subdir_rules.mk:39: recipe for target 'syscfg/ti_drivers_config.o' failed
    syscfg/ti_drivers_config.c:160:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS0_0] = (uintptr_t)(&gIpcSharedMem[]);
                                                                                           ^
    syscfg/ti_drivers_config.c:161:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS0_1] = (uintptr_t)(&gIpcSharedMem[]);
                                                                                           ^
    syscfg/ti_drivers_config.c:162:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS1_0] = (uintptr_t)(&gIpcSharedMem[]);
                                                                                           ^
    syscfg/ti_drivers_config.c:163:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS1_1] = (uintptr_t)(&gIpcSharedMem[]);
                                                                                           ^
    4 errors generated.
    gmake: *** [syscfg/ti_drivers_config.o] Error 1
    Building file: "syscfg/ti_dpl_config.c"
    Invoking: Arm Compiler

  • Hi Jacob,

    The above issue is coming because IPC examples can now only be built as system project. You might be trying to build it for a specific core.

    Please refer faq-mcu-sdk-build-error-expected-expression-rpmsgparams-vringtxtaseaddr for more detail.

    If you want to enable IPC between specific cores, please refer faq-processor-sdk-am64x-how-to-do-ipc-communication-with-only-two-cores-say-r5fss0-0-and-r5fss1-1 for more info. 

    Regards,

    Tushar

  • Ok, That does answer some questions. 

    But, now I am having the issue where the M4 core does not get built. The RPRC file does not seem to generate/exist

    **** Build of configuration Debug for project ipc_rpmsg_echo_am243x-evm_system_freertos_nortos ****
    
    "C:\\ti\\ccs1280\\ccs\\utils\\bin\\gmake" -k system-post-build 
     
    C:/ti/ccs1280/ccs/utils/bin/gmake -C C:\dev\ccs\ipc_rpmsg_echo_am243x-evm_system_freertos_nortos -f makefile_system_ccs_bootimage_gen OUTNAME=ipc_rpmsg_echo_system PROFILE=Debug MCU_PLUS_SDK_PATH=C:/dev/mcusdk CG_TOOL_ROOT=C:/ti/ccs1280/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS CCS_INSTALL_DIR=C:\ti\ccs1280\ccs CCS_IDE_MODE=desktop
    gmake[1]: Entering directory 'C:/dev/ccs/ipc_rpmsg_echo_am243x-evm_system_freertos_nortos'
     Boot multi-core image: Debug/ipc_rpmsg_echo_system.appimage ...
    C:\ti\ccs1280\ccs/tools/node/node C:/dev/mcusdk/tools/boot/multicoreImageGen/multicoreImageGen.js --devID 55 --out Debug/ipc_rpmsg_echo_system.appimage ../ipc_rpmsg_echo_am243x-evm_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_rpmsg_echo_am243x-evm_r5fss0-0_freertos_ti-arm-clang.rprc@4 ../ipc_rpmsg_echo_am243x-evm_m4fss0-0_nortos_ti-arm-clang/Debug/ipc_rpmsg_echo_am243x-evm_m4fss0-0_nortos_ti-arm-clang.rprc@14  >> Debug/temp_stdout_Debug.txt
    makefile_system_ccs_bootimage_gen:58: recipe for target 'all' failed
    File ../ipc_rpmsg_echo_am243x-evm_m4fss0-0_nortos_ti-arm-clang/Debug/ipc_rpmsg_echo_am243x-evm_m4fss0-0_nortos_ti-arm-clang.rprc does not exist
    gmake[1]: *** [all] Error 1
    gmake[1]: Leaving directory 'C:/dev/ccs/ipc_rpmsg_echo_am243x-evm_system_freertos_nortos'
    makefile:15: recipe for target 'system-post-build' failed
     
    gmake: [system-post-build] Error 2 (ignored)
    
    **** Build Finished ****

    /* number of iterations of message exchange to do */
    uint32_t gMsgEchoCount = 100000u;
    
    /* main core that starts the message exchange */
    uint32_t gMainCoreId = CSL_CORE_ID_R5FSS0_0;
    /* remote cores that echo messages from main core, make sure to NOT list main core in this list */
    uint32_t gRemoteCoreId[] = {
        CSL_CORE_ID_M4FSS0_0, //We want remote core as M4 only!
    //    CSL_CORE_ID_R5FSS0_1,
    //    CSL_CORE_ID_R5FSS1_0,
    //    CSL_CORE_ID_R5FSS1_1,
        CSL_CORE_ID_MAX /* this value indicates the end of the array */
    };
    

  • Hello Jacob,

    But, now I am having the issue where the M4 core does not get built. The RPRC file does not seem to generate/exist

    Have you configured the system.xml file properly? Please refer https://e2e.ti.com/.../5335102.

    The project and the build configuration parameters should be configured properly. Also try to rebuild the project instead of just building it.

    Please refer below image.

    Regards,

    Tushar

  • This was not the issue. I have found the problem I had to add projects/locations into the build dependencies in order ho fix the issue.