<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"><head><!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--></head><body><div class="ydpfb0fa587yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
        <div dir="ltr" data-setdir="false">ChibiOS has been used for Arduino RTOS. Never used it, never needed it, but I have read about it.</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">John Vaughters</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><a href="https://github.com/greiman/ChibiOS-Arduino" rel="nofollow" target="_blank" class="enhancr_card_0675283839">greiman/ChibiOS-Arduino</a><br></div><div><br></div><div id="ydp6c1cff55enhancr_card_0675283839" class="ydp6c1cff55yahoo-link-enhancr-card ydp6c1cff55ymail-preserve-class ydp6c1cff55ymail-preserve-style" style="max-width:400px;font-family:Helvetica Neue, Segoe UI, Helvetica, Arial, sans-serif" data-url="https://github.com/greiman/ChibiOS-Arduino" data-type="YENHANCER" data-size="MEDIUM" contenteditable="false"><a href="https://github.com/greiman/ChibiOS-Arduino" style="text-decoration:none !important;color:#000 !important" class="ydp6c1cff55yahoo-enhancr-cardlink" rel="nofollow" target="_blank"><table border="0" class="ydp6c1cff55card-wrapper ydp6c1cff55yahoo-ignore-table" cellpadding="0" cellspacing="0" style="max-width:400px"><tbody><tr><td width="400"><table border="0" class="ydp6c1cff55card ydp6c1cff55yahoo-ignore-table" cellpadding="0" cellspacing="0" width="100%" style="max-width:400px;border-width:1px;border-style:solid;border-color:rgb(224, 228, 233);border-radius:2px"><tbody><tr><td class="ydp6c1cff55card-primary-image-cell" background="https://s.yimg.com/lo/api/res/1.2/9GU5IASKFEVs_TBz9Rhhmg--~A/Zmk9ZmlsbDt3PTQwMDtoPTIwMDthcHBpZD1pZXh0cmFjdA--/https://avatars2.githubusercontent.com/u/3964207?s=400&v=4.cf.jpg" bgcolor="#000000" valign="top" height="175" style="background-color: rgb(0, 0, 0); background-size: cover; position: relative; border-radius: 2px 2px 0px 0px; min-height: 175px;"><!--[if gte mso 9]><v:rect fill="true" stroke="false" style="width:396px;height:175px;position:absolute;top:0;left:0;"><v:fill type="frame" color="#000000" src="https://s.yimg.com/lo/api/res/1.2/9GU5IASKFEVs_TBz9Rhhmg--~A/Zmk9ZmlsbDt3PTQwMDtoPTIwMDthcHBpZD1pZXh0cmFjdA--/https://avatars2.githubusercontent.com/u/3964207?s=400&v=4.cf.jpg"/></v:rect><![endif]--><table border="0" class="ydp6c1cff55card-overlay-container-table ydp6c1cff55yahoo-ignore-table" cellpadding="0" cellspacing="0" style="width:100%"><tbody><tr><td class="ydp6c1cff55card-overlay-cell" background="https://s.yimg.com/cv/ae/nq/storm/assets/enhancrV21/1/enhancr_gradient-400x175.png" bgcolor="transparent" valign="top" style="background-color: transparent; border-radius: 2px 2px 0px 0px; min-height: 175px;"><!--[if gte mso 9]><v:rect fill="true" stroke="false" style="width:396px;height:175px;position:absolute;top:-18px;left:0;"><v:fill type="pattern" color="#000000" src="https://s.yimg.com/cv/ae/nq/storm/assets/enhancrV21/1/enhancr_gradient-400x175.png"/><v:textbox inset="0,0,20px,0"><![endif]--><table border="0" class="ydp6c1cff55yahoo-ignore-table" height="175" style="width: 100%; min-height: 175px;"><tbody><tr><td class="ydp6c1cff55card-richInfo2" style="text-align:left;padding:15px 0 0 15px;vertical-align:top"></td><td class="ydp6c1cff55card-actions" style="text-align:right;padding:15px 15px 0 0;vertical-align:top"><div class="ydp6c1cff55card-share-container"></div></td></tr></tbody></table><!--[if gte mso 9]></v:textbox></v:rect><![endif]--></td></tr></tbody></table></td></tr><tr><td><table border="0" align="center" class="ydp6c1cff55card-info ydp6c1cff55yahoo-ignore-table" cellpadding="0" cellspacing="0" style="background:#fff;position:relative;z-index:2;width:100%;max-width:400px;border-radius:0 0 2px 2px;border-top:1px solid rgb(224, 228, 233)"><tbody><tr><td style="background-color:#ffffff;padding:16px 0 16px 12px;vertical-align:top;border-radius:0 0 0 2px"><img class="ydp6c1cff55card-object-1 ydp6c1cff55yahoo-ignore-inline-image ydp6c1cff55ymail-preserve-class" src="https://s.yimg.com/nq/storm/assets/enhancrV2/23/logos/github.png" height="36" style="min-width:36px;margin-top:3px"></td><td style="vertical-align:middle;padding:12px 24px 16px 12px;width:99%;font-family:Helvetica Neue, Segoe UI, Helvetica, Arial, sans-serif;border-radius:0 0 2px 0"><h2 class="ydp6c1cff55card-title" style="font-size: 14px; line-height: 19px; margin: 0px 0px 6px; font-family: Helvetica Neue, Segoe UI, Helvetica, Arial, sans-serif; color: rgb(38, 40, 42);">greiman/ChibiOS-Arduino</h2><p class="ydp6c1cff55card-description" style="font-size: 12px; line-height: 16px; margin: 0px; color: rgb(151, 155, 167);">ChibiOS/RT 3.0.3 for Arduino AVR, Due, and Teensy 3.x - greiman/ChibiOS-Arduino</p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></a></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>
        
        </div><div id="yahoo_quoted_0108368198" class="yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    On Friday, January 24, 2020, 7:44:20 AM EST, Mike Lisanke via TriEmbed <triembed@triembed.org> wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div id="yiv0828430676"><div><div dir="ltr">It's been my understanding that Arduino is single threaded (except for their own interrupt handling) and that single use resources could be handled in your user code (the main loop) anywhere without conflict (multi-use) because you would naturally structure the code to use a resource (and clean up) then use the resource again... If you're doing your own threading model then it would benefit us to understand What you've implemented to split your tasks among many cycles of the main loop. I just googled and it doesn't appear that Arduino has a multi-tasking component of its loop But of course there are many open source extensions to the basis setup. <div><br clear="none"></div><div>Are you primarily concerned with common use of the I2C bus? Is you "mutex" just a bit/byte/word of memory that you're in a stream to an external device and need to complete it? Or, does mutex imply you have a supervisor interpreting the availability of a resource and selecting whether or not to "dispatch" a thread (section of code) to execute based on the resource availability?</div></div><br clear="none"><div class="yiv0828430676yqt0086876785" id="yiv0828430676yqt58498"><div class="yiv0828430676gmail_quote"><div class="yiv0828430676gmail_attr" dir="ltr">On Thu, Jan 23, 2020 at 5:51 PM Alex via TriEmbed <<a rel="nofollow" shape="rect" ymailto="mailto:triembed@triembed.org" target="_blank" href="mailto:triembed@triembed.org">triembed@triembed.org</a>> wrote:<br clear="none"></div><blockquote class="yiv0828430676gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;">I’m working on a time and weather forecast clock based on an ESP32 and a 20x4 HD44800 LCD connected via an I2C port expander thing. I’m ‘cheating’ at the moment by splitting the display update code and the weather-fetch code into two tasks and pinning them to separate cores.<br clear="none">
