The CC2538 foundation firmware is an extensive collection of software libraries for the CC2538 - an ARM Cortex-M3 based IEEE 802.15.4 compliant RF system-on-chip. The foundation firmware contains the following components:
- driverlib: This is the low level peripheral driver library for easy access to all modules on the CC2538. In addition to defining all the hardware registers and bit masks, it contains functions for configuration and controlling of modules like the ADC, GPIO, I2C, SSI, UART, DMA, Timers, and the system controller. Driverlib comes with an extensive set of examples showing how to use the driverlib functions to operate the peripherals on the device.
- usblib: Complete software framework to take full advantage of the USB device controller on the CC2538. The library implements all the standard USB requests and provides hooks to support any USB device class implementation. The library comes with examples for a USB CDC-ACM (serial port) device and a simple HID device.
- bsp: This is the board support package, containing drivers to access the external peripherals on the development boards for the CC2538, like the SmartRF06EB. The bsp is provided to simplify the process of developing demo and prototype software running on the hardware provided in the CC2538 development kits.
The foundation firmware is written in C (C99) to make development and deployment efficient and easy. The use of compiler specific intrinsic functions and directives (pragmas) is limited to a minimum to support a wide variety of compilers and software development tools. Out-of-the box, Code Composer Studio and IAR Embedded Workbench is supported. The code is provided in source code and is licensed under a TI BSD open source software license.