Posts

Modern Embedded System Programming: Beyond the RTOS

An RTOS (Real-Time Operating System) is the most universally accepted way of designing and implementing embedded software. It is the most sought-after component of any system that outgrows the venerable "Super loop". But it is also the design strategy that implies a certain programming paradigm, which leads to particularly brittle designs that often work only by chance. That paradigm is sequential programming based on blocking . What is blocking? Blocking occurs any time you wait explicitly in line for something to happen. All RTOS provides an assortment of blocking mechanisms, such as time-delays, semaphores, event flags, mailboxes, message queues, and so on. Every RTOS task, structured as an endless loop, must use at least one such blocking mechanism, or else it will take all the CPU cycles. Typically, however, tasks block not in just one place in the endless loop, but in many places scattered throughout various functions called from the task routine. For example, in on...
Recent posts