Comparative Analysis of RTOS Features and Tools for MSP432 MCU

M
S
P
4
3
2
 
M
C
U
 
R
T
O
S
 
S
o
l
u
t
i
o
n
s
 
1
M
S
P
4
3
2
 
R
T
O
S
2
R
e
a
l
-
t
i
m
e
 
K
e
r
n
e
l
M
C
U
D
r
i
v
e
r
s
C
o
n
n
e
c
t
i
v
i
t
y
W
i
-
F
i
M
i
d
d
l
e
w
a
r
e
F
i
l
e
 
S
y
s
t
e
m
s
U
s
e
r
 
A
p
p
l
i
c
a
t
i
o
n
T
a
s
k
s
P
o
w
e
r
M
a
n
a
g
e
r
S
e
n
s
o
r
s
TI-RTOS
freeRTOS
RTX (CMSIS-RTOS)
Micrium OS
R
T
O
S
 
O
p
t
i
o
n
s
M
S
P
4
3
2
 
R
T
O
S
3
R
e
a
l
-
t
i
m
e
 
K
e
r
n
e
l
M
C
U
D
r
i
v
e
r
s
C
o
n
n
e
c
t
i
v
i
t
y
W
i
-
F
i
M
i
d
d
l
e
w
a
r
e
F
i
l
e
 
S
y
s
t
e
m
s
P
o
w
e
r
M
a
n
a
g
e
r
S
e
n
s
o
r
s
U
n
i
q
u
e
 
t
o
 
T
I
-
R
T
O
S
:
S
i
m
p
l
i
f
y
 
p
o
w
e
r
m
a
n
a
g
e
m
e
n
t
 
f
o
r
 
M
C
U
R
T
O
S
 
C
o
r
e
 
s
t
a
n
d
a
r
d
 
o
f
f
e
r
i
n
g
 
f
r
o
m
 
a
l
l
 
R
T
O
S
e
s
B
r
o
a
d
 
o
f
f
e
r
i
n
g
 
f
r
o
m
 
T
I
-
R
T
O
S
 
D
r
i
v
e
r
s
B
r
o
a
d
 
M
i
d
d
l
e
w
a
r
e
o
f
f
e
r
i
n
g
 
f
r
o
m
 
T
I
-
R
T
O
S
&
 
C
M
S
I
S
U
s
e
r
 
A
p
p
l
i
c
a
t
i
o
n
T
a
s
k
s
R
T
O
S
 
F
e
a
t
u
r
e
s
 
C
o
m
p
a
r
i
s
o
n
4
R
T
O
S
 
T
o
o
l
s
 
C
o
m
p
a
r
i
s
o
n
5
M
S
P
4
3
2
 
&
 
T
I
-
R
T
O
S
Developed and maintained by TI
Fully supported on MSP432 with
> 50 examples. Out of the box
examples for supported booster-
packs.
P
o
w
e
r
 
M
a
n
a
g
e
r
 
t
o
 
s
i
m
p
l
i
f
y
 
&
o
p
t
i
m
i
z
e
 
p
o
w
e
r
 
d
u
r
i
n
g
 
r
u
n
t
i
m
e
Power-aware Drivers that work
with TI-RTOS kernel or can even
be used with another RTOS
U
n
d
e
r
l
y
i
n
g
 
s
t
r
u
c
t
u
r
e
 
f
o
r
 
E
n
e
r
g
i
a
M
T
 
-
 
f
i
r
s
t
 
h
o
b
b
y
i
s
t
-
o
r
i
e
n
t
e
d
 
m
u
l
t
i
-
t
h
r
e
a
d
 
I
D
E
 
s
u
p
p
o
r
t
i
n
g
 
M
S
P
4
3
2
6
T
I
-
R
T
O
S
 
P
o
w
e
r
 
M
a
n
a
g
e
r
 
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);
 
P
o
w
e
r
_
s
e
t
P
e
r
f
o
r
m
a
n
c
e
L
e
v
e
l
(
l
e
v
e
l
)
M
S
P
4
3
2
 
P
o
w
e
r
 
S
e
q
u
e
n
c
e
 
Active-mode Transition
U
s
i
n
g
 
M
S
P
4
3
2
 
D
r
i
v
e
r
L
i
b
U
s
i
n
g
 
T
I
-
R
T
O
S
 
P
o
w
e
r
 
M
a
n
a
g
e
r
 
Sleep-mode Transition
 
RTC_C_holdClock();
WDT_A_holdTimer();
PCM_setPowerState(PCM_LPM3
);
 
Power_sleep()
E
n
e
r
g
i
a
 
M
T
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
R
u
n
 
s
k
e
t
c
h
e
s
 
i
n
 
p
a
r
a
l
l
e
l
Automagic low power
The power of an RTOS for everybody without the complexity!
Easy to create interactive component libraries
See 
video
!
E
n
e
r
g
i
a
 
M
T
 
 
R
e
u
s
e
 
o
f
 
f
r
a
m
e
w
o
r
k
TI-RTOS enables Energia to be
ported to new devices rapidly!
Energia
Energia MT 
M
S
P
4
3
2
 
&
 
A
R
M
 
