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