嵌入式学习小组
直播中

吕昊

7年用户 235经验值
私信 关注

请问邮箱什么时候占用RAM和释放RAM?

ucosii启动两个任务分别在不同的.c中,两个任务通过邮箱传递数据,uCOSII消息邮箱的变量为.c局部静态变量,求教邮箱什么时候占用RAM和释放RAM?

回帖(8)

张瑞

2019-10-25 07:10:12
你定义邮箱的时候只占用一个消息邮箱结构体的ram,UCOS中的消息引用是指针引用,传递的是你消息的首地址,UCOS不管你的消息释放,你可以自己决定什么时候申请和释放
举报

曹珉

2019-10-25 07:15:36
使用消息邮箱的时候一定要确保你的消息可见性,你的消息如果是用了static设置为静态的话应该是不会出问题的。发送消息的时候一般都是使用动态内存管理申请一段内存存放消息,等消息被发送并且正确的处理以后在释放掉这部分内存。当然你也可以做一个全局数组来存放数据。
举报

刘继牛

2019-10-25 08:16:55
ucos的内存块是静态变量还是全局变量呢?用系统的内存块RAM的开销是不是增大了很多?ucos的内存以前也是用static开辟空间,没发现什么问题。
static OS_MEM   *MemCB;                //内存块
static uint8_t  Mem_Buff[10][100];   //内存分区
举报

毕雅静

2019-10-25 08:27:20
消息的可见性就是你的消息在被最终处理完成都是在ram中实际存在的,不会被释放掉,static就是将一变量定义为静态变量,这样在退出函数的时候不会释放掉这个变量的内存。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分