osMessageQueueAttr_t - структура атрибутов для создания новой очереди сообщений в CMSIS-RTOS2

Описывает структуру атрибутов, используемых функцией osMessageQueueNew() при создании новой очереди сообщений.

/// Attributes structure for message queue.
typedef struct {
  const char          *name;      /// name of the message queue
  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                *mq_mem;    /// memory for data storage
  uint32_t            mq_size;    /// size of provided memory for data storage
} osMessageQueueAttr_t;

Поля структуры

*name
name of the message queue
Указатель на строку с удобочитаемым именем очереди сообщений (используется при отладке)

По умолчанию: NULL - имя не задано.

attr_bits
attribute bits
Зарезервировано для дальнейшего использования. Должно быть установлено нулевое значение для будущей совместимости.

По умолчанию: 0.

*cb_mem
memory for control block
Указатель на область памяти где размещён блок управления очередью сообщений. Устанавливается в случае распределения памяти пользователем (User-defined Allocation).

По умолчанию: NULL - используется автоматическое распределение памяти (Automatic Dynamic Allocation).

cb_size
size of provided memory for control block
Размер (в байтах) области памяти где размещён блок управления очередью сообщений, передаваемый указателем *cb_mem.

По умолчанию: 0 - используется автоматическое распределение памяти (Automatic Dynamic Allocation) и *cb_mem не передаётся.

*mq_mem
memory for data storage
Указатель на область памяти где размещёны данные очереди сообщений. Устанавливается в случае распределения памяти пользователем (User-defined Allocation).

По умолчанию: NULL - используется автоматическое распределение памяти (Automatic Dynamic Allocation).

mq_size
size of provided memory for data storage
Размер (в байтах) области памяти где размещены данные очереди сообщений, передаваемый указателем *mq_mem.

Минимальный размер блока памяти равен произведению msg_count * msg_size (параметры функции osMessageQueueNew). msg_size округляется до двойного четного числа, чтобы обеспечить 32-разрядное выравнивание блоков памяти.

По умолчанию: 0 - используется автоматическое распределение памяти (Automatic Dynamic Allocation) и *mq_mem не передаётся.