Freescale MQX RTOS for Kinetis SDK Release Notes version beta

Similar documents
MQX RTOS for Kinetis SDK Release Notes

MQX RTOS for Kinetis SDK Release Notes

MQX RTOS Release Notes for Kinetis SDK v1.2.0 for KL33Z64 for FRDM-KL43Z Freescale Freedom Development Platform

MQX RTOS Release Notes for Kinetis SDK FRDM- KV10Z Freescale Freedom Development Platform

Getting Started with MQX RTOS for Kinetis SDK

Kinetis SDK Release Notes for the TWR-K24F120M Tower System Module

Getting Started with Freescale MQX RTOS for Kinetis SDK and Kinetis Design Studio IDE

Getting Started with Freescale MQX RTOS for Kinetis SDK and MDK-ARM Keil

Freescale Kinetis Software Development Kit Release Notes

Kinetis SDK v Release Notes for KV5x Derivatives

Kinetis SDK v Release Notes for the MK21DA5 and MKW24D5 Devices

Kinetis Bootloader v1.2.0 Release Notes

Getting Started with Freescale MQX RTOS for Kinetis SDK and ARM GCC

Kinetis SDK Freescale Freedom FRDM-KL03Z Platform User s Guide

Freescale MQX RTOS TWR-K64F120M Release Notes

Freescale MQX USB Stack for TWR-K24F120M GA User s Guide

Keil uvision 4 Kinetis Support for Freescale MQX RTOS Release Notes

Getting Started with MCUXpresso SDK CMSIS Packs

FRDM-K64F Board Errata

MCU Bootloader Release Notes

Getting Started with FreeRTOS BSP for i.mx 7Dual

Getting Started with the MCU Flashloader

TWR-KV10Z32 Sample Code Guide for IAR Board configuration, software, and development tools

Load Position-Independent Code (PIC) on a Kinetis Platform Using the IAR EWARM Compiler

Adding a run control interface into an existing CodeWarrior for MCU v10.x project

Emulating Dual SPI Using FlexIO

Kinetis Bootloader to Update Multiple Devices in a Field Bus Network

Collecting Linux Trace without using CodeWarrior

OpenSDA on TWR-KW2x. User s Guide Rev 1.1

Building U-Boot in CodeWarrior ARMv8

General C Functions for the etpu Covers the MCF523x, MPC5500, MPC5600, MPC5700, MPX40 and all etpu-equipped Devices

Processor Expert Software for i.mx Processors Version 1.0

TWR-KV10Z32 Sample Code Guide for CodeWarrior Board configuration, software, and development tools

Offline Flash Programmer for Kinetis K- and L-series MCUs

CodeWarrior Development Studio Processor Expert RTOS Adapter User Guide

Kinetis Updater User's Guide

Kinetis USB-KW41Z Wireless Protocol Sniffer Quick Start Guide

Kinetis KE1xF512 MCUs

Intelligent Sensing Framework 2.1 for Kinetis Errata Sheet

TWR-LS1021A Getting Started

MCUXpresso SDK USB Power Delivery

Freescale MKW40Z IEEE Software Quick Start Guide

Kinetis Bootloader Demo Application User's Guide

Freedom FRDM-MC-LVBLDC Development Platform User s Guide

TWR-LS1021A Getting Started

NXP Semiconductors, 6501 William Cannon Drive West, Austin, Texas Kinetis SDK 2.0 Transition Guide Rev.

Quick Start Guide for FRDM-FXS-MULTI-B

NXP Semiconductors MCU Bootloader Demo Applications User's Guide

Integrate TWR-EPD Software with MQX RTOS Based on the TWR-K21F120M Platform

How to use FlexMemory as D-Flash and EEPROM in KE1xF

How to Implement USB Suspend/Resume Feature with MCUXpresso SDK USB Stack

Component validity and internal error checking functionality to ensure reliable operation

HVP-KV10Z32 User s Guide

Release Notes. Freescale MQX for TWR-K21D50M. Freescale MQX RTOS for TWR-K21D50M PRODUCT VERSION: 1.0 PRODUCT:

i.mx 6 Yocto Project Patch Release Notes

Measuring Interrupt Latency

Emulating I2C Bus Master by using FlexIO

DDR Validation Tool Getting Started Guide

AIOP Task Aware Debug

