社区
C语言
帖子详情
ARM裸机开发 malloc函数测试中的问题
篱下慢慢路
2018-07-30 03:07:58
由于自己的工程中一直无法成功使用malloc申请动态内存,因此写了一段很简单的malloc动态内存分配测试程序。图中当MaxNum为600时,动态内存申请就失败,malloc返回值为NULL。当MaxNum为较小值是就可以。所以这是一个内存大小限制的问题。我想知道这个内存大小限制在哪里。能否增大这块动态内存申请的区域呢?在网上查阅动态内存空间存放在堆中,请问能否扩大堆的大小? 因为我需要申请多个动态空间内存。希望各位老师和前辈能为我指点一二,这个问题困扰我几天了。
...全文
420
6
打赏
收藏
ARM裸机开发 malloc函数测试中的问题
由于自己的工程中一直无法成功使用malloc申请动态内存,因此写了一段很简单的malloc动态内存分配测试程序。图中当MaxNum为600时,动态内存申请就失败,malloc返回值为NULL。当MaxNum为较小值是就可以。所以这是一个内存大小限制的问题。我想知道这个内存大小限制在哪里。能否增大这块动态内存申请的区域呢?在网上查阅动态内存空间存放在堆中,请问能否扩大堆的大小? 因为我需要申请多个动态空间内存。希望各位老师和前辈能为我指点一二,这个问题困扰我几天了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jack's choice
2019-03-21
打赏
举报
回复
不建议用临时文件代替动态缓存,因为文件的读写操作相比动态内存的访问,非常非常的耗时。可以试着不在堆上申请,在栈上申请,创建一个全局的数组吧
jiqiang01234
2018-08-09
打赏
举报
回复
找到startup.s文件,把堆大小改大
Chuckyuan9527
2018-08-01
打赏
举报
回复
静待结果,我现在也是在学arm,估计也会有如此问题
「已注销」
2018-07-31
打赏
举报
回复
程序内存取决于您的系统,请检查一下您系统heap的大小,最大600实际也就2K多一些,通常应该不会有嵌入平台的物理内存有这么小,检查一下软件环境的配置(具体您的系统我不知道,看看启动代码给heap分配的大小,或lds等等)
另外,测试程序有一处可能会破坏内存的错误:for(I = 0; I < 600; I++) 应该改为for(I = 0; I < MaxNum; I++)更合适一些
weixin_38305120
2018-07-31
打赏
举报
回复
这个和单片机物理内存有关系吧。。在pc上malloc太大照样返回null
赵4老师
2018-07-30
打赏
举报
回复
用临时文件代替动态内存。个人建议。
ufibers:用户空间 Fiberscoroutines 库
它不依赖于任何特殊的操作系统支持,只使用 libc
中
的几个函数(malloc、free 和 exit),因此它应该可以在任何操作系统上运行,甚至可以在
裸机
上运行。 由于 ufibers 部分是用汇编语言编写的,因此它不能在体系...
ARM
裸机
开发
中
内存管理库RT_HEAP的使用
在使用
arm
芯片进行
裸机
开发
的时候,很多时候都需要内存管理的功能,我们可以使用自己写的内存管理程序,也可以直接使用标准库,不过我一般比较喜欢标准库,速度快,今天就来说说在C语言环境下怎么样进行内存的动态...
裸机
malloc实现
在
arm
裸机
程序或者RTOS时,会用到malloc,这里参考某网友实现尽心的
嵌入式
裸机
编程
中
使用malloc、free会怎样?
在嵌入式
裸机
编程
中
,作为一名初级的CODER。经常要与CPU、内存等打交道。CPU作为系统的动力源,其重要程度不言而喻。但是,在
裸机
编程
中
,对内存的管理也不容忽视。如果稍微不注意,轻则,可...
如何为SoC做
ARM
CPU适配——以裸核使用malloc为例
2.3 初始化堆栈指针 跳转到main函数的最终目的,是调用
malloc函数
,而
arm
处理器上执行函数调用势必发生压栈、出栈等堆栈操作,故而需要提前设置好堆栈,于是我们修改 startup.s 为: .set stack_top, 0x2E009000 ...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章