10.2. Custom Hardware Support
Anjay can be used on a number of different platforms. By default, the library targets POSIX-like operating systems and their standard interfaces for networking, multithreading, etc., which means that Anjay can be easily compiled to run on many OSs, including:
Linux,
macOS,
FreeBSD,
Windows (compiled using MSYS2).
For embedded platforms, AVSystem provides a couple of integration layers and example applications for many popular SDKs and prototyping kits:
Target platform/SDK |
Integration layer |
Example application |
---|---|---|
STM32Cube w/ FreeRTOS and X-CUBE-CELLULAR |
contained in the app |
|
contained in the app |
If desired platform isn’t listed above, it means that custom implementation for time, threading, networking and (D)TLS APIs must be provided as described in Porting guide for non-POSIX platforms. Integrating with networking peripherals and APIs (e.g. cellular modems) is often nontrivial, thus AVSystem is open to provide help with developing code tailored for specific platform. In such case, please visit our contact page.
We can also assist with making many improvements and optimizations, even if the basic functionality works out of the box. For example, Anjay-zephyr contains code specific to the nRF9160 SoC which is capable of encrypting network traffic directly on the modem instead of using additional (D)TLS library, which normally is a part of the application. Thanks to that we were able to completely remove mbedTLS library, saving 80 kB of flash memory, and use nRF9160’s ability to cache (D)TLS sessions over power cycles, greatly reducing the overhead of secure connections.