MSP 432 MCU RTOS Solutions 1 MSP 432

  • Slides: 17
Download presentation
MSP 432™ MCU RTOS Solutions 1

MSP 432™ MCU RTOS Solutions 1

MSP 432 RTOS Options TI-RTOS Middleware Connectivity File Systems Wi-Fi User Application Tasks free.

MSP 432 RTOS Options TI-RTOS Middleware Connectivity File Systems Wi-Fi User Application Tasks free. RTOS RTX (CMSIS-RTOS) Power Manager Real-time Kernel Drivers Micrium OS MCU Sensors 2

MSP 432 RTOS Broad Middleware offering from TI-RTOS & CMSIS Unique to TI-RTOS: Simplify

MSP 432 RTOS Broad Middleware offering from TI-RTOS & CMSIS Unique to TI-RTOS: Simplify power management for MCU Middleware Connectivity File Systems Wi-Fi Power Manager Broad offering from TIRTOS Drivers User Application Tasks Real-time Kernel Drivers MCU Sensors “RTOS Core” standard offering from all RTOSes 3

RTOS Features Comparison TI-RTOS By TI Scheduler Type CMSIS compliant • Pre-emptive X Services

RTOS Features Comparison TI-RTOS By TI Scheduler Type CMSIS compliant • Pre-emptive X Services • Tasks • Swis • Hwis • Software Interrupt Latency Device Specific Support Device Drivers Flash Size Low Power Support • Semaphores • Mutex • Mailbox • Events • Zero-latency • Systick • Interrupts • Exception • SPI-SD • I 2 C • UART • Timer • RTC • Timestamp • Watchdog 4 K to 10 K • • Tick Suppression, Device specific Power Manager • Semaphores • Mutex • Mailbox • Events • Zero-latency • Systick X <4 K • • Tick Suppression, Device specific support coming soon • Software • Zero-latency • Systick X 5 K to 10 K • • Tick Suppression, Pre and post sleep macros for customization, Idle task hook. Timers ARM RTX By Keil • Round-robin √ (default) • Pre-emptive • Cooperative Free. RTOS By Real Time Engineers Ltd • Pre-emptive • Cooperative Micrium OS By Micrium • Pre-emptive • Tasks • SWIs • Software Timers X • Tasks • Co-routines (task share stack) • Direct TASK notifications X • Tasks • Software Timers • Semaphore • Mutex • Events • Semaphores • Mutex • Mailbox • Events interrupts supported (115 cycles for ISRs with TIRTOS calls) Handling interrupts supported • • Unknown • Systick X 5 K to 24 K • Idle Task Hook • Tick suppression coming soon 4

RTOS Tools Comparison Object Viewer Execution Graph Logging RTOS Config Tool Signal Plots Compiler

RTOS Tools Comparison Object Viewer Execution Graph Logging RTOS Config Tool Signal Plots Compiler support Examples License Certified Cost TI-RTOS By TI √ √ √ (GUI composer) • CCS • IAR • GCC > 50 • BSD Free ARM RTX By Keil √ √ X √ √ • • IAR Keil GCC Cosmic 2 • BSD Free. RTOS By Real Time Engineers Ltd √ 3 rd party Standalone X √ 3 rd party Standalone • • • CCS IAR Keil GCC Tasking 1 • Modified GPL • Safe. RTOS Free Micrium OS By Micrium √ √ √ X √ • CCS • IAR 2 • Micrium • SIL 3/SIL 4 Contact Micrium 5

MSP 432 & TI-RTOS Components Supported Kernel • Developed and maintained by TI •

MSP 432 & TI-RTOS Components Supported Kernel • Developed and maintained by TI • Fully supported on MSP 432 with > 50 examples. Out of the box examples for supported boosterpacks. • Power Manager to simplify & optimize power during runtime • Power-aware Drivers that work with TI-RTOS kernel or can even be used with another RTOS • Underlying structure for Energia MT - first hobbyist-oriented multithread IDE supporting MSP 432 Wi-Fi FAT File System Device Drivers Power Manager Instrumentation IDE: CCS, IAR, & GCC Tools Device Drivers Real-time clock NEW! Timer UART I 2 C SPI-SD Booster. Pack Supported PWM NEW! CC 3100 Booster Pack Watchdog SD-Card Booster. Pack GPIO TMP 006 Booster. Pack Sharp Memory LCD Booster. Pack RF 430 CL 330 NFC Transponder TPL 0401 EVM Board 6

TI-RTOS Power Manager MSP 432 Power Sequence Using MSP 432 Driver. Lib Using TI-RTOS

TI-RTOS Power Manager MSP 432 Power Sequence Using MSP 432 Driver. Lib Using TI-RTOS Power Manager Flash. Ctl_set. Wait. State(FLASH_BANK 0, waits. New); Flash. Ctl_set. Wait. State(FLASH_BANK 1, waits. New); AM 1_DCDC AMx_DCDC 1 MCLK AM 1_LDO AMx_LDO 3 MCLKs AM 0_DCDC SLx_DCDC 1 MCLK 3 MCLKs AM 0_LDO SLx_LDO RESET Active-mode Sleep-mode Transition AM 1_LPR AMx_LPR 1 MCLK 3 MCLKs AM 0_LPR SLx_LPR /* now change clocks and dividers */ CS_set. DCOCentered. Frequency( Power. MSP 432_perf. Levels[level]. DCORESEL); CS_init. Clock. Signal(CS_MCLK, Power. MSP 432_perf. Levels[level]. clock. Source, Power. MSP 432_perf. Levels[level]. DIVM); CS_init. Clock. Signal(CS_HSMCLK, Power. MSP 432_perf. Levels[level]. clock. Source, RTC_C_hold. Clock(); Power. MSP 432_perf. Levels[level]. DIVHS); WDT_A_hold. Timer(); CS_init. Clock. Signal(CS_SMCLK, PCM_set. Power. State(PCM_LPM 3 ); Power. MSP 432_perf. Levels[level]. clock. Source, Power. MSP 432_perf. Levels[level]. DIVS); Flash. Ctl_enable. Read. Buffering(FLASH_BANK 0, FLASH_DATA_READ); Flash. Ctl_enable. Read. Buffering(FLASH_BANK 0, FLASH_INSTRUCTION_FETCH); Flash. Ctl_enable. Read. Buffering(FLASH_BANK 1, FLASH_DATA_READ); Flash. Ctl_enable. Read. Buffering(FLASH_BANK 1, FLASH_INSTRUCTION_FETCH); changed. State. OK = PCM_set. Power. State(state. New); Power_sleep() Power_set. Performance. Level(level)

