I-ROS overview Nick Lethaby, I-ROS and Io Ecosystem May 2015 1
What is I-ROS? Connectivity Wi-Fi, Bluetooth Smart, ZigBee, Cellular (via PPP), Wired CP/IP, LS/SSL Other Middleware USB, File Systems I - R O S User Application asks APls Power Manager Real-time Kernel Drivers Io MCU Sensors
I-ROS development tools I-ROS works with the I Code Composer Studio (CCS), IAR, and GCC toolchains he ROS Object Viewer enables developers to study the state of OS objects such as tasks, stacks, and semaphores Available for CCS and IAR he ROS Analyzer enables developers to look at execution history including context switching and per-task CPU load Available for CCS
How I-ROS helps developers Provides pre-tested embedded software modules Connectivity protocols, power management, real-time kernel, Eliminates need for these to be developed from scratch Enables developers to focus on their areas of application expertise No licensing hassles to use Completely free to use and deploy Reduced effort to port existing applications to new devices ROS isolates application from hardware specifics Simpler development and maintenance of multi-function applications Using multiple priorities and threads to integrate different functions Add new features without modifying real-time response
I-ROS kernel, drivers, & power manager Connectivity Wi-Fi, Bluetooth Smart, ZigBee, Cellular (via PPP), Wired CP/IP, LS/SSL Other Middleware USB, File Systems I - R O S User Application asks APls Power Manager Real-time Kernel Drivers Io MCU Sensors
I-ROS kernel Designed for real-time applications Scheduler is deterministic so kernel system calls complete operation in a predictable time Interrupt latency is low Zero-latency Interrupts enable kernel to be used in hard realtime applications Low footprint to meet MCU memory constraints Kernel is highly configurable so unneeded functions are excluded Static configuration enables very low footprints by eliminating need for heaps or create/delete calls if desired ick suppression for enhanced low-power performance
Kernel services IPC Services: Events, Mailboxes, Semaphores, Gates Debug & Analysis: Logging, diagnostics, Hooks, stack checking Device-specific services: Interrupt and power management, timers, exception handling Memory Managers: Heap, fixedsized buffers hreading Services: asks, Software Interrupts, Clocks, Idle
An integrated approach to power management Drivers & stacks: Request peripheral clocks and power domains be enabled Set power-down constraints in critical sections Power policy: Run in idle task Select power saving mode Clock module: Provide next scheduled event Power manager: Manage clock gates & power domains Power-down and wake-up routines Power-down and wake-up latencies Record power-down constraints
Impact of I-ROS power manager I MCU offers low power modes that consume exponentially less power compared to simply sleeping the main Cortex-M core (WaitForInterrupt) he default power policy uses the latency data combined with its knowledge of the next scheduled event to select the lowest possible power state, thus greatly extending battery life Note: he data below is from the SimpleLink CC2640 wireless MCU Power Mode Wake-up ime to CPU Active Current Used Active NA 4.145 ma WaitForInterrupt A few cycles 2.028 ma IDLE 1.4 µs 796 µa SANDBY 14 µs 1-2 µa
I-ROS device drivers & board support Driver APIs are consistent across device families Makes applications easy to port to other device supported by I-ROS Drivers are designed for use with ROS hread-safe Block (on a semaphore) when waiting for I/O so CPU is released for another thread to run Each supported board has a board.c file that contains the code for initializing all the peripherals Drivers are power-aware for ultra low-power MCU devices 10
I-ROS device drivers C28 C28+M3 M4C MSP432 MSP430 CC3200 CC26xx Real-time clock Y Y Y Y imer Y Y Y Y Y Y Y UAR Y Y Y Y Y Y DMA-based UAR Y Y I 2 C Y Y Y Y Y Y I 2 S Y SPI Y Y Y Y Y Y SPI-SD Y Y Y Y Y PWM Y Y Y Camera Y EMAC Y Y USB Y Y Y Watchdog Y Y Y Y Y
I-ROS connectivity & middleware Connectivity Wi-Fi, Bluetooth Smart, ZigBee, Cellular (via PPP), Wired CP/IP, LS/SSL Other Middleware USB, File Systems I - R O S User Application asks APls Power Manager Real-time Kernel Drivers Io MCU Sensors
I-ROS: wireless connectivity I-ROS supports all on-chips stacks in I SimpleLink wireless MCUs out-of-box I-ROS supports the SimpleLink Wi-Fi CC3100 wireless network processor out-of-box Device Wireless Stack Comments CC3200 Wi-Fi CC3200 Wi-Fi host driver pre-tested on I-ROS CC2630 ZigBee Stack runs by default on I-ROS CC2640 Bluetooth Smart Stack runs by default on I-ROS MCU + CC3100 Wi-Fi I-ROS offers pre-integrated CC3100 host drivers using SPIs on MSP430, MSP432 and M4Cx
I-ROS CP/IP stack Route Manager IF Manager NA L S S N P Hardware Adaptation Layer Ethernet Packet Driver H P PPP Serial IF Serial Port Driver F P IP E L N E imer Driver D N S Standard BSD Sockets Interface ARP Ethernet IF D H C P CP UDP ICMP IGMP User LED Driver CP/IP Key Features Supports both IPv4 and IPv6 Standard BSD Sockets interface Zero-copy sockets interface available Highly configurable to meet footprint constraints PPP/Serial Interface allows use with third-party cellular modems SSL/LS requires a licensing fee Hardware
USB stack Class Driver Application M S C Host Hardware Adaptation Layer SD card, mouse, UAR,. Drivers H I D Hardware C D C DMA Driver Device H I D USB Driver C O N F I G U R A I O N USB Key Features MSC Host Class Driver HID Host & Device Class Drivers CDC Device Class Driver Examples for each class driver Example of using MSC Host Driver under FA file system
File system I uses an open source software called FatFs Key features: Both native and C RS file APIs may be used C RS APIs (fopen (), fread (), fwrite (), ) are plugged into file system Supports FA12, FA16, FA32, and VFA Long file names (VFA) are not supported in the default build I does NO indemnify against VFA patents Drivers options: SD Card (via SPI driver) USB flash drive (via USB MSC host)
Summary I-ROS enables developers to focus on their specific areas of applications expertise by providing pre-tested software building blocks: Multitasking kernel and device drivers Connectivity solutions: CP/IP, Wi-Fi, BLE, and USB Advanced, easy-to-use power management Preemptive multitasking design paradigm simplifies development and maintenance of embedded applications I-ROS no-cost licensing removes commercial barriers to deployment
For more information www.ti.com web page: www.ti.com/tool/ti-rtos Product brochure, white paper, manuals, software downloads e2e forum: http://e2e.ti.com/support/embedded/tirtos/ Wiki: http://processors.wiki.ti.com/index.php/main_page Select I-ROS category Download page: http://softwaredl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/tirtos/index.html Product manager: Nick Lethaby (nlethaby@ti.com)