<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 2, 2018 at 1:30 PM, Aaron Bufkin <span dir="ltr"><<a href="mailto:bufkin@marvell.com" target="_blank">bufkin@marvell.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_-3948927373608436173WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Hi, I currently use eCOS, which has zero project activity and support. I am trying to find a suitable replacement. But I need some information before I get onboard with RTEMS.</p></div></div></blockquote><div><br></div><div>OK. Hopefully others and I can help.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-3948927373608436173WordSection1"><p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">From everything that I have read about RTEMS, it has support for SMP and POSIX but it does not support Aarch64.  Is this true?</p></div></div></blockquote><div><br></div><div>The quick answer is yes. More detail.</div><div><br></div><div>RTEMS SMP supports ARM (tested to 4 cores), SPARC (tested to four cores), and</div><div>PowerPC (tested to 24 cores). There are a lot of features in the SMP to help build</div><div>applications that are designed to be analyzable and avoid resource contention.</div><div>There is support for GCC's OpenMP out of the box. </div><div><br></div><div>The POSIX support is quite complete with over 1000 POSIX methods. We track</div><div>compliance against the POSIX standard and other standards like FACE and SCA</div><div>that profile POSIX for specific domains. The POSIX is complete enough where</div><div>it is usually straightforward to port over libraries you want. See </div><div><a href="https://docs.rtems.org/branches/master/posix-compliance/index.html">https://docs.rtems.org/branches/master/posix-compliance/index.html</a>. If there</div><div>are specific methods you have questions about, just ask.</div><div><br></div><div>We do not have an aarch64 port yet. So far, using the 32-bit arm port on </div><div>the 64-bit aarch64 targets has met user needs. I suspect this is because the</div><div>main advantages would be 64-bit address space and faster 64-bit native integer type </div><div>which are not a common need in applications needing single address space OSes.</div><div>That said, we do want the port and have laid groundwork by having already</div><div>added aarch64-rtems to the GNU tools. You can build those now with the RSB.</div><div><br></div><div>There is a community of folks who provide services for RTEMS and any one</div><div>of us would be happy to help on a new port.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-3948927373608436173WordSection1"><p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">How does the C runtime size of RTEMS compare to eCOS? Or FreeRTOS?</p></div></div></blockquote><div><br></div><div>I don't have any hard numbers on this one. I will provide some background</div><div>and let users with direct experience comment.</div><div><br></div><div>Everything in RTEMS is library based and we use per-function and per-data</div><div>item linking. So you shouldn't see any dead methods. The C runtime of </div><div>RTEMS is newlib which is also used by Cygwin. </div><div><br></div><div>One point is that we focus on correctness and conformance. I recall long ago</div><div>being asked why RTEMS POSIX mutexes were slower than some other open</div><div>source OS. I looked at their implementation and immediately saw that they</div><div>didn't implement any attributes. When you don't implement everything, you</div><div>tend to be smaller and faster. </div><div><br></div><div>This is not to say we don't focus on size. In fact, one of the things I</div><div>think is neat is the recent and IMO very cool feature where something</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">like constructors are used to initialize RTEMS itself. If an OS feature is not</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">used, then its initialization is automatically left out by the linker. </div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Between the per-function linking and the initialization technique we now use,</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">if you find methods in your executable that surprise you, please report it. We</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">haven't had any reported in a long time.</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Someone with direct experience should comment.  <br></div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-3948927373608436173WordSection1"><p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">How configurable is RTEMS?</p></div></div></blockquote><div><br></div><div>Aside from being library based with per-function linking, there are build time</div><div>configuration and application link time configuration items. </div><div><br></div><div>+ build time - disable large features (e.g. SMP vs uniprocessor)</div><div>+ application configuration time - unlimited objects vs hard limits,</div><div>   filesystems (none or a set), static device drivers, etc.</div><div><br></div><div>My recommendation would be to build for some simulator ARM BSP and try <br></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">things. If you have questions, ask. I am sure the RTEMS Community will</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">be happy to help.</div><br class="gmail-Apple-interchange-newline">

--joel</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-3948927373608436173WordSection1"><p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Regards,<u></u><u></u></p>
<p class="MsoNormal">Aaron<u></u><u></u></p>
</div>
</div>

<br>______________________________<wbr>_________________<br>
users mailing list<br>
<a href="mailto:users@rtems.org">users@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/<wbr>mailman/listinfo/users</a><br></blockquote></div><br></div></div>