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: makefile_ccs_bootimage_gen fails to find the node executable to be able to run elf2rprc.js

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: SYSCONFIG

Having imported the MCU+ SDK for AM243x (08.02.00.31)  enet_l2_timesync example into CCS the build was failing was it was unable to find the sysconfig nodejs/node executable. E.g.:

Finished building target: "enet_l2_timesync_am243x-lp_r5fss0-0_freertos_ti-arm-clang.out"
 
/home/mr_halfword/ti/ccs1110/ccs/utils/bin/gmake -C /home/mr_halfword/workspace_v11/enet_l2_timesync_am243x-lp_r5fss0-0_freertos_ti-arm-clang -f makefile_ccs_bootimage_gen OUTNAME=enet_l2_timesync_am243x-lp_r5fss0-0_freertos_ti-arm-clang PROFILE=Debug MCU_PLUS_SDK_PATH=/home/mr_halfword/ti/mcu_plus_sdk_am243x_08_02_00_31 CG_TOOL_ROOT=/home/mr_halfword/ti/ccs1110/ccs/tools/compiler/ti-cgt-armllvm_1.3.0.LTS CCS_INSTALL_DIR=/home/mr_halfword/ti/ccs1110/ccs CCS_IDE_MODE=desktop
Boot image: am243x:r5fss0-0:freertos:ti-arm-clang /home/mr_halfword/workspace_v11/enet_l2_timesync_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/enet_l2_timesync_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage ...
/home/mr_halfword/ti/sysconfig_1.11.0/nodejs/node /home/mr_halfword/ti/mcu_plus_sdk_am243x_08_02_00_31/tools/boot/out2rprc/elf2rprc.js Debug/enet_l2_timesync_am243x-lp_r5fss0-0_freertos_ti-arm-clang.out >> Debug/temp_stdout_Debug.txt
makefile_ccs_bootimage_gen:77: recipe for target 'all' failed
/bin/sh: /home/mr_halfword/ti/sysconfig_1.11.0/nodejs/node: No such file or directory
gmake[3]: *** [all] Error 127
gmake[2]: [post-build] Error 2 (ignored)
makefile:178: recipe for target 'post-build' failed

The enet_l2_timesync_am243x-lp_r5fss0-0_freertos_ti-arm-clang/makefile_ccs_bootimage_gen makefile from the example includes the $(MCU_PLUS_SDK_PATH)/imports.mak file from the SDK to setup the SYSCFG_NODE variable to point at the sysconfig nodejs/node executable.

$(MCU_PLUS_SDK_PATH)/imports.mak expects to find nodejs/node in a fixed directory:

  • C:/ti/sysconfig_1.11.0/nodejs/node under Windows
  • ${HOME}/ti/sysconfig_1.11.0/nodejs/node under Linux

However, the location where $(MCU_PLUS_SDK_PATH)/imports.mak expects nodejs/node didn't exist:

1. When installed MCU+ SDK for AM243x (08.02.00.31) in CCS 11.1 under Windows, the Resource Explorer detected the sysconfig installed with CCS under C:/ti/ccs1110/ccs/utils/sysconfig_1.11.0 and so didn't attempt to install C:/ti/sysconfig_1.11.0.

2. When installed MCU+ SDK for AM243x (08.02.00.31) in CCS 11.2 under Linux, the Resource Explorer detected that since CCS 11.2 came with sysconfig 1.12.0 that sysconfig 1.11.0 needed to be installed. However, Resource Explorer installed sysconfig 1.11.0 in ${HOME}/ti/sysconfig_1_11_0 rather than the ${HOME}/ti/sysconfig_1.11.0 directory expected by $(MCU_PLUS_SDK_PATH)/imports.mak. I.e. difference is underscores .vs. dot as the separator between the numbers in the sysconfig version.

To allow the build to work under Linux created a sym-link from the directory installed by the Resource Explorer to that expected by  $(MCU_PLUS_SDK_PATH)/imports.mak:

mr_halfword@Haswell-Ubuntu:~$ cd ~/ti
mr_halfword@Haswell-Ubuntu:~/ti$ ln -s sysconfig_1_11_0 sysconfig_1.11.0

I also notice that that when Resource Explorer install sysconfig it contains the nodejs/node executable required by makefile_ccs_bootimage_gen. Whereas the sysconfig installed by CCS under <CCS_install_root>/ccs/utils/sysconfig_<version> doesn't contain nodejs/node.

Not sure if the MCU+ SDK, Resource Explorer and/or CCS installers can be corrected to fix the discrepancies so that the makefile_ccs_bootimage_gen can find the nodejs/node executable.