-
Notifications
You must be signed in to change notification settings - Fork 249
/
realtime.txt
40 lines (32 loc) · 2.13 KB
/
realtime.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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.