i.mx 7 Dual/Solo Product Lifetime Usage

Three-Phase Power Meter Hardware Design Reference Manual

HVP-KV31F120M User s Guide

How to setup pre-build steps in CodeWarrior for Microcontrollers v10.x

WPR1500-LDO MP Receiver V2.1 Reference Design User s Guide

Kinetis Flash Tool User's Guide

MCUXpresso SDK CMSIS Packs Release Notes

Hands-On Workshop: Developing with the Kinetis Software Development Kit

Configuring DDR in U-Boot using QCVS

Kinetis Motor Suite v1.2.0 Release Notes

Component Development Environment Getting Started Guide

Kinetis KV5x Real-Time Control MCUs with Ethernet Up to 1 MB Flash and 256 KB SRAM

Freescale MQX USB Device API Reference Manual

i.mx 6 Android JB 4.3_1.1.1 Patch Release Notes

for ColdFire Architectures V7.2 Quick Start

Power Consumption and Measurement of i.mx RT1020

i.mx 6Solo/6DualLite Product Lifetime Usage Estimates

Working around ERR7026 according to application needs

FRDM-KL03Z User s Guide

Quick Start Guide for the Freescale Freedom Development Platform FRDM-KL43Z

Kinetis KL1x General-Purpose Ultra-Low- Power MCUs Up to 256 KB Flash and 32 KB SRAM

Kinetis Flash Tool User's Guide

CodeWarrior Development Studio for StarCore 3900FP DSP v SP3 Release Notes

Smart Plug Software Design Reference Manual

Freedom FRDM-KV31F Development Platform User s Guide

Supporting New Toolchains with Freescale MQX RTOS Michal Princ and Michal Hanak Freescale MSG Software Team Roznov

i.mx 6ULL Product Usage Lifetime Estimates

Kinetis KM3x Metrology MCUs based on ARM Cortex -M0+ Core

Using an External GCC Toolchain with CodeWarrior for Power Architecture

Collect Linux Hardware Trace for ARMv8 User Space and Kernel Space Applications

Generating a Quick and Controlled Waveform With the DAC

Quick Start Guide for FRDM-KL05Z

for Freescale MPC55xx/MPC56xx Microcontrollers V2.10 Quick Start

Getting Started with Kinetis SDK (KSDK) v.1.3

Using DMA for Pulse Counting on S32K

i.mxrt1050 Product Lifetime Usage Estimates

NADK Reflector Application Debug

AN4624 Application note

Hands-On Workshop: Freescale MQX Drivers and BSP s

Hands-on Workshop: Freescale MQX and Tower System RTOS Getting Started (Part 2)

Developing a simple UVC device based on i.mx RT1050

Transcription:

Freescale Semiconductor Document Number: MQXKSDKRN Release Notes Rev 1.0.0, 07/2014 Freescale MQX RTOS for Kinetis SDK Release Notes version 1.0.0 beta 1 Read Me This is the release notes for Freescale MQX RTOS for Kinetis SDK. The product is based on the MQX kernel, MFS and RTCS stack version 4.1.0. The product is provided in two packages: MQX Kernel only should be extracted to previously downloaded SDK MQX pre-integrated package already contains SDK, TCPIP stack, File system Contents 1 Read Me...1 2 What is new...2 3 Release Content...3 4 MQX Release Overview...5 5 Known issues and limitations...... 8 Note that this release note describes the complete version containing TCP/IP stack and MQX file system. It is not relevant for the MQX Kernel only package. 1.1 Development Tools Requirements Freescale MQX RTOS was compiled and tested with these development tools: Kinetis Development Studio version 1.1.0 See build projects in kdssubdirectories IAR Embedded Workbench for ARM Version 7.20.1 See build projects in iar subdirectories ARM-MDK - Keil μvision version 5.11.0 See build projects in the uv4 subdirectories 2014 Freescale Semiconductor, Inc.

