osThreadNew - создание новой задачи в CMSIS-RTOS2
Создает новую задачу и добавляет её в список задач, готовых к работе (READY).
osThreadId_t osThreadNew (osThreadFunc_t func,
void *argument,
const osThreadAttr_t *attr);
Параметры
func
thread function
Имя функции-задачи (имя функции точки входа (entry point) в задачу).
/// Entry point of a thread.
typedef void (*osThreadFunc_t) (void *argument);
В C/C++ идентификатор имени функции одновременно является и указателем на функцию, указывает на адрес размещения этой функции в памяти.
*argument
pointer that is passed to the thread function as start argument
Указатель на передаваемые в функцию-задачу аргументы.
Аргументы передаются один раз при запуске задачи.
*attr
thread attributes; NULL: default values
Указатель на структуру, содержащую атрибуты (свойства) задачи.
Если NULL, то используются значения по умолчанию
/// Attributes structure for thread.
typedef struct {
const char *name; /// name of the thread
uint32_t attr_bits; /// attribute bits
void *cb_mem; /// memory for control block
uint32_t cb_size; /// size of provided memory for control block
void *stack_mem; /// memory for stack
uint32_t stack_size; /// size of stack
osPriority_t priority; /// initial thread priority (default: osPriorityNormal)
TZ_ModuleId_t tz_module; /// TrustZone module identifier
uint32_t reserved; /// reserved (must be 0)
} osThreadAttr_t;
Возвращаемое значение
osThreadId_t
ThreadID identifies the thread
Идентификатор задачи (тип значения - osThreadId_t).
/// \details Thread ID identifies the thread.
typedef void *osThreadId_t;