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;