R
T
X
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 at
http://www.freertos.org/TI_MSP432_Free_RT
OS_Demo.html
11
M
S
P
4
3
2
 
&
 
F
r
e
e
R
T
O
S
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
M
S
P
4
3
2
 
&
 
M
i
c
r
i
u
m
 
O
S
Built-in
benchmarks
Certified for
safety!
B
a
c
k
u
p
13
M
S
P
4
3
2
 
T
I
-
R
T
O
S
 
 
P
o
w
e
r
 
M
a
n
a
g
e
r
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.
M
S
P
4
3
2
 
T
I
-
R
T
O
S
 
 
P
o
w
e
r
 
M
a
n
a
g
e
r
 
A
P
I
s
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.
T
I
-
R
T
O
S
 
D
e
v
e
l
o
p
m
e
n
t
 
T
o
o
l
s
16
A
R
M
 
R
T
X
 
D
e
v
e
l
o
p
m
e
n
t
 
T
o
o
l
s
Leverage ARM standard CMSIS-DSP library
17
Slide Note
Embed
Share

This comprehensive comparison delves into the features and options available for real-time operating systems (RTOS) on MSP432 MCU, covering tasks, middleware, connectivity, power management, drivers, sensors, and more. The analysis also includes a detailed comparison of RTOS tools, viewers, execution graphs, logging, configuration tools, compiler support, examples, licenses, and costs.

  • RTOS
  • MSP432
  • MCU
  • Comparison
  • Tools

Uploaded on Sep 15, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. MSP432 MCU RTOS Solutions 1

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

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

  4. RTOS Features Comparison Scheduler Type CMSIS comp- liant Services Interrupt Latency Device Specific Support Device Drivers Flash Size Low Power Support 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 TI-RTOS By TI 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 ARM RTX By Keil 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. FreeRTOS By Real Time Engineers Ltd Pre-emptive X Tasks Software Timers Semaphores Mutex Mailbox Events Unknown Systick X 5K to 24K Idle Task Hook Tick suppression coming soon Micrium OS By Micrium 4

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

  6. MSP432 & TI-RTOS Components Supported Kernel Wi-Fi FAT File System Device Drivers Power Manager Instrumentation IDE: CCS, IAR, & GCC Tools Device Drivers Real-time clock NEW! Developed and maintained by TI Timer Fully supported on MSP432 with > 50 examples. Out of the box examples for supported booster- packs. UART I2C SPI Power Manager to simplify & optimize power during runtime SPI-SD PWM NEW! BoosterPack Supported CC3100 Booster Pack Power-aware Drivers that work with TI-RTOS kernel or can even be used with another RTOS Watchdog SD-Card BoosterPack GPIO TMP006 BoosterPack Underlying structure for Energia MT - first hobbyist-oriented multi- thread IDE supporting MSP432 Sharp Memory LCD BoosterPack RF430CL330 NFC Transponder TPL0401EVM Board 6

  7. TI-RTOS Power Manager Using TI-RTOS Power Manager MSP432 Power Sequence Using MSP432 DriverLib 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); AM1_DCDC AMx_DCDC AM1_LDO AMx_LDO AM1_LPR AMx_LPR 3MCLKs 3MCLKs 1MCLK 1MCLK 3MCLKs 1MCLK RTC_C_holdClock(); WDT_A_holdTimer(); PCM_setPowerState(PCM_LPM3); AM0_DCDC SLx_DCDC AM0_LDO SLx_LDO AM0_LPR SLx_LPR Power_setPerformanceLevel(level) Power_sleep() 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); RESET Active-mode Transition Sleep-mode Transition changedStateOK = PCM_setPowerState(stateNew);

  8. 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 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! 8

  9. 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 Energia/Wiring API UART I2C SPI PWM UART I2C SPI PWM Device Device

  10. MSP432 & ARM RTX Download Keil IDE from http://www.keil.com/mdk5/instal CMSIS compliant Royalty Free 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 Small footprint <4K Flexible Scheduling Full suite of examples and CMSIS drivers coming soon 10

  11. MSP432 & FreeRTOS Download FreeRTOS from http://www.freertos.org/ MPU support See the demo that runs on the MSP432 LaunchPad at http://www.freertos.org/TI_MSP432_Free_RT OS_Demo.html Tickless Free, Modfiied GPL licence 11

  12. MSP432 & Micrium OS Built-in benchmarks Download Micrium C/OS-II from http://micrium.com/downloadcenter/download- results/?searchterm=mi- msp432p401r&supported=true Contact Micrium for pricing questions. Certified for safety! 12

  13. Backup 13

  14. MSP432 TI-RTOS Power Manager 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. 14

  15. MSP432 TI-RTOS Power Manager APIs Init and setup Power_init(); - Call once before other APIs at init time. 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. 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. Power_enablePolicy(); Enable Power Manager call once at init time. Power_idleFunc(); - Add to idle loop or forever while(1). 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. Goto to LPM Power_shutdown(); API to enter LPMx.5. Power_sleep(); API to enter LPM0, LPM3 or LPM4. Power_set/releaseConstraint(); Use this API to prevent entry into Low Frequency Mode or prevent entry into LPMx.5. 15

  16. TI-RTOS Development Tools 16

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

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#