嵌入式技术论坛
直播中

刘润生

7年用户 753经验值
私信 关注
[问答]

不知道DFS操作为什么会与rt_malloc发生冲突呢?

使用原生DFS文件系统elm,挂载OK,跑所有文件系统例程OK。在应用中,有时候读写文件需要创建一个很大的内存在存储数据缓存。直接复制例程过来,中间插入动态内存分配,发现只要涉及文件操作的API均一定会失败。实在不知道为什么,论坛上也没找到类似的问题。
2.jpg

回帖(2)

韩刚龙

2023-3-14 10:41:51
发现,文件操作如果需要使用变量缓冲,只能使用局部变量,不可以使用全局变量,不可以使用动态内存分配。
w_buff若是全局变量, 且 在 open 函数返回值成功后 调用写函数,传入w_buff。 这样open函数永远返回失败。程序执行指针根本就没执行到写函数,open竟然能知道因为我的w_buff是全局变量,直接返回错误。当我把写函数那句话注释掉,就可以通过了(文件操作不能涉及全局变量,尽管还没被调用)。各位大佬求告诉我这是什么原理。open怎么知道我的w_buff是全局??
举报

张伟

2023-3-14 10:42:10
这类首先想到的是,内存是否够用。不折腾代码很久了,如果是我来操刀,肯定可以把这个内存使用情况搞得清清楚楚的,然后把内存占用压下去sleepy
举报

更多回帖

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