title: How to distribute fw modules without sharing source
body: <p>I have two versions of my firmware. One is minimal, that does nothing and developed only for booting hw, and an integrated full version of the same firmware. Basically the minimal one is a cropped version of the integrated firmware. I use the minimal one for developing new fw modules in a &quot;clean&quot; environment and then integrate the new modules to the full version. There are some external collaborators who develop some other libraries for the same target hw by using the minimal version. In case of necessity, I will have to share some of the libraries with them due to some dependencies. For example I have a radio module on my hw and I have my own communication stack and one of the developers need to use the radio module. In this case I have to prepare a new minimal version with the radio module activated. However, I cannot share the source code with them because obviously the radio module library includes my communication stack and I do not want to make a critical part of my fw publicly available.</p>
  <p>So I was wondering if there is a way to share my libraries as binary files without sharing the source. I found <a href="https://stackoverflow.com/q/48571392/10370627">this</a> and other similar threads but they are for x86/64 platforms. I know the main idea is generating <code>.dll/.so</code> files and providing them together with the header files. But in my case I am cross compiling for an ARM mcu. I am using <code>mbed os</code> with <code>mbed cli1</code> and my target is an <code>STM32</code> CORTEX M4 mcu. Mbed cli uses <code>gcc-arm-none-eabi-9-2019-q4</code> in backend. I remember I read a thread about this topic one year ago but now I cannot find any information.</p>