SILABS AN673

AN673
P RECISION 32™ S OFTWARE D EVELOPMENT K IT
O VERVIEW
1. Introduction
The Precision32™ Software Development Kit (SDK) provides a means for easy and rapid code development for
Silicon Labs 32-bit MCUs. The SDK consists of three parts: the Silicon Labs Hardware Access Layer (HAL), code
examples, and the si32Library. Each of these parts is discussed in more detail in the application notes listed in “2.
Relevant Documentation”.
The SDK is installed with the Precision32 software package available at www.silabs.com/32bit-software. The SDK
sits in the si32-x.y folder in the installation directory, were x is the major SDK version and y is the minor SDK
version. This enables newer versions of the SDK to reside in parallel with older versions and not overwrite any
previously working project source. The SDK is part of the Precision32 Development Suite.
Figure 1 shows the SDK system.
CODE EXAMPLES
APPLICATION
si32Library
Callback
RTOS
CMSIS CoreSupport
(from ARM)
CMSIS
CMSIS DeviceSupport
(from Silicon Labs)
HARDWARE
Figure 1. Software Development Kit (SDK) System
2. Relevant Documentation
Precision32 application notes are listed on the following website: www.silabs.com/32bit-mcu.
AN664:
Precision32™ CMSIS and HAL User’s Guide
Precision32™ Software Development Kit Code Examples Overview
AN670: Getting Started with the Silicon Labs Precision32™ AppBuilder
AN672: Precision32™ si32Library Overview
AN675: Precision32™ Development Suite Overview
AN668:
Rev. 0.1 2/12
Copyright © 2012 by Silicon Laboratories
AN673
AN673
3. Hardware Access Layer
CMSIS is the Cortex Microcontroller Software Interface Standard, and the Hardware Access Layer (HAL) is a
defined part of this standard.
The HAL provides an access layer for the SiM3xxxx device registers. The functions and macros are non-blocking
and simple; they cannot return error codes, so they are designed to never fail. The HAL is designed to replace the
individual bit field accesses of the module with a function name that describes the action the bit is controlling.
Note: HAL functions and macros are not designed to be thread-safe. These routines do not disable interrupts during nonmonotonic register modifications.
The HAL sits one layer above the hardware and is the only code that accesses the registers directly. More complex
firmware systems like a Real Time Operating System (RTOS) or code example call the HAL and CMSIS routines.
4. Code Examples
The code examples are simple and complete examples that illustrate and highlight the peripheral modes and
features using the HAL. They are also modular so code can be copied into an application base, making peripheralspecific code development easy.
5. si32Library
A 32-bit platform with large memory enables a big and complex firmware system on the device. This complexity
can slow development, as firmware consists of more layers with interweaving tasks and threads that are more
difficult to create and debug.
The si32Library is a set of flexible, reusable, and portable source modules enabling core application level
functionality for Silicon Laboratories 32-bit Precision32™ MCUs. It includes facilities for debug logging, memory
allocation, data collections, data transfers, and cooperative multitasking. The si32Library package provides
working abstractions of the hardware layer, reduces coding effort, and provides structure to aid and speed up toplayer application development.
2
Rev. 0.1
AN673
NOTES:
Rev. 0.1
3
AN673
CONTACT INFORMATION
Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
Tel: 1+(512) 416-8500
Fax: 1+(512) 416-9669
Toll Free: 1+(877) 444-3032
Please visit the Silicon Labs Technical Support web page:
https://www.silabs.com/support/pages/contacttechnicalsupport.aspx
and register to submit a technical support request.
The information in this document is believed to be accurate in all respects at the time of publication but is subject to change without notice.
Silicon Laboratories assumes no responsibility for errors and omissions, and disclaims responsibility for any consequences resulting from
the use of information included herein. Additionally, Silicon Laboratories assumes no responsibility for the functioning of undescribed features
or parameters. Silicon Laboratories reserves the right to make changes without further notice. Silicon Laboratories makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Silicon Laboratories 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. Silicon Laboratories products are not designed, intended, or authorized for use in applications intended to
support or sustain life, or for any other application in which the failure of the Silicon Laboratories product could create a situation where personal injury or death may occur. Should Buyer purchase or use Silicon Laboratories products for any such unintended or unauthorized application, Buyer shall indemnify and hold Silicon Laboratories harmless against all claims and damages.
Silicon Laboratories and Silicon Labs are trademarks of Silicon Laboratories Inc.
Other products or brandnames mentioned herein are trademarks or registered trademarks of their respective holders.
4
Rev. 0.1