OpenEdv-开源电子网

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

【求助】C语言的内存管理与UCOS的内存管理有什么区别

[复制链接]

20

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
605
金钱
605
注册时间
2017-7-14
在线时间
116 小时
发表于 2017-10-23 09:41:18 | 显示全部楼层 |阅读模式
1金钱
问题如题。

最佳答案

查看完整内容[请看2#楼]

嗯,是会产生碎片。可以参考FreeRTOS的内存管理,heap4就提供了内存碎片处理方法的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-10-23 09:41:19 | 显示全部楼层
SimpleLife 发表于 2017-10-23 10:28
刚刚看了UCOS内存管理,固定的存储块大小,感觉不太适合使用。
原子历程中,可以申请指定大小的内存,使 ...

嗯,是会产生碎片。可以参考FreeRTOS的内存管理,heap4就提供了内存碎片处理方法的
开往春天的手扶拖拉机
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-10-23 10:08:28 | 显示全部楼层
本帖最后由 zuozhongkai 于 2017-10-23 10:10 编辑

C语言的内存管理是C库自带的,功能比较强大,但是实现复杂,用在单片机系统中开销较大。因此就有人想到为单片机系统做个专门的、简单的、底开销的内存管理。这个工作一般都是RTOS操作系统厂家做的(当然了,你也可以自己做个内存管理,比如我们例程里面提供的内存管理试验),而且内存管理是RTOS系统必备的组件,所以UCOS里面也有了内存管理,这个管理方法比较简单,用在单片机上很适合。从用户的使用角度来看,每有区别都是调用malloc函数申请一段内存,用完以后调用free函数释放内存。但是UCOSIII里面的内存管理太粗糙了。
回复

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4356
金钱
4356
注册时间
2017-5-30
在线时间
578 小时
发表于 2017-10-23 10:20:50 | 显示全部楼层
zuozhongkai 发表于 2017-10-23 10:08
C语言的内存管理是C库自带的,功能比较强大,但是实现复杂,用在单片机系统中开销较大。因此就有人想到为单 ...

请问一下 OS_ERR err说我未定义是怎么个情况,我下载别人的DEMO创建的任务里面就没有报错, 我自己创建新的线程就说我未定义
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-10-23 10:28:04 | 显示全部楼层
whj467467274672 发表于 2017-10-23 10:20
请问一下 OS_ERR err说我未定义是怎么个情况,我下载别人的DEMO创建的任务里面就没有报错, 我自己创建新 ...

提示没有定义,还有检查你的头文件包含,看看OS_ERR的定义在哪个.h文件里面!如果提示cpu_sr未定义的话就调用函数CPU_SR_ALLOC()。
开往春天的手扶拖拉机
回复

使用道具 举报

20

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
605
金钱
605
注册时间
2017-7-14
在线时间
116 小时
 楼主| 发表于 2017-10-23 10:28:36 | 显示全部楼层
zuozhongkai 发表于 2017-10-23 10:08
C语言的内存管理是C库自带的,功能比较强大,但是实现复杂,用在单片机系统中开销较大。因此就有人想到为单 ...

刚刚看了UCOS内存管理,固定的存储块大小,感觉不太适合使用。
原子历程中,可以申请指定大小的内存,使用起来很方便,
那么?请问这样子是否会容易产生内存碎片?

回复

使用道具 举报

20

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
605
金钱
605
注册时间
2017-7-14
在线时间
116 小时
 楼主| 发表于 2017-10-23 11:19:57 | 显示全部楼层
zuozhongkai 发表于 2017-10-23 10:56
嗯,是会产生碎片。可以参考FreeRTOS的内存管理,heap4就提供了内存碎片处理方法的

ok,thanks,
回复

使用道具 举报

16

主题

339

帖子

0

精华

高级会员

Rank: 4

积分
826
金钱
826
注册时间
2017-6-18
在线时间
163 小时
发表于 2017-10-24 13:23:41 来自手机 | 显示全部楼层
原子的是 内存堆,内存池技术的终合版,对于大内存处理太慢, 跟C库的还是有很大区别
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-27 01:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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