No video

Super-Simple Tasker -- The Hardware RTOS for ARM Cortex-M, Part-1

  Рет қаралды 9,981

Quantum Leaps, LLC

Quantum Leaps, LLC

Күн бұрын

Super-Simple Tasker (SST) is a preemptive, priority-based RTOS kernel fully compatible with Rate Monotonic Analysis/Scheduling (RMA/RMS). It was initially published in 2006. This video presents a unique hardware implementation of a modern version of SST for ARM Cortex-M (M0, M0+, M3, M4, M7, etc.).
This is Part-1 of the talk delivered at Embedded Online Conference 2023, see:
embeddedonline...
The presentation begins with an introduction to preemptive but non-blocking multitasking with so-called basic tasks (as defined in the OSEK/VDX/AUTOSAR operating system). Such tasks are ideal for executing event-driven state machines (a.k.a. active objects), which are also non-blocking and handle events in a run-to-completion fashion. Next, you'll see an example application that demonstrates the various preemption scenarios in SST and shows how it complies with the requirements of Rate Monotonic Scheduling (RMS).
Resources
All code presented in this video is available on GitHub in the SST repository:
github.com/Qua...
David M. Cummings, "Managing Concurrency in Complex Embedded Systems", www.state-mach...
Quantum Leaps, video: • Beyond the RTOS - Part...
Quantum Leaps, video: • Beyond the RTOS - Part...
Quantum Leaps, video: • Beyond the RTOS - Part...
Quantum Leaps, video: • Beyond the RTOS Part-4...
#rtos #arm #embedded #realtime #programming

Пікірлер: 11
@technics6215
@technics6215 10 ай бұрын
Thank you Miro! You should get some prize for sharing your very practical knowledge.
@devangtheone
@devangtheone Жыл бұрын
Great explanations and implementations. Can't wait for second part.
@dominicvalentino6377
@dominicvalentino6377 Жыл бұрын
Miro, this is fantastic as usual. I like that you have added multiple tasks at the same priority.
@StateMachineCOM
@StateMachineCOM Жыл бұрын
Thanks for pointing out this aspect. It's important because it means that the number of SST tasks is NOT limited by the number of unique interrupt priority levels available in the NVIC. You can have many more SST tasks than interrupt priorities. The limit is only the number of supported interrupt vectors (minus the number of actually used interrupts). But, as shown in the video, the "reserved" interrupt vectors are usually available for SST tasks. --MMS
@wegi9621
@wegi9621 Жыл бұрын
Great! When Part-2 will be releasse?
@StateMachineCOM
@StateMachineCOM Жыл бұрын
Next week. Stay tuned!
@jayakrishnanharikumaran3758
@jayakrishnanharikumaran3758 Жыл бұрын
Hi Miro, thanks for the great presentation. I have one question where a message a posted to another task. In that instance, the caller task got pre-empted/blocked. Isnt that the same as not meeting run to completion?
@StateMachineCOM
@StateMachineCOM Жыл бұрын
The relation between preemption and run-to-completion (RTC) is explained in Part-2 (see kzbin.info/www/bejne/oXatZ4R-mteGqNE ). But to quickly summarize: preemption and RTC can happily coexist. RTC does NOT mean monopolizing the CPU for the whole RTC step. It only means processing one event at a time. So, a preempted task only pauses momentarily but continues the same RTC step every time it gets the CPU back, and eventually completes the RTC step. Also, preemption is very *different* than blocking. Preemption is transparent to the preempted task. Blocking is always caused by an explicit call to an RTOS primitive, such as a delay or a semaphore. --MMS
@10e999
@10e999 Жыл бұрын
As always, great video Miro. That said, I'm still not convinced about Event Driver RTOS in embedded system. I've built event driven GUI application in the past and it was great. But I think it worked so well because the Input/Output are very simple in a GUI application (WM_CREATE, WM_DESTROY, button click, etc). How would you structure an embedded application that needs to manage daisy-chained sensors that need filtering, CAN bus mailboxes, async webserver, usb? How would you pass around the data as event?
@StateMachineCOM
@StateMachineCOM Жыл бұрын
If all the NASA JPL Martian rovers can be programmed according to the event-driven paradigm, your software can too. Seriously. Please actually read the article "Managing Concurrency in Complex Embedded Systems” referenced in this presentation (see www.state-machine.com/doc/Cummings2006.pdf ). The NASA software admittedly uses a traditional RTOS (VxWorks, I believe), but all threads are structured as event loops, strictly without blocking. So the paradigm can apparently handle all the communication and synchronization issues you enumerate. In fact, the event-based solution is actually simpler than traditional blocking primitives of an RTOS. Also, when you think about it, there are not that many different types of events. As I said in the presentation, even if you don't immediately jump to a radically different kernel, like the SST (which is still incomplete), you should seriously consider using the event-driven paradigm with a traditional RTOS. Your designs will be better for it. --MMS
@alphamastereletronics842
@alphamastereletronics842 10 ай бұрын
​@@StateMachineCOMI agree with you, Dr.Miro, in my opinion, it seems that the college above doesn't understood the concepts about event-driven paradigms or even the state machine mechanism, I've implemented these paradigm successfully in basic to advanced embedded systems without any problems, I've been used and tested your framework too, and works perfectly for all tests realized.
Super-Simple Tasker -- The Hardware RTOS for ARM Cortex-M, Part-2
19:10
Quantum Leaps, LLC
Рет қаралды 5 М.
Get 10 Mega Boxes OR 60 Starr Drops!!
01:39
Brawl Stars
Рет қаралды 16 МЛН
Harley Quinn's desire to win!!!#Harley Quinn #joker
00:24
Harley Quinn with the Joker
Рет қаралды 15 МЛН
My Cheetos🍕PIZZA #cooking #shorts
00:43
BANKII
Рет қаралды 26 МЛН
Кадр сыртындағы қызықтар | Келінжан
00:16
All Rust string types explained
22:13
Let's Get Rusty
Рет қаралды 165 М.
Real Time Operating Systems (RTOS) - Nate Graff
35:02
White Hat Cal Poly
Рет қаралды 50 М.
What is a Monad? - Computerphile
21:50
Computerphile
Рет қаралды 600 М.
rust runs on EVERYTHING (no operating system, just Rust)
18:10
Low Level Learning
Рет қаралды 354 М.
Signals. I spent 2 years to understand this part.
21:24
kimylamp
Рет қаралды 217 М.
The moment we stopped understanding AI [AlexNet]
17:38
Welch Labs
Рет қаралды 936 М.
But, what is Virtual Memory?
20:11
Tech With Nikola
Рет қаралды 258 М.
FreeRTOS SMP on the RP2040 Tutorial - Symmetric Multiprocessing with FreeRTOS!
15:47
Bob Nystrom - Is There More to Game Architecture than ECS?
23:06
Roguelike Celebration
Рет қаралды 199 М.
Get 10 Mega Boxes OR 60 Starr Drops!!
01:39
Brawl Stars
Рет қаралды 16 МЛН