<br clear="none">
I think the right way to do this is to protect the LCD at the character-sending level with a mutex, but I dread what I may find in terms of how they have overloaded the usual Arduino print and println functions. I should probably also replace my global ‘locking’ access to the network with a mutex, since NTP and the weather updates could clash.<br clear="none">
<br clear="none">
Anyone already do something similar to this who would like to share code?<br clear="none">
<br clear="none">
Thanks,<br clear="none">
Alex<br clear="none">
_______________________________________________<br clear="none">
Triangle, NC Embedded Computing mailing list<br clear="none">
<br clear="none">
To post message: <a rel="nofollow" shape="rect" ymailto="mailto:TriEmbed@triembed.org" target="_blank" href="mailto:TriEmbed@triembed.org">TriEmbed@triembed.org</a><br clear="none">
List info: <a rel="nofollow" shape="rect" target="_blank" href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br clear="none">
TriEmbed web site: <a rel="nofollow" shape="rect" target="_blank" href="http://TriEmbed.org">http://TriEmbed.org</a><br clear="none">
To unsubscribe, click link and send a blank message: mailto:<a rel="nofollow" shape="rect" ymailto="mailto:unsubscribe-TriEmbed@bitser.net" target="_blank" href="mailto:unsubscribe-TriEmbed@bitser.net">unsubscribe-TriEmbed@bitser.net</a>?subject=unsubscribe<br clear="none">
<br clear="none">
</blockquote></div></div><br clear="all"><div><br clear="none"></div>-- <br clear="none"><div class="yiv0828430676gmail_signature" dir="ltr">Best regards,  Mike</div></div></div><div class="yqt0086876785" id="yqt63180">_______________________________________________<br clear="none">Triangle, NC Embedded Computing mailing list<br clear="none"><br clear="none">To post message: <a shape="rect" ymailto="mailto:TriEmbed@triembed.org" href="mailto:TriEmbed@triembed.org">TriEmbed@triembed.org</a><br clear="none">List info: <a shape="rect" href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org" target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br clear="none">TriEmbed web site: <a shape="rect" href="http://TriEmbed.org" target="_blank">http://TriEmbed.org</a><br clear="none">To unsubscribe, click link and send a blank message: mailto:<a shape="rect" ymailto="mailto:unsubscribe-TriEmbed@bitser.net" href="mailto:unsubscribe-TriEmbed@bitser.net">unsubscribe-TriEmbed@bitser.net</a>?subject=unsubscribe<br clear="none"><br clear="none"></div></div>
            </div>
        </div></body></html>