Simplifying Embedded System Development Through Whole-Program Compilers
William P. McCartney · EngagedScholarship @ Cleveland State University (Cleveland State University) · 2011
As embedded systems embrace ever more complicated microcontrollers, they present both new capability and new complexity.To simplify their development, some lessons of computer application development will translate with additional work.This thesis offers one such translation.It shows how whole-program compilersthose that broadly analyze a program's entire source code -can achieve performance gains and remove faults in embedded system applications.In so doing, this yields a novel stackless threading system named UnStacked C. UnStacked C enables cooperative multithreading without the risk of stack overflows in embedded system applications.We also propose a novel preemption system called Lazy Preemption.UnStacked C with Lazy Preemption enables stackless preemptive multithreading in embedded systems.These remove the possibility of thread stack overflows, but also significantly reduces the memory required for multithreading in embedded systems.