Publication Date


Type of Culminating Activity


Degree Title

Master of Science in Computer Engineering


Electrical and Computer Engineering

Major Advisor

Sin Ming Loo, Ph.D.


Embedded Systems can be found in devices that people use every day. In the pursuit of faster and smarter devices, more powerful processing units are needed in these embedded systems. A key component of powerful processing units is the supporting software. While the raw processing power of microcontroller has been continually advancing, the improvements in the supporting software for medium scale embedded systems have been lacking. This thesis focuses on improving the software on medium scale systems by discussing the practical application of non-blocking coding techniques. The basic concept of how non-blocking code improves the performance of a system is relatively easy to understand. However, non-blocking code is considerably more challenging to implement in practice. This thesis shows that, by utilizing some commonly known coding techniques and practices together in a systematic manner, it is possible to obtain practical non-blocking software on medium scale embedded systems. It was found that under certain conditions more than 20% of the total processor time can be saved by converting a blocking I2C driver to non-blocking. The freed processing time improved the performance of the network tasks by increasing the throughput from 68% to 100%.