FreeRTOS console - FreeRTOS

FreeRTOS console

In the FreeRTOS console, you can configure and download a package that contains everything you need to write an application for your microcontroller-based devices:

  • The FreeRTOS kernel.

  • FreeRTOS libraries.

  • Platform support libraries.

  • Hardware drivers.

You can download a package with a predefined configuration, or you can create your own configuration by selecting your hardware platform and the libraries required for your application. These configurations are saved in AWS and are available for download at any time.

Predefined FreeRTOS configurations

The predefined configurations make it possible for you to get started quickly with the supported use cases without thinking about which libraries are required. To use a predefined configuration, browse to the FreeRTOS console, find the configuration you want to use, and then choose Download.

You can also customize a predefined configuration if you want to change the FreeRTOS version, hardware platform, or libraries of the configuration. Customizing a predefined configuration creates a new custom configuration and does not overwrite the predefined configuration in the FreeRTOS console.

To create a custom configuration from a predefined configuration

  1. Browse to the FreeRTOS console.

  2. In the navigation pane, choose Software.

  3. Under FreeRTOS Device Software, choose Configure download.

  4. Choose the ellipsis () next to the predefined configuration that you want to customize, and then choose Customize.

  5. On the Configure FreeRTOS Software page, choose the FreeRTOS version, hardware platform, and libraries, and give the new configuration a name and a description.

  6. At the bottom of the page, choose Create and download.

Custom FreeRTOS configurations

Custom configurations allow you to specify your hardware platform, integrated development platform (IDE), compiler, and only those RTOS libraries you require. This leaves more space on your devices for application code.

To create a custom configuration

  1. Browse to the FreeRTOS console and choose Create new.

  2. Select the version of FreeRTOS that you want to use. The latest version is used by default.

  3. On the New Software Configuration page, choose Select a hardware platform, and choose one of the pre-qualified platforms.

  4. Choose the IDE and compiler you want use.

  5. For the FreeRTOS libraries you require, choose Add Library. If you choose a library that requires another library, it is added for you. If you want to choose more libraries, choose Add another library.

  6. In the Demo Projects section, enable one of the demo projects. This enables the demo in the project files.

  7. In Name required, enter a name for your custom configuration.

    Note

    Do not use any personally identifiable information in your custom configuration name.

  8. In Description, enter a description for your custom configuration.

  9. At the bottom of the page, choose Create and download.

To edit a custom configuration

  1. Browse to the FreeRTOS console.

  2. In the navigation pane, choose Software.

  3. Under FreeRTOS Device Software, choose Configure download.

  4. Choose the ellipsis () next to the configuration you want to edit, and then choose Edit.

  5. On the Configure FreeRTOS Software page, you can change your configuration's FreeRTOS version, hardware platform, libraries, and description.

  6. At the bottom of the page, choose Save and download.

To delete a custom configuration

  1. Browse to the FreeRTOS console.

  2. In the navigation pane, choose Software.

  3. Under FreeRTOS Device Software, choose Configure download.

  4. Choose the ellipsis () next to the configuration you want to delete, and then choose Delete.

Quick connect workflow

The FreeRTOS console also includes the Quick Connect workflow option for all boards with predefined configurations. The Quick Connect workflow helps you configure and run FreeRTOS demo applications for AWS IoT and AWS IoT Greengrass. To get started, choose the Predefined configurations tab, find your board, choose Quick connect, and then follow the Quick Connect workflow steps.

Tagging configurations

You can apply tags to FreeRTOS configurations when you create or edit a configuration in the console. To apply tags to a configuration, navigate to the console. Under Tags, enter the name and value for the tag.

You can use tags to manage access permissions to configurations with IAM policies. For information, see Using tags with IAM policies.

For more information about using tags to manage AWS IoT resources, see Using Tags with IAM Policies in the AWS IoT Developer Guide.

Using tags with IAM policies

You can use the FreeRTOS console to apply tag-based, resource-level permissions in the IAM policies that you use for operations. This gives you better control over which configurations a user can create, modify, or use. For more information about using tagging and IAM policies for AWS IoT, see Using Tags with IAM Policies in the AWS IoT Developer Guide.

In the IAM policy definition, use the Condition element (also called the Condition block) with the following condition context keys and values to control user access (permissions) based on a resource's tags:

  • Use aws:ResourceTag/tag-key: tag-value to allow or deny user actions on FreeRTOS configurations with specific tags.

  • Use aws:RequestTag/tag-key: tag-value to require that a specific tag be used (or not used) when creating or modifying a configuration in the FreeRTOS console.

  • Use aws:TagKeys: [tag-key, ...] to require that a specific set of tag keys be used (or not used) when creating or modifying a configuration in the FreeRTOS console.

For more information, see Controlling Access Using Tags in the AWS Identity and Access Management User Guide. For detailed syntax, descriptions, and examples of the elements, variables, and evaluation logic of JSON policies in IAM, see the IAM JSON Policy Reference.

The following example policy applies two tag-based restrictions. An IAM user restricted by this policy:

  • Cannot give a resource the tag env=prod (in the example, see the line "aws:RequestTag/env" : "prod"

  • Cannot modify or access a resource that has an existing tag env=prod (in the example, see the line "aws:ResourceTag/env" : "prod").

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : "freertos:*", "Resource" : "*", "Condition" : { "StringEquals" : { "aws:RequestTag/env" : "prod" } } }, { "Effect" : "Deny", "Action" : "freertos:*", "Resource" : "*", "Condition" : { "StringEquals" : { "aws:ResourceTag/env" : "prod" } } }, { "Effect": "Allow", "Action": [ "iot:*" ], "Resource": "*" } ] }

You can also specify multiple tag values for a given tag key by enclosing them in a list, like this:

{ ... "StringEquals" : { "aws:ResourceTag/env" : ["dev", "test"] } }
Note

If you allow or deny users access to resources based on tags, you must consider explicitly denying users the ability to add those tags to or remove them from the same resources. Otherwise, it's possible for a user to circumvent your restrictions and gain access to a resource by modifying its tags.