On Hubris and Humility
I missed the launch and I didn&#x27;t read the code. I&#x27;ve worked with RTOSes in the past and I feel the pain, but memory corruption and the like are not my primary concerns while writing code. From the top of my head I might ask:<p>Interrupts: they are dispatched, so does the program has to go back to &quot;main&quot; loop to handle an interrupt or are they executed in the peripheral interrupt context? What is the &quot;time-to-serve-an-interrupt&quot; in Hubris (real-time wise)? How is it guaranteed?<p>Also, how shared interrupt are handled and dispatched (interrupts like  EXTI10_15)? Is there something that deals with (or prevents me from) requesting an interrupt for PA10 AND PB10?<p>Drivers: are isolated, this means that my MCU with 4 UARTs needs 4 instances of the same code (each for every UART)?<p>Isolation: there are a lot of ways to make an embedded system misbehave other than corrupting memory, for example, what about a situation in which a task leaves (one, some, all) interrupts disabled? Unless the OS won&#x27;t let me fiddle with interrupts, which is bad (for a driver that goes into a &quot;everybody, shut up! I&#x27;m reading a Dallas button&quot; situation, with interrupts disabled).<p>Is there something in Hubris that protects me from starvation? Like an interrupt being fired constantly, making the system 100% busy? This is not a crash, and other tasks may not even notice about the misbehavior since they might not be even scheduled.<p>Also: the word &quot;priority&quot; is mentioned once in the article. What is the scheduling policy?<p>What resources is Hubris using? SysTick? PendSV?