Hi Sebastian,
Building our libraries for bare-metal is the easy part. Both wolfSSL and wolfMQTT are pure C libraries designed for portability and even bare-metal use.
For building you have a few options:
1) Use ./configure and cross-compile the libraries for your target. Something like:
./configure --host=arm-none-eabi CC=gcc AR=ar --disable-shared --disable-examples --disable-crypttests --disable-asm --disable-rsa --disable-dh --enable-tls13 --disable-tlsv12 CFLAGS="-mcpu=cortex-m0 -mthumb" LDFLAGS="-mcpu=cortex-m0 -mthumb"
. The result is a .a static library. You can use --prefix= to specify a custom install path used with "make install". This generates a wolfssl/options.h with the build options used. You'll need to include this in your application
#include <wolfssl/options.h>
.
2) Use our example GCC Makefiles in IDE/GCC-ARM which can be easily setup for Cortex M0
3) Use your own IDE: Import the src/*.c and wolfcrypt/src/*.c files into your project and build directly. Add include to the wolfSSL/wolfMQTT root. Add pre-processor WOLFSSL_USER_SETTINGS and add your own user_settings.h file (examples here: https://github.com/wolfSSL/wolfssl/tree … s/configs)
You'll likely have to do some investigating on how to use LWIP on bare-metal. I don't know of an example we have for this. But google turned up this nice article: https://lwip.fandom.com/wiki/LwIP_with_ … ing_system
Perhaps a short technical call might help you get started?
Thanks,
David Garske, wolfSSL