#34 Event-Driven Programming Part-2: Best practices for concurrency & Active Object pattern

preview_player
Показать описание
This lesson continues the subject of event-driven programming, but this time as it applies to real-time embedded systems. Specifically, today you will learn the best practices of concurrent programming which form the "Active Object" design pattern. Later you will implement your own Active Object framework Micro-C/AO on top of the Micro-C/OS-II RTOS.

------
Resources:

Companion web page for this video course:

GitHub repository for projects for this video course:

Transcript of this lesson:

Recommended Reading:
- Herb Sutter "Prefer Using Active Objects Instead of Naked Threads"

- David Cummings "Managing Concurrency in Complex Embedded Systems"

- David Kalinsky "Messages for Intertask Communication”

Music credits:
The background music comes from:
Рекомендации по теме
Комментарии
Автор

This collection of lectures is the best one I've found so far. Thanks for sharing this. Active objects are the first pillar of concurrency.

anthonyrocha
Автор

Wow thanks so much Miro. The greatest ARM lessons ever

nolimangulabnan
Автор

Thank you for making these videos through all those years. The first video in this course was made in 2013!

Vexown
Автор

Wow wow After several ups and downs in ur tutorials:
This tutorial made it clear to me that all the threads should be developed around the EVENT LOOP!!
Great tnx!!!!

ethiopia-prevails
Автор

Never clicked​ a video so fast like this one *_*
Thank you for sharing.

muhammedmucahit
Автор

Whew took me 9 days but I watched everything for a brief overview of embedded programming! Now to google everything later lol

CrisMadla
Автор

anybody new to embedded system can't justify the value of this technique but in my 1.5 years of fulltime embedded carrier I understand. Great work sir, Thank You.

rupantaradhikary
Автор

Thank you very much Miro for your hard work. I also really enjoyed your presentation on the embedded online conference very informative.

eddiemhako
Автор

thanks a lot for this video. This really helps to make better design decisions. Very well explained.

stephanmorgenstern
Автор

Excellent explanation! Clear and succinct.

dan
Автор

This works well if worst case time of your event loop processing is less than hard realtime deadline. Otherwise it will be a mix of RTOS and event driven. I have used event driven approach to implement usbpd/typec fw stack. But you presented a more generic and secure implementation of event driven approach. Awesome work.

ykc
Автор

Awesome! Thank you so much for the new video!

borisnimcevic
Автор

Great tutorials! I follow them since the beginning. I do mainly hardware, with a little bit firmware. Watching them makes me want to start writing more firmware.

Can you share what future lessons are coming to this channel? Are you planning more GUI tutorials, also with real display?

Thank you!

elektronchika
Автор

Hello Miro, Im curious if you have any videos in your repository that would help someone whose using SPI to communicate with a sensor of somekind? Im specifically using a fingerprint scanner, but anything with detail about sending data from one device to another would sure be helpful!

VialBloodHunter
Автор

Thank you so much. please can you tell me why you didn't use the virtual table to declare the virtual function dispatch in the Active class?

bouazizihsan
Автор

Before the message has been handled by the target AO, it May still use the obsolete data, in case we have two or more AOs that need to notify each other with the updated data. There is a time gap between message sent and message processed.

wondererasl
Автор

Hi - Thanks for the very insightful video. If I understand correctly, active object = its own thread + private data + private queue. My question is, why is active object has tied to own RTOS based thread? It could be non-RTOS based task handler, which touches only its own private data and has its won queue. Can we call such pattern as Active Object?? thanks

jankeshchakravarthy
Автор

Amazing Tutorial! Keep it up Sir. Thank you

hassaanshah
Автор

Is there some emulator which would allow me to learn and practice these concepts on a Windows or Linux computer?

cernejr
Автор

Hi Miro,
Combining the "Blinky" AO and the "Button" makes the AO thread priority at the same level.
(I guess that the scheduler sets the AO thread priority)
So how can you ensure and calculate the real rime requirements?
when there were separated threads the real time requirements could be calculated.


Which leads me to the question, should i always consider to design according to the new methodology
(AO and object oriented wise)? or elsewhere?

Really enjoying your course, thanks a lot

ofirfedida
join shbcf.ru