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.

AM6421: Error regarding makefile build

Part Number: AM6421
Other Parts Discussed in Thread: SYSCONFIG, DP83869, TPIC2810, TCA6424

Hi,

I have a question regarding the build by makefiles. The used SDK version is: mcu_plus_sdk_am64x_08_01_00_36

Base on the TIs document "mcu_plus_sdk_am64x/docs/api_guide_am64x/MAKEFILE_BUILD_PAGE.html" I have done all these steps but unfortunately there is an error for this command:

cd C:\Tools\ti\mcu_plus_sdk_am64x_08_01_00_36

gmake -s all PROFILE=release

The error message is:

C:\Tools\ti\mcu_plus_sdk_am64x_08_01_00_36>gmake -s all PROFILE=release
process_begin: CreateProcess(NULL, C:/ti/ccs1100/ccs/utils/cygwin/mkdir -p obj/am64x/ti-arm-clang/release/r5f/board/, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.
makefile.am64x.r5f.ti-arm-clang:117: recipe for target 'obj/am64x/ti-arm-clang/release/r5f/board/' failed
gmake[3]: *** [obj/am64x/ti-arm-clang/release/r5f/board/] Error 2
makefile.am64x:267: recipe for target 'board_r5f.ti-arm-clang' failed
gmake[2]: *** [board_r5f.ti-arm-clang] Error 2
makefile.am64x:6: recipe for target 'all' failed
gmake[1]: *** [all] Error 2
makefile:42: recipe for target 'all' failed
gmake: *** [all] Error 2

I also tried to build single examples but still the same value. I have no glue what the error is. I hope you can support me.

Thanks in advance.

Best regards

Frank Schütz

  • Hi Frank,

    The error indicates that it was not able to find C:/ti/ccs1100/ccs/utils/cygwin/mkdir.

    Can you cross check if this path (C:/ti/ccs1100/ccs/utils/cygwin/mkdir) exists.

    Which is the ccs version installed?

    Regards

  • Hi Rajat,

    the CSS version is 11.2.0. I have changed the default path to C:\Tools\ti\ccs112\... and that is also available in the PATH environment variable. But it seems that the default path is used. How can I change / adapt this path?

    BR

    Frank

  • Hi Frank,

    You can change the ccs path in imports.mak available in the MCU+SDK install directory.

    Regards
     

  • Hi Rajat,

    I have updated the imports.mak file and the build has been started! There is later in the build a fail:

    C:\Tools\ti\mcu_plus_sdk_am64x_08_01_00_36>gmake -s all PROFILE=release
    Compiling: board.am64x.r5f.gcc-armv7.release.lib: eeprom/eeprom.c

    process_begin: CreateProcess(NULL, C:/Tools/ti/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -marm -Wall -Werror -g -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -Wno-unused-but-set-variable -fdata-sections -ffunction-sections -O2 -IC:/Tools/ti/mcu_plus_sdk_am64x_08_01_00_36/source -DSOC_AM64X -MMD -MT eeprom.obj -o obj/am64x/gcc-armv7/release/r5f/board//eeprom.obj eeprom/eeprom.c, ...) failed.
    make (e=2): Das System kann die angegebene Datei nicht finden.
    makefile.am64x.r5f.gcc-armv7:93: recipe for target 'eeprom.obj' failed
    gmake[3]: *** [eeprom.obj] Error 2
    makefile.am64x:267: recipe for target 'board_r5f.gcc-armv7' failed
    gmake[2]: *** [board_r5f.gcc-armv7] Error 2
    makefile.am64x:6: recipe for target 'all' failed
    gmake[1]: *** [all] Error 2
    makefile:42: recipe for target 'all' failed
    gmake: *** [all] Error 2

    I my ti folder there is no folder "gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc". Do I need to install the GCC ARM eabi manually? Is there a description in your document? I haven't found it.

    In comparison to the CSS IDE the build cammand is like this and without eabi:

    Building file: "syscfg/ti_drivers_open_close.c"
    Invoking: Arm Compiler
    "C:/Tools/ti/ccs1120/ccs/tools/compiler/ti-cgt-armllvm_1.3.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -I"C:/Tools/ti/ccs1120/ccs/tools/compiler/ti-cgt-armllvm_1.3.1.LTS/include/c" -I"C:/Tools/ti/mcu_plus_sdk_am64x_08_01_00_36/source" -I"C:/Tools/ti/mcu_plus_sdk_am64x_08_01_00_36/source/kernel/freertos/FreeRTOS-Kernel/include" -I"C:/Tools/ti/mcu_plus_sdk_am64x_08_01_00_36/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F" -I"C:/Tools/ti/mcu_plus_sdk_am64x_08_01_00_36/source/kernel/freertos/config/am64x/r5f" -DSOC_AM64X -D_DEBUG_=1 -gstrict-dwarf -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_drivers_open_close.d_raw" -MT"syscfg/ti_drivers_open_close.o" -I"C:/Users/schuefr/workspace_v11/uart_echo_callback_am64x-evm_r5fss0-0_freertos_ti-arm-clang/Debug/syscfg" -o"syscfg/ti_drivers_open_close.o" "syscfg/ti_drivers_open_close.c"
    Finished building: "syscfg/ti_drivers_open_close.c"

     

    Best regards

    Frank

  • Hi Frank,

    If you want the libraries to be built using Arm gcc compiler then yes you need to install it as mentioned in getting Started -> Download, Install and Setup SDK and Tools in the AM64x manual https://dev.ti.com/tirex/explore/node?node=AAItjAZOtq4dV64ZMMvr3g__rN4Qml4__LATEST.

    However if you are going to use only ti ARM clang compiler you don't need to install it .
    You can use gmake -s -f makefile.am64x <lib>.ti-arm-clang PROFILE=debug to build a specific library for ti arm clang compiler.

    Example to build freeRTOS library you will use:-

    gmake -s -f makefile.am64x freertos_r5f.ti-arm-clang PROFILE=debug

    You can refer to file makefile.am64x at the root sdk directory for more details.

    Regards

  • Hi Rajat,

    great, that is what I exactly need! I had a look into the makefile.am64x because I want build all. I tried out like described in the file and there is still an error:

    C:\Tools\ti\mcu_plus_sdk_am64x_08_01_00_36>gmake -s -f makefile.am64x all
    Compiling: board.am64x.r5f.gcc-armv7.release.lib: eeprom/eeprom.c
    process_begin: CreateProcess(NULL, C:/Tools/ti/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -marm -Wall -Werror -g -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -Wno-unused-but-set-variable -fdata-sections -ffunction-sections -O2 -IC:/Tools/ti/mcu_plus_sdk_am64x_08_01_00_36/source -DSOC_AM64X -MMD -MT eeprom.obj -o obj/am64x/gcc-armv7/release/r5f/board//eeprom.obj eeprom/eeprom.c, ...) failed.
    make (e=2): Das System kann die angegebene Datei nicht finden.
    makefile.am64x.r5f.gcc-armv7:93: recipe for target 'eeprom.obj' failed
    gmake[2]: *** [eeprom.obj] Error 2
    makefile.am64x:267: recipe for target 'board_r5f.gcc-armv7' failed
    gmake[1]: *** [board_r5f.gcc-armv7] Error 2
    makefile.am64x:6: recipe for target 'all' failed
    gmake: *** [all] Error 2

    The above command use eabi again indead of the similar command of you "gmake -s -f makefile.am64x freertos_r5f.ti-arm-clang PROFILE=release" that works also on my side.

    Do you have an idea?

    BR

    Frank

  • Hi Frank,

    In order to build the complete SDK without installing gcc ARM eabi compiler you need to take out all the build steps from the makefile that use gcc RAM eabi compiler.

    I have modified the makefile for your reference.
    makefile.am64x

    You can replace the makefile.am64x in MCU+ SDK with this one and then you can run gmake -s all PROFILE=release

    Let me know if this helps.

    Regards

  • Hi Rajat, 

    thank you for you update! The build starts but after building "board.am64x.r5f.ti-arm-clang.release.lib" the build for "C:/Tools/ti/gcc-arm-none-eab..." is started and failed! I use mcu_plus_sdk_am64x_08_02_00_31 (fresh checked out). There is changed the updated file "makefile.am64x" from you and updated file "imports.mak" because of newer CSS version:

    - CCS_PATH?=$(TOOLS_PATH)/ccs1120/ccs

    - CGT_TI_ARM_CLANG_PATH=$(TOOLS_PATH)/ti-cgt-armllvm_1.3.1.LTS

    - SYSCFG_PATH ?= $(TOOLS_PATH)/sysconfig_1.12.0

    Maybe if you can reproduce it at your side you can see the error as well.

    Best regards

    Frank

    Error at my side:

    C:\Tools\ti\mcu_plus_sdk_am64x_08_02_00_31>gmake -s all PROFILE=release
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: eeprom/eeprom.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: eeprom/eeprom_at24c.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: ethphy/ethphy.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: ethphy/ethphy_dp83869.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: flash/flash.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: flash/flash_nor_ospi.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: flash/flash_nor_ospi_device_MX25LM25645G.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: flash/flash_nor_xspi.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: flash/flash_nor_xspi_device_S28HS512T.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: flash/flash_nor_ospi_quad.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: flash/flash_nor_ospi_quad_device_S25HL512T.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: led/led.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: led/led_gpio.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: led/led_tpic2810.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: led/led_ioexp.c
    Compiling: board.am64x.r5f.ti-arm-clang.release.lib: ioexp/ioexp_tca6424.c
    .
    Archiving: board.am64x.r5f.ti-arm-clang.release.lib to lib/board.am64x.r5f.ti-arm-clang.release.lib ...
    Archiving: board.am64x.r5f.ti-arm-clang.release.lib Done !!!
    .
    Compiling: board.am64x.r5f.gcc-armv7.release.lib: eeprom/eeprom.c
    process_begin: CreateProcess(NULL, C:/Tools/ti/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -marm -Wall -Werror -g -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -Wno-unused-but-set-variable -fdata-sections -ffunction-sections -O2 -IC:/Tools/ti/mcu_plus_sdk_am64x_08_02_00_31/source -DSOC_AM64X -MMD -MT eeprom.obj -o obj/am64x/gcc-armv7/release/r5f/board//eeprom.obj eeprom/eeprom.c, ...) failed.
    make (e=2): Das System kann die angegebene Datei nicht finden.
    makefile.am64x.r5f.gcc-armv7:93: recipe for target 'eeprom.obj' failed
    gmake[3]: *** [eeprom.obj] Error 2

  • Hi Frank,

    I tested this at my end.
    Looking at the log looks like you are still executing the old makefile.

    Can you cross check that you have replaced the makefile in the sdk with the one I supplied.

    A good way to crosscheck is to look at line 293 and check if it is :- 

    BUILD_COMBO_board = board_r5f.ti-arm-clang board_m4f.ti-arm-clang board_a53.gcc-aarch64

    Regards

  • Hi Rajat,

    the line in the makefile.am64 is available but different from the content:

    # Various Component Targets
    BUILD_COMBO_board = board_r5f.ti-arm-clang board_r5f.gcc-armv7 board_m4f.ti-arm-clang board_a53.gcc-aarch64

    Shall I remove the other targets like armv7 aso?

    Best regards

    Frank

  • Hi Frank,

    Yes you need to remove all the targets with .gcc-armv7.

    I have already done this for you in the makefile I attached in the previous replies.
    Reattaching the file for convinience

    3666.makefile.am64x

    Regards

  • Hi Rajat,

    I overtook this issue from Frank. I was able to solve the problem by adapting the paths in imports.mak and installing the compilers manually into the specified directory. The build with makefile is now successful. Thank you very much for your support.

    Kind regards

    Miriam