• I want to report my findings on the cross compiler.
    The Espruino README_Building.md suggest to use gcc-arm-none-eabi-5_4-2016q3
    As I was interested in the pragma for loop unrolling I decided to download gcc-arm-none-eabi-9-2020-q2-update-x86_6­4-linux.tar.bz2 from https://developer.arm.com/tools-and-soft­ware/open-source-software/developer-tool­s/gnu-toolchain/gnu-rm/downloads

    The good news: I managed to compile (for bangle.js) and the .text section decreases from 0x4e6dc to 0x4e154 bytes so a code size reduction of 1516 bytes (0x588)

    The bad news I did not manage to upload my firmware.
    I use Chromium, connect to my bangle, go to Settings/Flasher select Flash from File, select the zip file. I get the firmware update dialog, bangle.js. select Next. The dialog disappears but nothing happens.
    What is going wrong here?

    (and the other bad news, much less important of course: according to the .lst file the loop unrolling pragma that I added did not have the desired effect, no unrolling was done,)

  • the .text section decreases from 0x4e6dc to 0x4e154 bytes so a code size reduction of 1516 bytes (0x588)

    as for output size the 8-2019q3-update produced shorter binaries than newer gcc 9 for me, didn't hit any compiler bug so far

    btw for quick tests on device you may also try inline C, it is quite easy to self host it (tried to describe it here) and you can switch compiler versions and flags and enable C preprocessor too. It is limited to self contained code but still a lot can be done with that.

About

Avatar for FransM @FransM started