OpenEdv-开源电子网

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

STM32F103 频繁使用malloc free 会不会死机或跳到硬件上访

[复制链接]

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-8-1
在线时间
9 小时
发表于 2016-12-1 10:38:57 | 显示全部楼层 |阅读模式
1金钱
各位大虾,请问一下在stm32f103 上面频繁使用 标准库的 malloc  和 free 函数会不会造成 死机,或者 硬件上访,如果程序没有问题,频繁使用这两个函数会不会运行不稳定

最佳答案

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

在加一条,中断会不会影响这个函数的执行
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-8-1
在线时间
9 小时
 楼主| 发表于 2016-12-1 10:38:58 | 显示全部楼层
在加一条,中断会不会影响这个函数的执行
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-12-1 10:38:58 | 显示全部楼层
会产生碎片,但是不会是死机。 正常情况下,malloc和free的时候,要禁止中断打断。
回复

使用道具 举报

5

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2016-10-27
在线时间
76 小时
发表于 2016-12-1 11:06:40 | 显示全部楼层
貌似单片机用mallo和free会有问题的,因为内存池存在对齐问题,还有内存碎片问题等等,最好是移植一个内存管理的库
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-12-1 13:21:16 | 显示全部楼层
最好自己移植一个内存管理,自己随时可以查看内存的使用情况,包括碎片等等,这样自己心里有底
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2016-12-1 13:29:22 | 显示全部楼层
使用标准库的malloc和free不会造成死机或hardfault,但是堆空间开辟错误或malloc不到空间但不检查null就使用,会造成死机或硬件上访
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-8-1
在线时间
9 小时
 楼主| 发表于 2016-12-1 16:16:47 | 显示全部楼层
ianhom 发表于 2016-12-1 13:29
使用标准库的malloc和free不会造成死机或hardfault,但是堆空间开辟错误或malloc不到空间但不检查null就使 ...

好的谢谢
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-8-1
在线时间
9 小时
 楼主| 发表于 2016-12-1 16:25:22 | 显示全部楼层
ljz1987cj 发表于 2016-12-1 11:06
貌似单片机用mallo和free会有问题的,因为内存池存在对齐问题,还有内存碎片问题等等,最好是移植一个内存 ...

1. 内存池对齐?
2. 是类似于大小端问题吗?
3. 您的意思是 不同单片机上面 malloc的结果会不一样?
    比如:
    typedef struct{
        char c1;
        char c2;
        int  i;
    }Data;

    Data *pData;
    pData = (Data *)malloc(sizeof(Data));
    pData->c1 = xx;
    pData->c2 = xx;
    pData-> i= xx;
    c51 与 arm 上面 pData 最后的数据会不一样
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-8-1
在线时间
9 小时
 楼主| 发表于 2016-12-1 16:27:47 | 显示全部楼层
关于内存对齐,我百度看一下,谢谢, @ianhom
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 00:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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