REALTIME Circle is not a real-time OS. That means different simultaneous operations may interfere in respect of its timing behaviour. Nevertheless Circle can be used to implement applications which have specific requirements regarding the interrupt (IRQ) latency. So it is known that Circle has been used to implement a solution to control light equipment using DMX512. This application requires an interrupt latency of some microseconds which is met by Circle. If you want to implement real-time applications using Circle you should pay attention to the following things: * You must not use USB low- or full-speed devices (e.g. USB keyboard, mouse). Because of the way their support is implemented, the interrupt latency is raised very much when such a device is used. To ensure that those devices will be ignored if they are occasionally attached you should enable the #define REALTIME in include/circle/sysconfig.h. If using USB low- or full-speed devices is required for your application on the Raspberry Pi 1-3, you should enable the #define USE_USB_SOF_INTR together with REALTIME. * Writes to the screen or serial device may noticeable raise the interrupt latency too. If REALTIME is defined this influence is relatively small, but writes from IRQ_LEVEL will be ignored then. This is the reason, why sample/ 08-usbkeyboard and 27-usbgamepad do not work with the REALTIME option. * If you rely on a small IRQ latency, USE_SDHOST should be disabled in include/ circle/sysconfig.h. WLAN access is not possible parallel to SD card access then on Raspberry Pi 3 and Zero W. * The GPIO block of the Raspberry Pi is able to output data with up to about 60 MHz (32-bit words) and to input data with up to about 15 MHz. The exact rates depend on the Raspberry Pi model and the system clock. * The system clock of the ARM CPU on the Raspberry Pi in a bare metal environment is normally less than the nominal maximum system clock. It is 700 MHz on the Raspberry Pi 1 and Zero and 600 MHz on the Raspberry Pi 2 and 3. If you need the full speed of your Raspberry Pi, you can use the class CCPUThrottle to switch the system clock up. This is demonstrated in the sample/26-cpustress.