This paper presents the trials, tribulations, experiences, and discoveries made during my eight week REU research project at the University of Iowa. My project revolved around real-time systems, and in particular, their application to the control of stepping motors. We then delved into porting this system and the applications we developed from UNIX over to Linux and ultimately to a bare PC as stand-alone code. Along the way we struggled with various incompatibilities with operating systems and compilers, lack of access to the parallel port on a Linux PC, and problems associated with booting without a standard operating system. Real-time systems must generate the desired outputs from given inputs, but the time at which these results are produced and delivered is of equal importance.
Every task has a deadline associated with it.
Our efforts focused on creating a basic, general purpose real-time model, so the handling and avoidance of such timing faults are left as a matter for the user. To create real-time applications or any application for that matter, it's nice to be able to view problems and hardware facilities in an abstract manner. The structure and syntax of Amulet are inspired by the parallel programming language Charm developed at the University of Illinois. Amulet is based in C, and the typical Amulet application consists of C code blocks nestled in Amulet constructs. Chares are similar to objects in an object-oriented language.