Kinetis SDK v.1.3 API Reference Manual  Rev. 0
Freescale Semiconductor, Inc.
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Introduction

The Kinetis software development kit (KSDK) is an extensive suite of robust hardware interface and hardware abstraction layers, peripheral drivers, RTOS abstractions, stacks, and middleware designed to simplify and accelerate application development on Freescale Kinetis MCUs. The addition of Processor Expert technology for software and board configuration provides unmatched ease of use and flexibility.

Included in the Kinetis SDK is full source code under a permissive open-source license for all hardware abstraction and peripheral driver software. Mainline releases include support for a collection of Kinetis MCUs, whereas standalone releases offer support for one or a few additional Kinetis MCUs only. See the Release Notes and the Supported Devices section on www.freescale.com/ksdk for details.

The Kinetis SDK consists of the following runtime software components written in C:

Kinetis_SDK_Block_Diagram.png
  • ARM® CMSIS Core and DSP standard libraries and CMSIS-compliant device header files which provide direct access to the peripheral registers and bits
  • An open-source hardware abstraction layer (HAL) that provides a simple, stateless driver with an API encapsulating the low-level functions of the peripheral
  • System services for centralized resources including a clock manager, interrupt manager, low-power manager, and a hardware timer
  • Open-source, high-level peripheral drivers that build upon the HAL layer and may utilize one or more of the system services; drivers may be used as-is or as a reference for creating custom drivers
  • An operating system abstraction (OSA) layer for adapting applications for use with a real time operating system (RTOS) or bare metal (no RTOS) applications. OSAs are provided for:
    • Freescale MQX™ RTOS
    • FreeRTOS
    • Micrium uC/OS-II
    • Micrium uC/OS-III
    • bare-metal (no RTOS)
  • Stacks and middleware in source or object formats including:
    • a USB device, host, and OTG stack with comprehensive USB class support
    • CMSIS-DSP, a suite of common signal processing functions
    • FatFs, a FAT file system for small embedded systems
    • Encryption software utilizing the mmCAU hardware acceleration unit

The Kinetis SDK comes complete with software examples demonstrating the usage of the hardware abstraction layer, peripheral drivers, middleware, and RTOSes. All examples are provided with projects for the following toolchains:

  • Atollic TrueSTUDIO
  • GNU toolchain for ARM® Cortex®-M with Cmake build system
  • IAR Embedded Workbench
  • Keil MDK
  • Kinetis Design Studio
  • lwIP, a lightweight TCPIP networking stack

The HAL, peripheral drivers and system services can be used across multiple devices within the Kinetis product family without code modification. The configurable items for each driver, at all levels, are encapsulated into C language data structures. Kinetis devices specific configuration information is provided as part of the KSDK and need not be modified by the user. HAL, peripheral driver, and system services configuration is not fixed and can be changed at runtime. Optionally, the entire driver set can be pre-built into a library.

The example applications demonstrate how to configure the drivers by passing configuration data to the APIs. In addition to the software source, Processor Expert is provided as a time-saving option for software and board configuration. Processor Expert is a complimentary PC-hosted software configuration tool (Eclipse plug-in) with complete knowledge of all Kinetis MCUs. It provides a graphical user interface to handle MCU-specific board configuration and driver tuning tasks including:

  • Optional generation of low-level device initialization code for post-reset configuration
  • Package I/O allocation and pin initialization source code generation
  • Creation and management of HAL and peripheral driver C source configuration data structures

The organization of files in the Kinetis SDK release package is focused on ease-of-use. The Kinetis SDK folder hierarchy is organized at the top level with these folders:

kpsdk_guide01.png

The rest of the document describes the API references in detail for HAL and Peripheral drivers.

For the latest version of this and other Kinetis SDK documents, see the Kinetis SDK homepage www.freescale.com/ksdk.