Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

micro-ecc makefile error

I am trying to build the micro-ecc library following the procedure detailed in the BLE LE Secure Connections multirole example. I am using SDK v11.

I have cloned the micro-ecc project and saved to the required 'external' SDK folder. 

When I run the Makefile located in ..\..\..\nRF5_SDK_11.0.0_89a8197\external\micro-ecc\nrf51_armgcc\armgcc I get the following error.

$ gnumake
rm -rf _build
echo makefile
makefile
mkdir _build
Compiling file: uECC.c
process_begin: CreateProcess(NULL, "C:/Program Files/GNU Tools ARM Embedded/4.9 2015q1/bin/arm-none-eabi-gcc" -DuECC_ENABLE_VLI_API -DuECC_VLI_NATIVE_LITTLE_ENDIAN=1 -DuECC_SUPPORTS_secp256r1=1 -DuECC_SQUARE_FUNC=1 -DuECC_SUPPORT_COMPRESSED_POINT=0 -DuECC_OPTIMIZATION_LEVEL=3 -mcpu=cortex-m0 -mthumb -mabi=aapcs --std=gnu99 -Wall -Werror -O2 -g3 -mfloat-abi=soft -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -c -o _build/uECC.o C:/Users/david.andresky/Downloads/nRF5_SDK_11.0.0_89a8197/external/micro-ecc/micro-ecc/uECC.c, ...) failed.
make (e=2): The system cannot find the file specified.
gnumake: *** [_build/uECC.o] Error 2

The cloned project did not contain a _build folder but one is created when I run this Makefile. However, the uECC.o file is not created resulting in the error. 

Would appreciate insight into necessary Makefile changes to get this to run.

Parents
  • Hi,

    This error (The system cannot find the file specified) typically indicate that the executable does not exist. Do you have ARM GCC version 4.9 2015q1 installed in the expected location (C:/Program Files/GNU Tools ARM Embedded/4.9 2015q1/bin)? If you have a different version or have installed in a different location, then you need to set the correct path in <SDK>\components\toolchain\gcc\Makefile.windows.

    (by the way, once the Makefile.windows is correctly configured, the simplest way to clone and build the micro-gcc library is to simply double click on <SDK>external\micro-ecc\build_all.bat. this will check out the source code and build all variants in one go.)

  • Hi, thanks for quick reply. I have version 5.4 and it is located in:

    C:\Program Files (x86)\GNU Tools ARM Embedded\5.4 2016q3\bin

    I changed the Makefile.windows file to reference the newer GNU tools but still had a problem. What I found was that the install directory (Program Files (x86)) was an issue for my git bash shell. Apparently Unix doesn't like "(".

    To make a long story short, I ...

    1. copied the GNU Tools to C:\Program Files
    2. commented out the ifeq statement in Makefile.windows and forced PROGFILES := C:/Program Files (though this still didn't resolve the issue)
    3. So then I added a statement to my .bashrc file to insert the Program Files path at the beginning of my PATH variable to force it to look in that location.

    Now I can build the library. Not a very elegant solution but works for now.

Reply
  • Hi, thanks for quick reply. I have version 5.4 and it is located in:

    C:\Program Files (x86)\GNU Tools ARM Embedded\5.4 2016q3\bin

    I changed the Makefile.windows file to reference the newer GNU tools but still had a problem. What I found was that the install directory (Program Files (x86)) was an issue for my git bash shell. Apparently Unix doesn't like "(".

    To make a long story short, I ...

    1. copied the GNU Tools to C:\Program Files
    2. commented out the ifeq statement in Makefile.windows and forced PROGFILES := C:/Program Files (though this still didn't resolve the issue)
    3. So then I added a statement to my .bashrc file to insert the Program Files path at the beginning of my PATH variable to force it to look in that location.

    Now I can build the library. Not a very elegant solution but works for now.

Children
Related