LinuxCNC Documentation

ОПИС

RTAPI — це бібліотека, що забезпечує єдиний API для кількох операційних систем реального часу. Починаючи з LinuxCNC 2.7, підтримуються потоки POSIX та RTAI.

ЗАГОЛОВОЧНІ ФАЙЛИ

rtapi.h

Файл rtapi.h визначає RTAPI як для коду реального часу, так і для коду нереального часу. Це зміна порівняно з Rev 2, де API нереального часу було визначено в ulapi.h і використовувалися інші імена функцій. Символи RTAPI та ULAPI використовуються для визначення режиму компіляції: RTAPI для реального часу та ULAPI для нереального часу.

rtapi_math.h

Файл rtapi_math.h визначає функції та константи з плаваючою комою. Його слід використовувати замість <math.h> у компонентах реального часу rtapi.

rtapi_string.h

Файл rtapi_string.h визначає функції, пов’язані з рядками. Його слід використовувати замість <string.h> у компонентах реального часу rtapi.

rtapi_byteorder.h

Цей файл визначає макроси препроцесора RTAPI_BIG_ENDIAN, RTAPI_LITTLE_ENDIAN та RTAPI_FLOAT_BIG_ENDIAN як істинні або хибні залежно від характеристик цільової системи. Його слід використовувати замість <endian.h> (простір користувача) або <linux/byteorder.h> (простір ядра).

rtapi_limits.h

Цей файл визначає мінімальне та максимальне значення деяких основних цілих типів, таких як INT_MIN та INT_MAX. Його слід використовувати замість <limits.h>, оскільки цей заголовок файлу недоступний для модулів ядра.

МІРКУВАННЯ В РЕАЛЬНОМУ ЧАСІ

Код не в реальному часі

Деякі функції недоступні в коді, що не працює в реальному часі. Це включає функції, які здійснюють прямий доступ до пристроїв, такі як rtapi_inb(3).

Код ініціалізації/очищення

Деякі функції можна викликати лише з коду ініціалізації/очищення в реальному часі. Це включає функції, що виконують розподіл пам’яті, такі як rtapi_shmem_new(3).

Код реального часу

З коду реального часу можна викликати лише кілька функцій. Сюди входять функції, що виконують прямий доступ до пристроїв, такі як rtapi_inb(3). Сюди не входять більшість API ядра Linux, таких як do_gettimeofday(3) та багато API rtapi, таких як rtapi_shmem_new(3).

Симулятор

Щоб модуль RTAPI можна було скомпілювати в середовищі «sim» (імітована система реального часу без спеціальних привілеїв), він не повинен використовувати жодних API ядра Linux і не повинен використовувати API RTAPI для прямого доступу до пристроїв, таких як rtapi_inb(3). Це автоматично включає будь-які драйвери апаратних пристроїв, а також пристрої, які використовують API ядра Linux для таких операцій, як створення спеціальних пристроїв або записів у файловій системі /proc.

КОДИ СТАНУ RTAPI

За винятком випадків, зазначених на окремих сторінках довідки, RTAPI повертає від’ємні значення errno для помилок та невід’ємні значення для успішних виконань.