Getting Started with MQX RTOS for Kinetis SDK: Building Libraries and Examples
Ready to check out MQX RTOS example applications within the new Kintetis SDK-based architecture?
Don’t worry, its easy! MQX RTOS for Kinetis SDK comes with many working examples that are easy to build and try out.
Note: If it seems like a tortuous process to build an example, then you might need to back up and check to be sure you followed the basic steps. These are all documented in getting started guides, one for each supported toolchain. See below.
Okay, let’s do it. I’m going to show a shortened version of the Getting Started Guide for Kinetis Design Studio IDE using FRDM-K64F, but this should be very similar for other toolchains and boards.
1. Install a supported toolchain if you don’t already have one.
For Kinetis SDK v1.1, these are:
Kinetis Development Studio version 2.0.0
IAR Embedded Workbench for ARM® Version 7.20.2
ARM-MDK - Keil® μVision® version 5.11.0
Atollic® TrueSTUDIO® for ARM version 5.2.0
Cmake version 3.0 support for GCC compiler revision 4.8.3 2014q2 from ARM Embedded
This information is also in the MQX release notes at MQX RTOS for Kinetis SDK v1.1 Release Notes (along with other good information).
2. Download Kinetis SDK v1.1.0 with MQX RTOS at www.freescale.com/ksdk
IMPORTANT NOTE: As of Kinetis SDK v1.1, MQX RTOS is now available in the Kinetis SDK installer. It is NOT a separate download. If you want to create a MQX RTOS-based project, then use the version of MQX RTOS that comes in Kinetis SDK v1.1 (or later).
Choose the appropriate Kinetis SDK v1.1.0 installer for your operating system, then download and install it.
3. Grab the MQX Getting Started Guide for your selected toolchain
These are available within the KSDK source tree at <Kinetis SDK>\rtos\mqx\doc\tools, or online at the links below.)
Note: <Kinetis SDK> is my notation for the directory that you installed the Kinetis SDK. On Windows, the default directory is C:\Freescale\KSDK_1.1.0\)
Links to the guides:
Also you might want to check out the general Getting Started Guide for additional details.
For Kinetis Design Studio v2.0, the steps continue like this:
4. Install the Eclipse updates and plugins for Kinetis Design Studio as described in section 2 of the MQX Guide for Kinetis Design Studio IDE.
5. Import an example project working set.
Go to File… Import, …
Then expand the MQX category (in the future this is planned to be called “Project of Projects”), then choose Import Working Sets
IMPORTANT NOTE: Be sure to import the working set, not an individual project. Every example comes with a working set file that has all the library projects required by the application project. Everything you need will get conveniently imported to your workspace – so use the working sets!
In the next window, click Browse. Find the MQX examples in the MQX examples folder! This is in <Kinetis SDK>\rtos\mqx\mqx
In this case I am opening the hello world example for FRDM-K64F. The full path to the working set file is at:
Now you will have the application project and all the library projects used by the application imported into your workspace.
6. Now build the projects!
Go to Project…Build All.
Note: the default target build configuration (called “debug”) does not have all possible compiler optimizations enabled. This makes debugging code easier, but results in larger code size. So, if you are looking for small code size, set it up for the “Release” target config as noted in the MQX Guide for Kinetis Design Studio IDE.
The projects will now start to build.
Wait until the build is complete.
7. Now run the example application.
Make sure the target board is plugged in to the USB for the debug connection. (Marked “SDA USB” on FRDM-K64F).
Select the hello_frdmk64f project, and click on the arrow next to the image of the Bug and select Debug Configurations
Choose the debug connection programmed in your board’s debug firmware. (Default for FRDM-K64F is GDB Open OCD)
Select the debug target debug configuration (if you build with the default setup, or release if you switched to the release configuration)
Wait while the download fully completes.
When the download is finished, the IDE will then switch to the debug view and stop at the mqx rtos main function. Click the Resume button.
Open up the terminal program of your choice. Select the COM port provided by the board. For the default debug firmware (cmsis-dap) it will enumerate as mbed Serial Port (COM:xx). Select 115200 baud rate.
But wait, there is more!
8. Be aware that several examples demonstrate non-core features of MQX RTOS that are not enabled in the MQX library by default. To build and run these demos, you need to enable the feature to be compiled into the MQX library.
For example, if you import the semaphore example from C:\Freescale\KSDK_1.1.0\rtos\mqx\mqx\examples\sem\build\kds\sem_frdmk64f
Note: sem is the full-featured semaphore with advanced options like priority inheritance – not to be confused with lightweight semaphores lwsem
Then try to build it. You will get this result.
Read carefully and it tells you this:
#error SEMAPHORE component is currently disabled in MQX kernel. Please set MQX_USE_SEMAPHORES to 1 in mqx_sdk_config.h and recompile kernel.
To enable semaphores, open the MQX library project and expand Config_Files.
Add the line:
#define MQX_USE_SEMAPHORES 1
Now build the MQX library.
Then build your application project (sem_frdmk64f) again.
Note: This entire process is very similar for RTCS examples (MQX TCP/IP stack)! You will find these at <Kinetis SDK>\tcpip\rtcs\examples
Best of luck with your development projects. Please send me your feedback.