CMSIS-RTOS2 文档翻译 之 参考(RTX5 特定的 API 之 宏定义)

宏定义

RTX5 宏定义。更多...

宏定义

#define osRtxThreadCbSize   sizeof(osRtxThread_t)
 线程控制块大小。更多...
 
#define osRtxTimerCbSize   sizeof(osRtxTimer_t)
 定时器控制块大小。更多...
 
#define osRtxEventFlagsCbSize   sizeof(osRtxEventFlags_t)
 事件标志控制块大小。更多...
 
#define osRtxMutexCbSize   sizeof(osRtxMutex_t)
 互斥锁控制块大小。更多...
 
#define osRtxSemaphoreCbSize   sizeof(osRtxSemaphore_t)
 信号量控制块大小。更多...
 
#define osRtxMemoryPoolCbSize   sizeof(osRtxMemoryPool_t)
 内存池控制块大小。更多...
 
#define osRtxMessageQueueCbSize   sizeof(osRtxMessageQueue_t)
 消息队列控制块大小。更多...
 
#define osRtxMemoryPoolMemSize(block_count, block_size)   (4*(block_count)*(((block_size)+3)/4))
 内存池内存大小。更多...
 
#define osRtxMessageQueueMemSize(msg_count, msg_size)   (4*(msg_count)*(3+(((msg_size)+3)/4)))
 消息队列内存大小。更多...
 

描述

宏定义文档

#define osRtxThreadCbSize   sizeof(osRtxThread_t)

该宏定义公开了 RTX5 线程控制块所需的最小内存量,请参阅 osThreadAttr_t :: cb_mem 和 osThreadAttr_t :: cb_size 。

例:

// Used-defined memory for thread control block
static uint32_t thread_cb[ osRtxThreadCbSize/4U];
#define osRtxTimerCbSize   sizeof(osRtxTimer_t)

该宏定义公开了 RTX5 定时器控制块所需的最小内存量,请参阅 osTimerAttr_t :: cb_mem 和 osTimerAttr_t :: cb_size 。

例:

// Used-defined memory for timer control block
static uint32_t timer_cb[ osRtxTimerCbSize/4U];
#define osRtxEventFlagsCbSize   sizeof(osRtxEventFlags_t)

此宏定义公开了 RTX5 事件标志控制块所需的最小内存量,请参阅 osEventFlagsAttr_t :: cb_mem 和 osEventFlagsAttr_t :: cb_size 。

例:

// Used-defined memory for event flags control block
static uint32_t evflags_cb[ osRtxEventFlagsCbSize/4U];
#define osRtxMutexCbSize   sizeof(osRtxMutex_t)

该宏定义公开了 RTX5 互斥锁控制块所需的最小内存量,请参阅 osMutexAttr_t :: cb_mem 和 osMutexAttr_t :: cb_size 。

例:

// Used-defined memory for mutex control block
static uint32_t mutex_cb[ osRtxMutexCbSize/4U];
#define osRtxSemaphoreCbSize   sizeof(osRtxSemaphore_t)

此宏定义公开了 RTX5 信号量控制块所需的最小内存量,请参阅 osSemaphoreAttr_t :: cb_mem 和 osSemaphoreAttr_t :: cb_size 。

例:

// Used-defined memory for semaphore control block
static uint32_t sema_cb[ osRtxSemaphoreCbSize/4U];
#define osRtxMemoryPoolCbSize   sizeof(osRtxMemoryPool_t)

该宏定义公开了 RTX5 内存池控制块所需的最小内存量,请参阅 osMemoryPoolAttr_t :: cb_mem 和 osMemoryPoolAttr_t :: cb_size 。

例:

// Used-defined memory for memory pool control block
static uint32_t timer_cb[ osRtxMemoryPoolCbSize/4U];

#define osRtxMessageQueueCbSize   sizeof(osRtxMessageQueue_t)

此宏定义公开了 RTX5 消息队列控制块所需的最小内存量,请参阅 osMessageQueueAttr_t :: cb_mem 和 osMessageQueueAttr_t :: cb_size 。

例:

// Used-defined memory for message queue control block
static uint32_t msgqueue_cb[ osRtxMessageQueueCbSize/4U];
#define osRtxMemoryPoolMemSize( block_count,
   block_size 
 )    (4*(block_count)*(((block_size)+3)/4))

内存大小(字节)用于内存池存储。

该宏定义公开了 RTX5 内存池内存所需的最小内存量,请参阅 osMemoryPoolAttr_t :: mp_mem 和 osMemoryPoolAttr_t :: mp_size 。

例:

// Maximum number of objects
#define OBJ_COUNT 8U
// Object type
typedef struct {
uint32_t value1;
uint8_t value2;
} object_t;
// Used-defined memory for memory pool memory
static uint32_t mempool_cb[ osRtxMemoryPoolMemSize(OBJ_COUNT, sizeof(object_t))/4U];
参数
block_count内存池中的最大内存块数。
block_size内存块大小以字节为单位。
#define osRtxMessageQueueMemSize( msg_count,
   msg_size 
 )    (4*(msg_count)*(3+(((msg_size)+3)/4)))

消息队列存储的内存大小(以字节为单位)。

该宏定义公开了 RTX5 消息队列内存所需的最小内存量,请参阅 osMessageQueueAttr_t :: mq_mem和osMessageQueueAttr_t :: mq_size 。

例:

// Maximum number of messages
#define MSG_COUNT 16U
// Message data type
typedef struct {
uint32_t value1;
uint8_t value2;
} msg_item_t;
// Used-defined memory for message queue
static uint32_t mq_mem[ osRtxMessageQueueMemSize(MSG_COUNT, sizeof(msg_item_t))/4U];
参数
msg_count队列中消息的最大数量。
msg_size最大消息大小以字节为单位

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值