OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3911|回复: 2

mymalloc函数可以在UOCSIII多任务中使用吗?

[复制链接]

12

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-10-19
在线时间
52 小时
发表于 2021-1-29 12:02:08 | 显示全部楼层 |阅读模式
就是现在想在UCOSIII中使用原子的mymalloc函数,多个任务里面都会使用mymaloc,可以直接使用吗,还是需要加信号量保护?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

205

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1322
金钱
1322
注册时间
2015-3-3
在线时间
127 小时
发表于 2021-2-2 09:14:24 | 显示全部楼层

回帖奖励 +50 金钱

由于多任务的ucosiii有可能存在并发的情况,也就是上一个申请换没结束,在空现在另一个任务又去申请内存了,这样就发生了并发错误.操作习惯来讲,最好加上互斥量去做保护,防止这种并发的产生.但有一点需注意,用完内存后,切记释放,一个申请务必对应一个释放.
海纳百川者,荣耀伴一生!
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-1-8
在线时间
13 小时
发表于 2021-2-10 20:42:26 | 显示全部楼层
可以用的,应该是还差一个,task 与 mymalloc 相关的内存块,
第一种用法,在 mymalloc和myfree的时候上锁(简单易用,效率稍微低一点,一般只申请不释放,无所谓)
第二种用法,就是  每个Task 创建一个内存管理控制器  struct _m_mallco_dev mallco_dev。各个任务只调用自己的内存控制器。
第三种用法,创建一个全局的 内存控制器指针,每个TASK有私有的内存控制器,UCOS调度的时候 把全局内存控制器指针指向TASK私有的内存控制器,这样就不用上锁,可以直接用mymalloc了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 17:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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