I am desperately trying to compile the application and deviceOS locally for the Tracker One on Windows 10 with the following versions:
arm-none-eabi-gcc --version -> arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10-2020-q4-major) 10.2.1 20201103 (release)
make --version -> GNU Make 3.82.90 (MinGW)
makefile from Particle workbench -> buildscripts@1.11.0
Here’s how I proceeded retrieving the source code files:
- Pull the deviceOS (https://github.com/particle-iot/device-os, branch develop, SHA 5deba5a aka version 4.0.2)
git clone https://github.com/particle-iot/device-os.git
cd device-os
git checkout 5deba5a
git reset --hard
git clean -xdf
git submodule update --init --recursive
- Pull the tracker-edge firmware (https://github.com/particle-iot/tracker-edge, branch develop, SHA 144b29c)
git clone https://github.com/particle-iot/tracker-edge.git
cd tracker-edge
git submodule update --init --recursive
-
Create folder structure like the following:
particle
|-device-os
|-tracker-edge
|-Makefile -
Execute the make command:
make compile-all APPDIR=tracker-edge DEVICE_OS_PATH=device-os PLATFORM_ID=26
- After ~8 minutes the following result is prompted:
Invoking: ARM GNU Create Flash Image
arm-none-eabi-objcopy -O binary ../../../build/target/system-part1/platform-26-m/system-part1.elf ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc
if [ -s ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc ]; then \
head -c $((`stat --print %s ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc` - 38)) ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc > ../../../build/target/system-part1/platform-26-m/system-part1.bin.no_crc && \
tail -c 38 ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc > ../../../build/target/system-part1/platform-26-m/system-part1.bin.crc_block && \
test "0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20280078563412" = `xxd -p -c 500 ../../../build/target/system-part1/platform-26-m/system-part1.bin.crc_block` && \
sha256sum ../../../build/target/system-part1/platform-26-m/system-part1.bin.no_crc | cut -c 1-65 | xxd -r -p | dd bs=1 of=../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc seek=$((`stat --print %s ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc` - 38)) conv=notrunc && \
head -c $((`stat --print %s ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc` - 4)) ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc > ../../../build/target/system-part1/platform-26-m/system-part1.bin.no_crc && \
crc32 ../../../build/target/system-part1/platform-26-m/system-part1.bin.no_crc | cut -c 1-10 | xxd -r -p | dd bs=1 of=../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc seek=$((`stat --print %s ../../../build/target/system-part1/platform-26-m/system-part1.bin.pre_crc` - 4)) conv=notrunc ;\
fi
../../../build/module.mk:201: recipe for target '../../../build/target/system-part1/platform-26-m/system-part1.bin' failed
make[2]: *** [../../../build/target/system-part1/platform-26-m/system-part1.bin] Error 1
make[2]: Leaving directory 'C:/particle/device-os/modules/tracker/system-part1'
makefile:50: recipe for target 'C:/particle/device-os/modules/tracker/system-part1/makefile' failed
make[1]: *** [C:/particle/device-os/modules/tracker/system-part1/makefile] Error 2
make[1]: Leaving directory 'C:/particle/device-os/modules'
Makefile:73: recipe for target 'compile-all' failed
make: *** [compile-all] Error 2
However, when using the deviceOS that comes with the Particle workbench it compiles fine without any errors. For a continuous integration pipeline I am reliant on the deviceOS from GitHub and therefore want to make it work.
If you have any idea of how I can solve this, I’d greatly appreciate your help.