This reference integration is hosted on the Amazon-FreeRTOS repository which is deprecated. We recommend that youstart here when you create a new project. If you already have an existing FreeRTOS project based on the now deprecated Amazon-FreeRTOS repository, see theAmazon-FreeRTOS Github Repository Migration Guide.
This tutorial provides instructions for getting started with the Xilinx Avnet MicroZed Industrial IoT Kit. If you do not have the Xilinx Avnet MicroZed Industrial IoT Kit, visit the AWS Partner Device Catalog to purchase one from ourpartner.
Before you begin, you must configure AWS IoT and your FreeRTOS download to connect your device to the AWS Cloud. SeeFirst steps for instructions. In this tutorial, the path to the FreeRTOS download directory is referred to as
.freertos
This tutorial contains instructions for the following getting started steps:
Connecting your board to a host machine.
Installing software on the host machine for developing and debugging embedded applications for your microcontroller board.
Cross compiling a FreeRTOS demo application to a binary image.
Loading the application binary image to your board, and then running the application.
The following diagram might be helpful when you set up the MicroZed hardware:
Connect your computer to the USB-UART port on your MicroZed board.
Connect your computer to the JTAG Access port on your MicroZed board.
Connect a router or internet-connected Ethernet port to the Ethernet and USB-Host port on your MicroZed board.
To set up FreeRTOS configurations for the MicroZed kit, you must use the Xilinx Software Development Kit (XSDK). XSDK is supported on Windows and Linux.
To install Xilinx software, you need a free Xilinx account.
Go to the Software Development Kit Standalone WebInstall Client download page.
Choose the option appropriate for your operating system.
You are directed to a Xilinx sign-in page.
If you have an account with Xilinx, enter your sign-in credentials and then chooseSign in.
If you do not have an account, chooseCreate your account. After you register, you should receive an email with a link to activate your Xilinx account.
On theName and Address Verification page, enter your information and then chooseNext. The download should be ready to start.
Save theXilinx_SDK_
file.version
_os
Open theXilinx_SDK_
file.version
_os
InSelect Edition to Install, chooseXilinx Software Development Kit (XSDK) and then chooseNext.
On the following page of the installation wizard, underInstallation Options, selectInstall Cable Drivers and then chooseNext.
If your computer does not detect the MicroZed's USB-UART connection, install the CP210x USB-to-UART Bridge VCP drivers manually. For instructions, see theSilicon Labs CP210x USB-to-UART Installation Guide.
For more information about XSDK, see theGetting Started with Xilinx SDK on the Xilink website.
Before you run the FreeRTOS demo project, you can set up the MQTT client in the AWS IoT console to monitor the messages that your device sends to the AWS Cloud.
Sign in to theAWS IoT console.
In the navigation pane, chooseTest, then chooseMQTT test client to open the MQTT client.
InSubscription topic, enter
, and then chooseSubscribe to topic.your-thing-name
/example/topic
Launch the XSDK IDE with the workspace directory set to
.freertos
/projects/xilinx/microzed/xsdk
Close the welcome page. From the menu, chooseProject, and then clearBuild Automatically.
From the menu, chooseFile, and then chooseImport.
On theSelect page, expandGeneral, chooseExisting Projects into Workspace, and then chooseNext.
On theImport Projects page, chooseSelect root directory, and then enter the root directory of your demo project:
. To browse for the directory, chooseBrowse.freertos
/projects/xilinx/microzed/xsdk/aws_demos
After you specify a root directory, the projects in that directory appear on theImport Projects page. All available projects are selected by default.
If you see a warning at the top of theImport Projects page ("Some projects cannot be imported because they already exist in the workspace.") you can ignore it.
With all of the projects selected, chooseFinish.
If you don't see theaws_bsp
,fsbl
, andMicroZed_hw_platform_0
projects in the projects pane, repeat the previous steps starting from #3 but with the root directory set to
, and importfreertos
/vendors/xilinxaws_bsp
,fsbl
, andMicroZed_hw_platform_0
.
From the menu, chooseWindow, and then choosePreferences.
In the navigation pane, expandRun/Debug, chooseString Substitution, and then chooseNew.
InNew String Substitution Variable, forName, enterAFR_ROOT
. ForValue, enter the root path of the
. ChooseOK, and then chooseOK to save the variable and closePreferences.freertos
/projects/xilinx/microzed/xsdk/aws_demos
In the XSDK IDE, from the menu, chooseProject, and then chooseClean.
InClean, leave the options at their default values, and then chooseOK. XSDK cleans and builds all of the projects, and then generates.elf
files.
To build all projects without cleaning them, chooseProject, and then chooseBuild All.
To build individual projects, select the project you want to build, chooseProject, and then chooseBuild Project.
In the XSDK IDE, right-clickaws_demos, and then chooseCreate Boot Image.
InCreate Boot Image, chooseCreate new BIF file.
Next toOutput BIF file path, chooseBrowse, and then chooseaws_demos.bif
located at
.<freertos>
/vendors/xilinx/microzed/aws_demos/aws_demos.bif
ChooseAdd.
OnAdd new boot image partition, next toFile path, chooseBrowse, and then choosefsbl.elf
, located atvendors/xilinx/fsbl/Debug/fsbl.elf
.
For thePartition type, choosebootloader, and then chooseOK.
OnCreate Boot Image, chooseCreate Image. OnOverride Files, chooseOK to overwrite the existingaws_demos.bif
and generate theBOOT.bin
file atprojects/xilinx/microzed/xsdk/aws_demos/BOOT.bin
.
Set your MicroZed board's boot mode jumpers to the JTAG boot mode.
Insert your MicroSD card into the MicroSD card slot located directly under the USB-UART port.
Before you debug, be sure to back up any content that you have on the MicroSD card.
Your board should look similar to the following:
In the XSDK IDE, right-clickaws_demos, chooseDebug As, and then choose1 Launch on System Hardware (System Debugger).
When the debugger stops at the breakpoint inmain()
, from the menu, chooseRun, and then chooseResume.
The first time you run the application, a new certificate-key pair is imported into non-volatile memory. For subsequent runs, you can comment outvDevModeKeyProvisioning()
in themain.c
file before you rebuild the images and theBOOT.bin
file. This prevents the copying of the certificates and key to storage on every run.
You can opt to boot your MicroZed board from a MicroSD card or from QSPI flash to run the FreeRTOS demo project. For instructions, seeGenerate the boot image for the FreeRTOS demo project andRun the FreeRTOS demo project.
To run the FreeRTOS demo project, you can boot your MicroZed board from a MicroSD card or from QSPI flash.
As you set up your MicroZed board for running the FreeRTOS demo project, refer to the diagram inSet up the MicroZed hardware. Make sure that you have connected your MicroZed board to your computer.
Format the MicroSD card that is provided with the Xilinx MicroZed Industrial IoT Kit.
Copy theBOOT.bin
file to the MicroSD card.
Insert the card into the MicroSD card slot directly under the USB-UART port.
Set the MicroZed boot mode jumpers to SD boot mode.
Press the RST button to reset the device and start booting the application. You can also unplug the USB-UART cable from the USB-UART port, and then reinsert the cable.
Set your MicroZed board's boot mode jumpers to the JTAG boot mode.
Verify that your computer is connected to the USB-UART and JTAG Access ports. The green Power Good LED light should be illuminated.
In the XSDK IDE, from the menu, chooseXilinx, and then chooseProgram Flash.
InProgram Flash Memory, the hardware platform should be filled in automatically. ForConnection, choose your MicroZed hardware server to connect your board with your host computer.
If you are using the Xilinx Smart Lync JTAG cable, you must create a hardware server in XSDK IDE. ChooseNew, and then define your server.
InImage File, enter the directory path to yourBOOT.bin
image file. ChooseBrowse to browse for the file instead.
InOffset, enter0x0
.
InFSBL File, enter the directory path to yourfsbl.elf
file. ChooseBrowse to browse for the file instead.
ChooseProgram to program your board.
After the QSPI programming is complete, remove the USB-UART cable to power off the board.
Set your MicroZed board's boot mode jumpers to the QSPI boot mode.
Insert your card into the MicroSD card slot located directly under the USB-UART port.
Be sure to back up any content that you have on the MicroSD card.
Press the RST button to reset the device and start booting the application. You can also unplug the USB-UART cable from the USB-UART port, and then reinsert the cable.
If you encounter build errors that are related to incorrect paths, try to clean and rebuild the project, as described inBuild the FreeRTOS demo project.
If you are using Windows, make sure that you use forward slashes when you set the string substitution variables in the Windows XSDK IDE.
For general troubleshooting information about Getting Started with FreeRTOS, seeTroubleshooting getting started.