Energia MT ? ? Single sketch code hard to write for multiple LEDs at

Energia MT ? ? Single sketch code hard to write for multiple LEDs at different rates Multiple sketches makes code clean and easy to write • • • Complex single sketches to simple multiple sketches See video! Run sketches in parallel Automagic low power The power of an RTOS for everybody without the complexity! Easy to create interactive component libraries 8

Energia MT – Reuse of framework TI-RTOS enables Energia to be ported to new

Energia MT – Reuse of framework TI-RTOS enables Energia to be ported to new devices rapidly! Energia MT Sketches Energia Libraries Sketches Energia/Wiring API Libraries TI-RTOS UART I 2 C SPI Device Energia/Wiring API PWM UART I 2 C SPI Device PWM

MSP 432 & ARM RTX • Download Keil IDE from http: //www. keil. com/mdk

MSP 432 & ARM RTX • Download Keil IDE from http: //www. keil. com/mdk 5/instal • Free for all Royalty Free CMSIS compliant • ARM RTX details http: //www. keil. com/rl -arm/kernel. asp • Run examples today on the MSP 432 Launch. Pad www. keil. com/appnotes/docs/apnt_276. asp Flexible Scheduling Small footprint <4 K • Full suite of examples and CMSIS drivers coming soon 10

MSP 432 & Free. RTOS • Download Free. RTOS from http: //www. freertos. org/

MSP 432 & Free. RTOS • Download Free. RTOS from http: //www. freertos. org/ MPU support • See the demo that runs on the MSP 432 Launch. Pad at http: //www. freertos. org/TI_MSP 432_Free_RT OS_Demo. html Tickless Free, Modfiied GPL licence 11

MSP 432 & Micrium OS Built-in benchmarks • Download Micrium µC/OS-II from http: //micrium.

MSP 432 & Micrium OS Built-in benchmarks • Download Micrium µC/OS-II from http: //micrium. com/downloadcenter/downloadresults/? searchterm=mimsp 432 p 401 r&supported=true • Contact Micrium for pricing questions. Certified for safety! 12

Backup 13

Backup 13

MSP 432 TI-RTOS – Power Manager • Power Manager helps applications with • entering/exiting

MSP 432 TI-RTOS – Power Manager • Power Manager helps applications with • entering/exiting various LPM modes, • choosing among the various performance levels – AM_LDO_VCORE 0, AM_DCDC_VCORE 1 etc • Drivers can give inputs to Power Manager on which sleep mode or performance level they can handle at any given time. • Drivers can get notified by the Power Manager when sleep or performance events occur. • Application can pick the sleep mode and performance level and then the Power Manager will manage the rest in a thread-safe way. • Power and performance decisions are made in ONE place. • Clocks get configured based on requested performance level. • Flash wait states and buffering modes set automatically based on performance level. • RTC and Watchdog are managed to enter LPM 3 • Simply ask power Manager these questions – “What are my clocks right now? ” “What is my performance level? ” “ Why can’t my system enter LPMx. 5? What are my latencies to enter/exit LPM modes ? ” etc. • All TI-RTOS drivers use the Power Manager services. 14

MSP 432 TI-RTOS – Power Manager APIs • Init and setup Power_init(); - Call

MSP 432 TI-RTOS – Power Manager APIs • Init and setup Power_init(); - Call once before other APIs at init time. Power_enable. Policy(); Enable Power Manager – call once at init time. Power_idle. Func(); - Add to idle loop or forever while(1). • Get/Set Power_set/get. Performance. Level(); Use this API to set various performance levels such as AM_DCDC_VCORE 1, AM_DCDC_VCORE 0 etc. This API also manages flash wait and buffering modes. Constarints are taken into account before entering a new performance level. Power_register/unregister. Notify(); Register a function with the power manager to get notified on power events such as “about to sleep”, “waking up”. Apps can then manage their state/resources accordingly. Power_set/release. Constraint(); Use this API to prevent entry into Low Frequency Mode or prevent entry into LPMx. 5. • Getters Power_get. Constraint. Mask(); Get constraints that can prevent power manager from entering a particular sleep state or performance level. This API will tell the application why the power Module did not allow entry into a particular sleep or performance state. • Goto to LPM Power_shutdown(); API to enter LPMx. 5. Power_sleep(); API to enter LPM 0, LPM 3 or LPM 4. 15

TI-RTOS Development Tools 16

TI-RTOS Development Tools 16

ARM RTX Development Tools • Leverage ARM standard CMSIS-DSP library 17

ARM RTX Development Tools • Leverage ARM standard CMSIS-DSP library 17