Understanding Amazon FreeRTOS vs. AWS IoT SDK for Embedded C

PICYourBrain wrote on May 07, 2018:

I’m just getting started with Amazon’s IoT software tools and I have a little confusion about the difference between Amazon FreeRTOS and the AWS IoT SDK for Embedded C. From what I understand, the SDK for Embedded C doesn’t contain an RTOS and needs to be ported (timer, network, threading) to the hardware that you’re working with. Aside from that, do the two offer the same functionality? Is Amazon FreeRTOS essentially just the AWS IoT SDK for Embedded C, plus FreeRTOS, plus ports to a handful of various embedded platforms? Or do the two also differ in core functionality? Could someone please explain to me how the two tools overlap and differ?

AWSRyanB wrote on May 07, 2018:

Hello PICYourBrain,

In a nutshell, the C SDK is a standalone SDK that can be used to connect a
device to AWS IoT. The C SDK can be used in conjunction with an OS, RTOS, or on
bare metal. Amazon FreeRTOS (AFR) provides an RTOS and libraries to connect to
AWS IoT. There are also ports for AFR for several platforms (listed in the
README on github: https://github.com/aws/amazon-freertos). This allows you to
more directly focus on your application.

On MPU based devices (i.e. x86, Arm Cortex-A) you will likely want to go with
the C SDK (or the other SDKs depending on your application) running on an OS.

For 32-bit MCU devices (i.e. MIPS, Arm Cortex-M), you will likely want to use
AFR.

Let us know if you have any further questions or you need elaboration on this
topic.

-RyanB