ARM compiler version (and uploading firmware)

Posted on
  • 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,)

  • Good news on the new compiler - however I'll reserve judgement until I see something working. I have avoided upgrading because when I've tried I have noticed instability or just plain brokenness on some builds.

    The dialog disappears but nothing happens. What is going wrong here?

    You could check the dev console in Chrome? What OS do you have? I've had some reports it doesn't work on some OSes :(

    I'd strongly suggest following the instructions though and using the Android app for flashing - it's significantly faster https://www.espruino.com/Bangle.js#firmw­are-updates

  • I'm using ubuntu 18.04.04 LTS (64 bit).
    Web upgrade works.

    After transferring my own-build firmware to the phone I managed to flash the image to the phone. As far as I can judge it works nicely, but I did not try every available feature.

  • 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.

  • Thanks for the report.
    inlined C is interesting. I'll give it a stab. Could be useful for another experiment as well.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

ARM compiler version (and uploading firmware)

Posted by Avatar for FransM @FransM

Actions