What is new 1.2 System Requirements System requirements are based on the requirements for the development tools. There are no special host system requirements for hosting the Freescale MQX RTOS distribution itself. The minimum PC configuration is determined by the development tools. The recommended PC configuration is 2 GHz processor, 2 GB RAM and 2 GB free disk space. 1.3 Target Requirements Freescale MQX RTOS supports the evaluation boards mentioned below. There are no special requirements for the target hardware other than what each board requires for its operation (power supply, cabling, jumper settings etc). For more details about the board-specific setup for MQX applications, see Kinetis SDK board-related documentation. Evaluation boards supported: Kinetis TWR-K64F120M FRDM-K64F TWR-K22F120M FRDM-K22F TWR-KV31F120M 1.4 Set up installation instructions and technical support Product is provided in two distribution options: MQX Kernel only as part of the standard Kinetis SDK installer MQX pre-integrated package with the RTCS TCP/IP stack and the MFS file system MQX Kernel only package This package is distributed as part of the Kinetis SDK package. To install MQX RTOS, select the corresponding option during the Kinetis SDK installation. Note that the package contains the MQX kernel only, not the TCP/IP stack, File system and other components. MQX pre-integrated package This package and contains the Kinetis SDK driver set, MQX kernel, RTCS - MQX TCP/IP stack and MFS - MQX File System. Unzip/install the package to your target system. It is recommended that you install MQX RTOS to the path without spaces to avoid build problems with certain tool chains. For a description of available support including commercial support options, visit the MQX RTOS support site on freescale.com. 2 What is new This section describes the major changes and new features implemented in this release. This is a beta release of the MQX RTOS for Kinetis SDK. The final product will be based on the Kinetis SDK 1.1.0. The feature set and the directory layout will be changed in the final version of the product. 2 Freescale Semiconductor, Inc.

