Date post: | 24-Dec-2015 |
Category: |
Documents |
Upload: | patricia-carroll |
View: | 253 times |
Download: | 0 times |
MSP432™ MCU RTOS Solutions
1
MSP432 RTOS
2
Real-time Kernel
MCU
Drivers
ConnectivityWi-Fi
MiddlewareFile Systems
User ApplicationTasks
Power Manager
Sensors
TI-RTOS
freeRTOS
RTX (CMSIS-RTOS)
Micrium OS
RTOS Options
MSP432 RTOS
3
Real-time Kernel
MCU
Drivers
ConnectivityWi-Fi
MiddlewareFile Systems
Power Manager
Sensors
Unique to TI-RTOS: Simplify power
management for MCU
“RTOS Core” standard offering from all RTOSes
Broad offering from TI-RTOS Drivers
Broad Middleware offering from TI-RTOS
& CMSISUser Application
Tasks
RTOS Features Comparison
4
Scheduler Type
CMSIS comp-liant
Services Interrupt Latency
Device Specific Support
Device Drivers
Flash Size
LowPower Support
TI-RTOSBy TI
• Pre-emptive X • Tasks• Swis• Hwis• Software
Timers
• Semaphores• Mutex• Mailbox• Events
• Zero-latency interrupts supported(115 cycles for ISRs with TI-RTOS calls)
• Systick• Interrupts• Exception
Handling
• SPI• SPI-SD • I2C• UART• Timer• RTC• Timestamp• Watchdog
4K to 10K • Tick Suppression, • Device specific
Power Manager
ARM RTXBy Keil
• Round-robin (default)
• Pre-emptive• Cooperative
√ • Tasks• SWIs• Software
Timers
• Semaphores• Mutex• Mailbox• Events
• Zero-latency interrupts supported
• Systick X <4K • Tick Suppression, • Device specific
support coming soon
FreeRTOSBy Real Time Engineers Ltd
• Pre-emptive• Cooperative
X • Tasks• Co-routines
(task share stack)
• Direct TASK notifications
• Software Timers
• Semaphore• Mutex• Events
• Zero-latency interrupts supported
• Systick X 5K to 10K • Tick Suppression, • Pre and post sleep
macros for customization,
• Idle task hook.
Micrium OSBy Micrium
• Pre-emptive X • Tasks• Software
Timers
• Semaphores• Mutex• Mailbox• Events
• Unknown • Systick X 5K to 24K • Idle Task Hook• Tick suppression
coming soon
RTOS Tools Comparison
5
Object Viewer
Execution Graph
Logging RTOSConfig Tool
Signal Plots Compiler support
Examples License Certified
Cost
TI-RTOSBy TI
√ √ √ √ √(GUI composer)
• CCS• IAR• GCC
> 50 • BSD Free
ARM RTXBy Keil
√ √ X √ √ • IAR• Keil• GCC• Cosmic
2 • BSD Free
FreeRTOSBy Real Time Engineers Ltd
√ 3rd partyStandalone
√3rd partyStandalone
√3rd partyStandalone
X √3rd partyStandalone
• CCS• IAR• Keil• GCC• Tasking
1 • Modified GPL• SafeRTOS
Free
Micrium OSBy Micrium
√ √ √ X √ • CCS• IAR
2 • Micrium• SIL3/SIL4
Contact Micrium
MSP432 & TI-RTOS
• Developed and maintained by TI
• Fully supported on MSP432 with > 50 examples. Out of the box examples for supported booster-packs.
• 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 multi-thread IDE supporting MSP432
6
BoosterPack Supported
CC3100 Booster Pack
SD-Card BoosterPack
TMP006 BoosterPack
Sharp Memory LCD BoosterPack
RF430CL330 NFC Transponder
TPL0401EVM Board
Components Supported
Kernel
Wi-Fi
FAT File System
Device Drivers
Power Manager
Instrumentation
IDE: CCS, IAR, & GCC Tools
Device Drivers
Real-time clock NEW!
Timer
UART
I2C
SPI
SPI-SD
PWM NEW!
Watchdog
GPIO
TI-RTOS Power Manager
AM1_LDO
AM0_LDO
AM1_LPR
AM0_LPR
AM1_DCDC
AM0_DCDC
RESET
FlashCtl_setWaitState(FLASH_BANK0, waitsNew);FlashCtl_setWaitState(FLASH_BANK1, waitsNew);
/* now change clocks and dividers */CS_setDCOCenteredFrequency(PowerMSP432_perfLevels[level].DCORESEL);CS_initClockSignal(CS_MCLK,PowerMSP432_perfLevels[level].clockSource,PowerMSP432_perfLevels[level].DIVM);CS_initClockSignal(CS_HSMCLK,PowerMSP432_perfLevels[level].clockSource,PowerMSP432_perfLevels[level].DIVHS);CS_initClockSignal(CS_SMCLK,PowerMSP432_perfLevels[level].clockSource,PowerMSP432_perfLevels[level].DIVS);
FlashCtl_enableReadBuffering(FLASH_BANK0, FLASH_DATA_READ);FlashCtl_enableReadBuffering(FLASH_BANK0,FLASH_INSTRUCTION_FETCH);FlashCtl_enableReadBuffering(FLASH_BANK1, FLASH_DATA_READ);FlashCtl_enableReadBuffering(FLASH_BANK1,FLASH_INSTRUCTION_FETCH);
changedStateOK = PCM_setPowerState(stateNew);
Power_setPerformanceLevel(level)
MSP432 Power Sequence
Active-mode Transition
Using MSP432 DriverLib Using TI-RTOS Power Manager
AMx_LDO
SLx_LDO
AMx_LPR
SLx_LPR
AMx_DCDC
SLx_DCDC
1MCLK 3MCLKs1MCLK 3MCLKs 1MCLK 3MCLKs
Sleep-mode Transition
RTC_C_holdClock();WDT_A_holdTimer(); PCM_setPowerState(PCM_LPM3); Power_sleep()
Energia MT
8
??
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• Run sketches in parallel • Automagic low power• The power of an RTOS for everybody without the complexity!• Easy to create interactive component libraries
See video!
Energia MT – Reuse of frameworkTI-RTOS enables Energia to be ported to new devices rapidly!
Energia/Wiring API
UART SPII2C PWM
Energia/Wiring API
UART SPII2C PWM
Device Device
TI-RTOS
Libraries
Sketches
Libraries
Sketches
Energia
Energia MT
MSP432 & ARM RTX• Download Keil IDE from http://
www.keil.com/mdk5/instal
• Free for all
• ARM RTX details http://www.keil.com/rl-arm/kernel.asp
• Run examples today on the MSP432 LaunchPad www.keil.com/appnotes/docs/apnt_276.asp
• Full suite of examples and CMSIS drivers coming soon
10
Flexible Scheduling
Royalty Free
CMSIS compliant
Small footprint <4K
• Download FreeRTOS from http://www.freertos.org/
• See the demo that runs on the MSP432 LaunchPad athttp://www.freertos.org/TI_MSP432_Free_RTOS_Demo.html
11
MSP432 & FreeRTOS
MPU support
Free, Modfiied GPL licence
Tickless
• Download Micrium µC/OS-II from http://micrium.com/downloadcenter/download-results/?searchterm=mi-msp432p401r&supported=true
• Contact Micrium for pricing questions.
12
MSP432 & Micrium OSBuilt-in
benchmarks
Certified for safety!
Backup
13
MSP432 TI-RTOS – Power Manager
14
• Power Manager helps applications with • entering/exiting various LPM modes, • choosing among the various performance levels – AM_LDO_VCORE0, AM_DCDC_VCORE1 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 LPM3
• 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.
MSP432 TI-RTOS – Power Manager APIs• Init and setup
Power_init(); - Call once before other APIs at init time.
Power_enablePolicy();
Enable Power Manager – call once at init time.
Power_idleFunc(); - Add to idle loop or forever while(1).
15
• Getters
Power_getConstraintMask(); -
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.
• Get/Set
Power_set/getPerformanceLevel();
Use this API to set various performance levels such as AM_DCDC_VCORE1, AM_DCDC_VCORE0 etc. This API also manages flash wait wait and buffering modes. Constarints are taken into account before entering a new performance level.
Power_register/unregisterNotify();
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/releaseConstraint();
Use this API to prevent entry into Low Frequency Mode or prevent entry into LPMx.5.
• Goto to LPM
Power_shutdown();
API to enter LPMx.5.
Power_sleep();
API to enter LPM0, LPM3 or LPM4.
TI-RTOS Development Tools
16
ARM RTX Development Tools
• Leverage ARM standard CMSIS-DSP library
17