Reduce program size on mbed os 6 / lorawan

Hello,

I am developing on the B-L072-LRWAN discovery kit. I have been trying to reduce the program size of mbed-os-example-lorawan, since I don’t need the RTOS. This was previously possible by using the .mbedignore file (see Not receiving downlinks when using low power timers (STM32F070 / SX1276) · Issue #103 · ARMmbed/mbed-os-example-lorawan · GitHub) that seems to have been deprecated in mbed os 6. Therefore, is there an other way to reduce the program size on mbed os 6?

Best regards,
Nicolas Verbeek

Mbedignore files still work in mbed 6! The only issue is that the directory structure changed in mbed os 6.5, so any mbedignore made for an earlier version of mbed will need to be rewritten.

Also note that you can activate several size optimizations at once by using bare metal mode. To enable it, set up mbed_app.json as described here.

Thank you very much for your reply.

Activating bare metal mode would be ideal, but from the documentation it seems the LoRaWAN APIs are not supported in bare-metal… Actually I have just tried it on the LoRa example and I get an error when linking:
undefined reference to SX1276_LoRaRadio::~SX1276_LoRaRadio()'
which I believe is related to:
"target.components_add": ["SX1276"]
in the target_overrides section of the mbed_app.json file. Any ideas on how to solve this?

Best regards,
Nicolas

If the docs say it’s not supported, then it’s unlikely to work. However, to fix this particular error, you could try to find the cpp file where SX1276_LoRaRadio::~SX1276_LoRaRadio() is defined and figure out why it’s not building.