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