Release Content The MQX kernel, RTCS stack and MFS stack is based on version 4.1.0. Peripheral I/O drivers are fully based on the Kinetis SDK driver set. MQX RTOS provides POSIX wrappers for the I/O console and filesystem only. The file API was changed to comply with POSIX standard (FILE* is used instead of legacy MQX_FILE) MQX RTOS provides POSIX-based I/O drivers for serial console (tty, uart), file system, Ramdisk and other MQX native I/O drivers (TFS, NULL, PIPE...) MQX RTOS provides its own re-entrant stdlib.h implementation. 3 Release Content This table describes the release contents: Table 1. Release Contents Deliverable Configuration Files Mass-build project for all supported boards MQX PSP, BSP Source Code, and Examples MQX PSP source code for Kinetis ARM Cortex-M core MQX BSP source code RTCS source code and examples MFS source code and examples NShell Library Source Code Keil Task Aware Debugging plugin (TAD) IAR Task Aware Debugging plugin (TAD) KDS Task Aware Debugging plugin (TAD) TFS Make Utility AWK interpreter (GNU General Public License) SNMP code generation scripts TAD string and configuration files Documentation Location <install_dir>/rtos/mqx/config/... <MQX_DIR>/build/<tool>/<board> <install_dir>/rtos/mqx/....../mqx/source/psp/cortex_m.../mqx/source/bsp/... <install_dir>/tcpip/rtcs/... <install_dir>/filesystem/mfs/... <install_dir>/rtos/mqx/nshell/... <install_dir>/tools/mqx_plugins/ keil_extensions/... <install_dir>/tools/mqx_plugins/ iar_extensions/... <install_dir>/tools/mqx_plugins/ kds_extensions/... <install_dir>/tools/mktfs.exe <install_dir>/tools/gawk.exe <install_dir>/tools/snmp/*.awk <install_dir>/tools/mqx_plugins/tad/... <install_dir>/rtos/mqx/doc This figure shows the Freescale MQX RTOS directories installed to the user host computer (subdirectories reduced for clarity): Freescale Semiconductor, Inc. 3

Release Content Figure 1. Freescale MQX RTOS Directories 4 Freescale Semiconductor, Inc.

MQX Release Overview 4 MQX Release Overview The Freescale MQX RTOS for Kinetis SDK consist of: MQX real time kernel and system components TCP/IP networking stack (RTCS) FAT file system (MFS) Platform and Board support packages 4.1 MQX RTOS PSP Freescale MQX RTOS release contains ARM Cortex-M Platform Support Packages. Contact MQX RTOS support on freescale.com for other Freescale platforms. The platform-specific code from /mqx/source/psp/<platform> is built together with the generic MQX core files. These two parts form a static library generally referred to as "PSP" which enables the target application to access RTOS features. 4.2 MQX RTOS BSPs Freescale MQX RTOS release includes Board Support Packages for the boards mentioned in Target Requirements. The board-specific code from /mqx/source/bsp/<board> is built together with I/O driver files from /mqx/source/io. These two parts form a static library generally referred as "BSP". The functions included in this library enable the board and operating system to boot up and use the I/O driver functions. The following section describes drivers supported by the MQX BSPs. 4.3 I/O drivers supported I/O drivers in MQX for Kinetis SDK are based on peripheral drivers and HAL layers provided as a part of the SDK framework. For some of these drivers, MQX brings POSIX compliant API wrappers. MQX also provides a set of platform independent drivers which simplify apps coding. The driver code is located in <install_dir>/rtos/mqx/mqx/source/nio/drivers. The following list describes POSIX based I/O drivers available in the latest MQX release. The full set of peripheral I/O drivers (non POSIX based) can be found in Kinetis SDK documentation nio_dummy The dummy driver does very little. This driver internally keeps some information on how many bytes have been read or written per file and per device. nio_null The null driver does nothing. This is the simplest possible driver, and is usually used as a template for new drivers. nio_mem This driver provides I/O operations on memory block. The memory block is specified by address and size. nio_pipe This driver provides a FIFO buffer where I/O operations are used to access the buffer. Freescale Semiconductor, Inc. 5

MQX Release Overview nio_serial This driver is a NIO subsystem wrapper built on top of the SDK UART driver. This driver is mainly used by nio_tty driver. nio_tfs Trivial Filesystem is used as a simple read-only file repository instead of the fully featured MFS. TFS is not installed in the BSP startup code. Applications must initialize the TFS and pass a pointer to the filesystem data image. The mktfs tool is available (both as executable and Perl script) to generate the image from the existing directory structure. The RTCS HTTP example demonstrates the use of TFS. nio_tty Tty driver is installed on top of driver used for standard input/output. This driver provides basic formatting for terminal such as echo and end of line handling. When MQX starts, nio_tty driver is installed on the top of nio_serial driver. It is then opened for stdin, stdout, and stderr. 4.4 Default I/O Channel An I/O communication device installed by MQX BSP can be used as the standard I/O channel. 4.5 MQX PSP and BSP Directory Structure RTOS files are located in the /rtos/mqx subdirectory of the Freescale MQX RTOS installation. 4.6 MQX MFS MFS files from the /filesystem/mfs/source directory are built into a static library. When linked to the user application, the MFS library enables the application to access FAT12, FAT16, or FAT32-formatted drives. 4.7 MQX RTCS RTCS files from the /tcpip/rtcs/source directory are built into a static library. When linked to the user application, the RTCS library enables the application to provide and consume network services of the TCP/IP protocol family. The MQX 4.1.0 RTCS stack is IPv6 ready with respect to IPv6 Ready Logo certification and has passed all required tests. IPv6 support is available as a separate update package available from Freescale. 4.8 MQX USB Host and Device USB Host and Device stack is provided as a part of the Kinetis SDK release. These stacks use an OS abstraction layer (OSA) to adapt to MQX RTOS. See USB documentation for details. 4.9 MQX nshell The shell and command-line handling code is implemented as a separate library called nshell. 6 Freescale Semiconductor, Inc.

MQX Release Overview 4.10 Building the MQX libraries When using MQX RTOS for the first time and making changes to the compile-time user configuration file or MQX kernel source files, rebuild MQX libraries to ensure that the changes are propagated to the user applications. 4.11 Example applications Demo applications are in this directory: <install_dir>/demo The examples are written to demonstrate the most frequently used features of the Freescale MQX RTOS. In addition to these demo applications, there are simpler example applications available in MQX, RTCS, MFS, and USB directories. The tables summarize all demo and example applications provided in this release. MQX Example Applications Table 2. <install_dir>/mqx/mqx/examples demo event hello isr klog log lwdemo lwevent lwlog lwmsgq lwsem msg mutex nill sem taskat taskq test timer Name Description Shows MQX multitasking and inter-process communication using standard objects like semaphores, events, or messages. See lwdemo for the same example using the lightweight objects. Simple demonstration of MQX events. A trivial Hello World application spread across two tasks. Shows how to install an interrupt service routine and how to chain it with the previous handler. Shows kernel events being logged and later the log entries dumped on the console. Shows the application-specific logging feature. Same as the "demo" application, but implemented using lightweight components only. Simple demonstration of MQX lightweight events. Simple demonstration of MQX lightweight log feature. Simple demonstration of MQX lightweight inter-process messaging. Simple demonstration of MQX task synchronization using the lightweight semaphore object. Simple demonstration of MQX inter-process message passing. Simple demonstration of MQX task synchronization using the mutex object. Even simpler than Hello World. A void application which may be used for copy/paste to start custom application. Simple demonstration of MQX task synchronization using the semaphore object. Shows how task can be created within statically allocated memory buffer (avoid heap allocation for task stack and context). Shows custom task queue and how the queue can be suspended and resumed. Shows the self-testing feature of each MQX component. Simple demonstration of MQX timer component. Table continues on the next page... Freescale Semiconductor, Inc. 7

Known issues and limitations Table 2. <install_dir>/mqx/mqx/examples (continued) watchdog Name Description Simple demonstration of the MQX task timeout detection using the kernel (not to be confused with watchdog) component. RTCS Example Applications Table 3. <install_dir>/mqx/rtcs/examples/... Name eth_to_serial httpsrv shell snmp benchmark Description Simple character passing between the UART console and the telnet session. Shows custom "lightweight" telnet. Simple web server with CGI-like scripts and web pages stored in internal flash. Shell command line providing commands for network management. SNMP protocol example providing microprocessor state information. Throughput benchmark application. Fnet benchmark is required on the PC side. MFS Example Applications Table 4. <install_dir>/filesystem/mfs/examples/... ramdisk Name Description Shows use of MFS accessing the external RAM (or MRAM). 5 Known issues and limitations Idle Task Required on Kinetis Platforms The Kinetis kernel, by design, cannot operate without an idle task. The MQX_USE_IDLE_TASK configuration option must be set to 1. MFS Does Not Check Validity of Directory Rename MFS_Rename_file() function does not check the necessary precondition when renaming a directory. If the directory is renamed to its own subdirectory, the directory becomes inaccessible and lost cluster chains are created. UTF8 support in MFS The UTF8 support in MFS is limited to read-only access and for long file names. The UTF8 support for write access will be implemented in a future release. Interrupt handling and priorities The KSDK package allows the application developer to use the NVIC_* CMSIS functions. A set of functions handle the NVIC interrupt priorities. The MQX scheduler, however, limits the usage of interrupt priorities. Follow these criteria when using NVIC_SetPriority with MQX: priority level should be an even number priority level should be equal or higher than 2 times the value of MQX_HARDWARE_INTERRUPT_LEVEL_MAX value input in mqx_init structure if you want to use the MQX services in the interrupt service handler These limitations give the application developer a maximum of seven levels of interrupt priorities. 8 Freescale Semiconductor, Inc.

KDS project setup Known issues and limitations KDS project can be built only with a selected C99 standard. Set the standard in Properties->C/C++ Build->Settings->Tool Settings->Cross ARM C Compiler -> Optimization->Language standard->gnu ISO C99(-std=gnu99). Concurrent access to core resources issue (MQX-1486) Figure 2. KDS C99 language standard setup If multiple tasks run on the same priority and are waiting for an event or if time slicing scheduling is used, an application might crash. This is caused by unsafe concurrent access to the core resources in the MQX memory handlers. 6 Revision History Freescale Semiconductor, Inc. 9

How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable system and software implementers to use Freescale products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits based on the information in this document. Freescale reserves the right to make changes without further notice to any products herein. Freescale makes no warranty, representation, or guarantee regarding the suitability of its products for any particular purpose, nor does Freescale assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. Typical parameters that may be provided in Freescale data sheets and/or specifications can and do vary in different applications, and actual performance may vary over time. All operating parameters, including typicals, must be validated for each customer application by customer's technical experts. Freescale does not convey any license under its patent rights nor the rights of others. Freescale sells products pursuant to standard terms and conditions of sale, which can be found at the following address: freescale.com/ SalesTermsandConditions. Freescale, the Freescale logo, and Kinetis are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Tower is a trademark of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. ARM and Cortex are registered trademarks of ARM Limited (or its subsidiaries) in the EU and/or elsewhere. All rights reserved. 2014 Freescale Semiconductor, Inc. Document Number MQXKSDKRN Revision 1.0.0, 07/2014