LinuxCNC Documentation

СИНТАКСИС

#include <hal.h>

int hal_create_thread(const char *name, unsigned long period, int uses_fp);
int hal_thread_delete(const char *name);

АРГУМЕНТИ

ім’я

Назва теми.

period

Інтервал між ітераціями потоку, у наносекундах.

uses_fp

Deprecated and ignored. All threads now unconditionally save and restore floating point state. This parameter will be removed in a future version.

ОПИС

hal_create_thread establishes a realtime thread that will execute one or more HAL functions periodically.

Всі періоди потоків округлюються до цілих кратних періоду апаратного таймера, а період таймера базується на першому створеному потоці. Потоки повинні створюватися в порядку від найшвидшого до найповільнішого. HAL присвоює зменшувані пріоритети потокам, які створюються пізніше, тому створення їх від найшвидшого до найповільнішого призводить до монотонного планування пріоритетів.

hal_delete_thread deletes a previously created thread.

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

Викликати лише з коду ініціалізації реального часу, а не з іншого коду реального часу або нереального часу.

ПОВЕРНЕНЕ ЗНАЧЕННЯ

Повертає код стану HAL.

-EFAULT

The shared memory was not mapped.

-EINVAL

An invalid argument was passed.

-EPERM

HAL is config locked.

-EEXIST

The thread name already exists (hal_create_thread).

-ENOMEM

Failed to allocate memory for thread registration.

-ENOENT

The thread does not exist (hal_thread_delete).

ДИВІТЬСЯ ТАКОЖ