
Glossary 161
real-time system
Any computer system, embedded or otherwise, that has deadlines. The follow-
ing question can be used to identify real-time systems: is a late answer as bad
as, or even worse than, a wrong answer? In other words, what happens if the
computation doesn’t finish in time? If nothing bad happens, it’s not a real-time
system. If someone dies or the mission fails, it’s generally considered “hard”
real-time, which is meant to imply that the system has “hard” deadlines. Every-
thing in between is “soft” real-time.
recursive
Refers to software that calls itself. Recursion should generally be avoided in an
embedded system because it frequently requires a large stack.
reentrant
Refers to software that can be executed multiple times simultaneously. A reen-
trant function can be safely called recursively or from multiple tasks. The key
to making code reentrant is to ensure mutual exclusion whenever accessing
global variables or shared registers.
register
A memory location that is part of a processor or a peripheral. In other words,
it’s not normal memory. Generally, each bit or set of bits within the register
controls some behavior of the larger device.
relocatable
A file containing object code that is almost ready for execution on the target.
The final step is to use a locator to fix the remaining relocatable addresses
within the code. The result of that process is an executable.
reset ...