硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4679|回复: 5
收起左侧

[CMSIS-RTOS] 内存池 消息队列

[复制链接]

29

主题

177

回帖

264

积分

高级会员

积分
264
发表于 2021-3-30 18:40:54 | 显示全部楼层 |阅读模式
QQ截图20120330183652.bmp
内存池 + 消息队列 = RTX4里面的消息邮箱????硬汉
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-3-31 09:13:29 | 显示全部楼层
RTX5            RTX4
内存池    =   类似一个动态内存管理
消息队列  =  消息邮箱
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-3-31 09:28:35 | 显示全部楼层
动态内存管理有什么好处?  感觉一般程序用不上内存管理
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-3-31 14:08:12 | 显示全部楼层
wlx18682353162 发表于 2021-3-31 09:28
动态内存管理有什么好处?  感觉一般程序用不上内存管理

对一般用不上,像MP3编解码器,jpeg解码器,cJSON等需要用到
回复

使用道具 举报

29

主题

177

回帖

264

积分

高级会员

积分
264
 楼主| 发表于 2021-4-1 15:30:43 | 显示全部楼层
Exercise 18 Zero Copy Mailbox
你这个实例看了  里面包含内存池和消息队列
typedef struct {
    uint8_t MsgData[320];
} Msg01_t;
osMessageQueueId_t MsgQueue01;
osMemoryPoolId_t mpool01;


        //Create and Initialize a Memory Pool object.
        mpool01 = osMemoryPoolNew(16, sizeof(Msg01_t), NULL); // 比如上面结构体里面定义了一个320字节的数组   那么内存块大小就是320字节  16就是16个块  是这么理解吧、??   
        //Create and Initialize a Message Queue object.
        MsgQueue01 = osMessageQueueNew(16, 4, NULL );  

       那我现在消息队列的单个消息大小也是320字节,那么队列的最大数量是16的话
       MsgQueue01 = osMessageQueueNew(16, 320, NULL );  那么创建消息队列的参数这么设置有没有问题?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-4-2 08:51:02 | 显示全部楼层
wlx18682353162 发表于 2021-4-1 15:30
Exercise 18 Zero Copy Mailbox
你这个实例看了  里面包含内存池和消息队列
typedef struct {

可以的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 09:09 , Processed in 0.306818 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表