Reducing the size of overall custom firmware binary.

Home Forums mDot/xDot Reducing the size of overall custom firmware binary.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #31326
    Ajay K
    Participant

    We are considering using the FOTA process to flash our firmware and
    I was hoping to get some guidance from the multitech team regarding reducing the overall size of the binary. Does the mdot library require the mbed-os RTOS and can our custom firmware use the newlib-nano, instead of the standard library or do you see concerns using this library since its not thread safe? Here is the summary of the mbed cli o/p after compilation and the two largest usage of the flash space is the [lib]\mDot-GCC_ARM.a (mdot 4.0 library) and the [lib]\c.a. Our custom source is the mOrcellLib, which is the 4th largest.

    Space used after regions merged: 0x3b4f8
    | Module | .text | .data | .bss |
    |———————-|————|———-|———–|
    | [fill] | 298(+0) | 16(+0) | 62(+0) |
    | [lib]\c.a | 33656(+0) | 2472(+0) | 89(+0) |
    | [lib]\gcc.a | 7308(+0) | 0(+0) | 0(+0) |
    | [lib]\m.a | 4844(+0) | 1(+0) | 0(+0) |
    | [lib]\mDot-GCC_ARM.a | 104550(+0) | 103(+0) | 5390(+0) |
    | [lib]\misc | 188(+0) | 4(+0) | 28(+0) |
    | [lib]\nosys.a | 32(+0) | 0(+0) | 0(+0) |
    | [lib]\stdc++.a | 6428(+0) | 8(+0) | 44(+0) |
    | mOrcellLib\src | 14192(+0) | 0(+0) | 392(+0) |
    | main.o | 144(+0) | 0(+0) | 24(+0) |
    | mbed-os\components | 92(+0) | 0(+0) | 0(+0) |
    | mbed-os\drivers | 3220(+0) | 0(+0) | 1484(+0) |
    | mbed-os\events | 1422(+0) | 0(+0) | 0(+0) |
    | mbed-os\features | 64(+0) | 0(+0) | 0(+0) |
    | mbed-os\hal | 2774(+0) | 8(+0) | 247(+0) |
    | mbed-os\platform | 3356(+0) | 276(+0) | 392(+0) |
    | mbed-os\rtos | 9954(+0) | 168(+0) | 5965(+0) |
    | mbed-os\targets | 18542(+0) | 8(+0) | 1411(+0) |
    | Subtotals | 211064(+0) | 3064(+0) | 15528(+0) |
    Total Static RAM memory (data + bss): 18592(+0) bytes
    Total Flash memory (text + data): 214128(+0) bytes

    Do you have any suggestions as to what potentially can we exclude while compiling and I could add that to .mbedignore file?

    Thanks,
    Ajay

    #31327
    Jason Reiss
    Keymaster

    RTOS is required. Using ARMC6 to compile reduces the firmware size.

    #31328
    Ajay K
    Participant

    Thanks Jason for confirming. Also can mbed studio be used to build MDot custom firmware? I am guessing you need a license to compile using ARMC6 with mbed cli?

    Thanks,
    Ajay

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.