This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF5 SDK for Thread and Zigbee

Hi.

I am not family with the Nordic product, this is the first time.

I just download "nRF5_SDK_for_Thread_and_Zigbee_v3.0.0_d310e71.zip",  because I plan to build my NCP with my custom board(base on nRF52840).  then a follow the "Building the latest OpenThread libraries" from Inforcenter, I follow the instructions "Building the library with GCC on Windows", the step 2 say: "Run the build_gcc_libs.bat script to build all of the libraries.", but I can not find "build_gcc_libs.bat" file.

or how can I rebuild "build_gcc_libs.bat".

Cai.

  • Hi.

    I've had a look at this issue, and it seems that something is missing.

    Can you do the following:

    1. Copy the openThread master folder to this location in the SDK: (Thread and Zigbee SDK v3\external\openthread\project)

    (Note I renamed it from openthread-master to openthread)

    2. Open the nrf52840 folder and the openthread folder.

    In each of the three folders located here, remove

      $(PROJ_DIR)/../openthread/src/core/common/locator.cpp \

    from the Makefile in each of the three folders (ftd, mtd, radio)

    3. Open the nrf52840 folder again, create .bat script and paste this inside it, and run it:

    make -C mbedcrypto\cc310\armgcc
    make -C nordicsemi_nrf52840/driver/armgcc
    make -C nordicsemi_nrf52840/driver-softdevice/armgcc
    make -C openthread/ftd/armgcc
    make -C openthread/mtd/armgcc
    make -C openthread/radio/armgcc
    make -C openthread_cli/ftd/armgcc
    make -C openthread_cli/mtd/armgcc
    make -C openthread_diag/armgcc
    make -C openthread_ncp/ftd/spi/armgcc
    make -C openthread_ncp/mtd/uart/armgcc
    make -C openthread_ncp/mtd/spi/armgcc
    make -C openthread_ncp/ftd/uart/armgcc
    make -C openthread_ncp/radio/spi/armgcc
    make -C openthread_ncp/radio/uart/armgcc
    make -C openthread_nrf52840/sdk/spi/armgcc
    make -C openthread_nrf52840/sdk/uart/armgcc
    make -C openthread_nrf52840/sdk/usb/armgcc
    make -C openthread_nrf52840/softdevice/uart/armgcc
    make -C openthread_nrf52840/softdevice/spi/armgcc
    make -C openthread_nrf52840/softdevice/usb/armgcc
    make -C openthread_platform_utils/armgcc

    It should give you this output (or similar):

    C:\NordicSemi\nRF5_SDK_ThreadZigBeev3\external\openthread\project\nrf52840 (master -> origin)
    λ bygg2.bat
    
    make -C nordicsemi_nrf52840/driver/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/nordicsemi_nrf52840/driver/armgcc'
    Creating library: ../../../nordicsemi_nrf52840/driver/armgcc/libnordicsemi-nrf52840-radio-driver.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/nordicsemi_nrf52840/driver/armgcc'
    
    make -C nordicsemi_nrf52840/driver-softdevice/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/nordicsemi_nrf52840/driver-softdevice/armgcc'
    Creating library: ../../../nordicsemi_nrf52840/driver-softdevice/armgcc/libnordicsemi-nrf52840-radio-driver-softdevice.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/nordicsemi_nrf52840/driver-softdevice/armgcc'
    
    make -C openthread/ftd/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread/ftd/armgcc'
    Creating library: ../../../openthread/ftd/armgcc/libopenthread-ftd-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread/ftd/armgcc'
    
    make -C openthread/mtd/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread/mtd/armgcc'
    Creating library: ../../../openthread/mtd/armgcc/libopenthread-mtd-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread/mtd/armgcc'
    
    make -C openthread/radio/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread/radio/armgcc'
    Creating library: ../../../openthread/radio/armgcc/libopenthread-radio-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread/radio/armgcc'
    
    make -C openthread_cli/ftd/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_cli/ftd/armgcc'
    Creating library: ../../../openthread_cli/ftd/armgcc/libopenthread-cli-ftd-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_cli/ftd/armgcc'
    
    make -C openthread_cli/mtd/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_cli/mtd/armgcc'
    Creating library: ../../../openthread_cli/mtd/armgcc/libopenthread-cli-mtd-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_cli/mtd/armgcc'
    
    make -C openthread_diag/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_diag/armgcc'
    Creating library: ../../openthread_diag/armgcc/libopenthread-diag-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_diag/armgcc'
    
    make -C openthread_ncp/ftd/spi/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/ftd/spi/armgcc'
    Creating library: ../../../../openthread_ncp/ftd/spi/armgcc/libopenthread-ncp-ftd-spi-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/ftd/spi/armgcc'
    
    make -C openthread_ncp/mtd/uart/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/mtd/uart/armgcc'
    Creating library: ../../../../openthread_ncp/mtd/uart/armgcc/libopenthread-ncp-mtd-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/mtd/uart/armgcc'
    
    make -C openthread_ncp/mtd/spi/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/mtd/spi/armgcc'
    Creating library: ../../../../openthread_ncp/mtd/spi/armgcc/libopenthread-ncp-mtd-spi-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/mtd/spi/armgcc'
    
    make -C openthread_ncp/ftd/uart/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/ftd/uart/armgcc'
    Creating library: ../../../../openthread_ncp/ftd/uart/armgcc/libopenthread-ncp-ftd-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/ftd/uart/armgcc'
    
    make -C openthread_ncp/radio/spi/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/radio/spi/armgcc'
    Creating library: ../../../../openthread_ncp/radio/spi/armgcc/libopenthread-ncp-radio-spi-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/radio/spi/armgcc'
    
    make -C openthread_ncp/radio/uart/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/radio/uart/armgcc'
    Creating library: ../../../../openthread_ncp/radio/uart/armgcc/libopenthread-ncp-radio-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_ncp/radio/uart/armgcc'
    
    make -C openthread_nrf52840/sdk/spi/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/sdk/spi/armgcc'
    Creating library: ../../../../openthread_nrf52840/sdk/spi/armgcc/libopenthread-nrf52840-sdk-spi.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/sdk/spi/armgcc'
    
    make -C openthread_nrf52840/sdk/uart/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/sdk/uart/armgcc'
    Creating library: ../../../../openthread_nrf52840/sdk/uart/armgcc/libopenthread-nrf52840-sdk.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/sdk/uart/armgcc'
    
    make -C openthread_nrf52840/sdk/usb/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/sdk/usb/armgcc'
    Creating library: ../../../../openthread_nrf52840/sdk/usb/armgcc/libopenthread-nrf52840-sdk-usb.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/sdk/usb/armgcc'
    
    make -C openthread_nrf52840/softdevice/uart/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/softdevice/uart/armgcc'
    Creating library: ../../../../openthread_nrf52840/softdevice/uart/armgcc/libopenthread-nrf52840-softdevice-sdk.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/softdevice/uart/armgcc'
    
    make -C openthread_nrf52840/softdevice/spi/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/softdevice/spi/armgcc'
    Creating library: ../../../../openthread_nrf52840/softdevice/spi/armgcc/libopenthread-nrf52840-softdevice-sdk-spi.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/softdevice/spi/armgcc'
    
    make -C openthread_nrf52840/softdevice/usb/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/softdevice/usb/armgcc'
    Creating library: ../../../../openthread_nrf52840/softdevice/usb/armgcc/libopenthread-nrf52840-softdevice-sdk-usb.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_nrf52840/softdevice/usb/armgcc'
    
    make -C openthread_platform_utils/armgcc
    make: Entering directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_platform_utils/armgcc'
    Creating library: ../../openthread_platform_utils/armgcc/libopenthread-platform-utils-nrf52840.a
    Done
    make: Leaving directory `C:/NordicSemi/nRF5_SDK_ThreadZigBeev3/external/openthread/project/nrf52840/openthread_platform_utils/armgcc'

    You also have to do the same for the nrf52811 folder.

    There is only two Makefiles you have to edit there (in the mtd and radio folder of the openthread folder)

    And run this .bat script:

    make -C nordicsemi_nrf52811/driver/armgcc
    make -C openthread/mtd/armgcc
    make -C openthread/radio/armgcc
    make -C openthread_cli/mtd/armgcc
    make -C openthread_diag/armgcc
    make -C openthread_ncp/radio/spi/armgcc
    make -C openthread_ncp/radio/uart/armgcc
    make -C openthread_nrf52811/sdk/spi/armgcc
    make -C openthread_nrf52811/sdk/uart/armgcc
    make -C openthread_platform_utils/armgcc

    After this you can run the python script:

    Best regards,

    Andreas

  • Thanks for your reply.

    I do as your instruction, and success builds OpenThread library.

  • Hi.

    Quick follow-up.

    I found out that I can build the openThread library without removing locator.cpp from any Makefiles by building the following commit:

    23ff1015d4f68b07c303ab35c9656f43642d2c1d

    Just do this to download the correct commit:

    git clone git://github.com/openthread/openthread.git
    cd openthread
    git checkout 23ff1015d4f68b07c303ab35c9656f43642d2c1d

    Best regards,

    Andreas

Related