Table 1: Common uCR Object Types
Table summarizes the core set of types, plus a few others. Notice that this list is very short indeed. The uCR core really exists to provide a runtime context for the C++ program, and not to provide a lot of features. However, the thread and heap support tends to be compiler and CPU specific so must be provided in the core.
Device drivers are not required by the compiler, or by uCR, but some types of devices are common enough to offer in a packaged library some classes to help the programmer. The BUS, Ticker and LED classes are examples of class library support for devices. The list of device types here is not exhaustive. By putting device support in a library instead of a kernel, the drivers can be brought in by the linker automatically if the device is used by a program.