Modules and Features
- ISO/IEC 9899:1999 compliant C code.
- Choice of blocking, non-blocking and asynchronous API.
- Consistent and robust error handling.
- Optional timeout on any blocking calls.
- Low jitter sub-millisecond delays and timers.
- Thread-safe API and optional low resource/high performance non-thread-safe API.
Modules and Peripherals
- Low level CPU & RTOS startup code.
- Interrupt management.
- System tick, hardware timers and watchdogs
- Low speed I/Os, UART, I2C, SPI & GPIO.
- High speed IOs, Ethernet, QSPI, MIPI, PCIe and more.
- SoC level peripherals, clock & reset.
- Media storage drivers, QSPI, SDIO/SD Card, eMMC, SATA etc.
- External board components, i.e. Ethernet PHY, NOR flash, sensors, cameras, and more.
Why use the BASEplatform?
Often disregarded due to their apparent simplicity, low level peripheral drivers can often be a source of problems early during the bring-up phase. Incorrectly tackling those early issues will often translate in hard to find bugs and unforeseen limitations in later stages of an application development.
BASEplatform offers a modular and robust set of peripheral drivers supported on many different architectures, toolchains and RTOSes. Those features grant the application developer the freedom of choosing their preferred combination of hardware, software and development environment without compromise due to incomplete software integration.
Features and performance. Designed from the start to be a set of high quality peripheral interface modules, the BASEplatform can offer more features with better performance than most competing options.
Consistent and robust API. Since all the modules and drivers are designed and written from scratch the overall API is consistent from module to module. The error handling is also strictly implemented to offer the best possible reliability all the while reducing the development overhead. Finally, timeouts are optionally available on all blocking calls, enabling an easy defensive programming approach to handle unexpected deadlocks or peripheral failures.
Cross-platform and RTOS agnostic. Cross platform API that supports multiple RTOSes or a bare-metal configuration including SMP and AMP configuration along with bare-metal support.
Sub-millisecond, low jitter timers and delays. Many applications require timers and delays. When available on the selected platform, the BASEplatform can use high resolution hardware timers to provide low jitter sub-millisecond delays. This improves the efficiency of timing delays as well as enabling an application to obey strict timing constraints often critical to real-time applications.
Wide variety of API choice. Most modules of the BASEplatform offers three API flavours, blocking, non-blocking and asynchronous. Additionally, developers are provided with a thread safe API along with an optional low resource high performance non thread-safe API.
Flexible and modular. Interdependencies are kept to a minimum. Developers are free to select only the requires modules, as well as mix and match between different sources.
Source Code. The BASEplatform is delivered in source form for all the modules and drivers selected.
Getting Started Guide. The getting started guide includes instructions on installing and running the delivered source and projects as well as a summary of the delivered components and documents.
Development Project. Each release package contains a development project for the IDE and toolchain selected by the developer. The development project also includes the debug configuration.
User & Reference Manuals. The user manual as well as the API reference manual for the BASEplatform are included.
Platform Reference Manual. In addition, the platform specific API reference manual for the selected platform and board components is part of the release package.
Hardware Errata Summary Report. To help developers evaluating the errata affecting their platform the BASEplatform is delivered with a summary report of all the errata that may affect the modules, drivers and BSPs included in the package.
The BASEplatform is designed to support the widest range of platforms, toolchains and RTOSes without compromising features and performance. Platform support can range from small low power MCU to large heterogeneous multi-core System on Chips. Here’s a short summary of the important system and toolchain requirements.
- 32 or 64-bit architecture is recommended for optimal performance.
- RAM and ROM requirements are dependent on the chosen RTOS. For estimation purposes, 3-5 KiB of ROM should be allocated per peripheral module and 64 bytes of RAM per peripheral instance when running in bare-metal.
- SMP (Symmetric MultiProcessing) platforms and AMP (Asymmetric MultiProcessing) applications on SMP processors (i.e. two RTOS instances on a dual core Cortex-A9) must be cache coherent.
- ISO/IEC 9899:1999 (a.k.a C99) compliant compiler.