共2条
1/1 1 跳转至页
ARM,heap 关于ARM初始化中heap的大小分配?

问
谁能告诉我ARM的heap分配的大小是考什么来确定的。还有他是分配给谁用的
答 1:
你准备使用malloc/free这两个函数吗?
答 2:
暂时还不用,但我想知道这个区是做什么的是不是heap这个区就是malloc/free这二个函数的最大分配内存和释放内存的空间大小啊!还有其它的用途吗?
答 3:
堆栈,有堆和栈之分,也就是一块区域的两头,调用函数会出入栈,MALLOC 动态分配内存,这个内存当然不能从栈里面分了,所以只能从堆里面来分。
ADS 不知道你的堆和栈具体地址在哪里,也不晓得究竟分多大,所以要你自己来搞定,HEAP 就是堆的初始化。
如果你不用动态分配(没有MMU的管理一般不建议用MALLOC)就不用设置堆了,
EXPORT __user_initial_stackheap
__user_initial_stackheap
MOV R0, #0
MOV PC, LR
即可,这里提供 __user_initial_stackheap 函数实际上是利用了类似C++ 的函数重载的技术,有ADS C 编译器支持。
具体见 ADS 的 C 编译器手册。ADS 目录下的 PDF 文件夹 答 4: 谢谢,看完的你的解释我已经明白了。现在我明白了heap的用处了。随便问一句关于__user_initial_stackheap函数的问题。我知道在这个函数中R0是用来存放heap的基址的,R2是存放其长度限制的。我想问的是这个长度限制值是heap的长度呢?还是heap的结束地址?还有编译器是怎么使用这个长度限制变量的,怎么办判断是否超出了分配的长度,如果超出了长度限制什么有什么提示,或处理器会进入什么状态。还有这个函数里还一个堆的基址寄存器R1,他这个堆的基址寄存器是按向上增长的,还是按向下生长的基址来赋初始地址。还是他能够区分出堆是怎么生长的,怎么处理才可以区分出。我现在这个函数这个寄存器没有赋值,一赋值堆的空间就不对了(用的是LPC2210,堆是向下增长的)。希望能够帮我解答一下,谢谢!
ADS 不知道你的堆和栈具体地址在哪里,也不晓得究竟分多大,所以要你自己来搞定,HEAP 就是堆的初始化。
如果你不用动态分配(没有MMU的管理一般不建议用MALLOC)就不用设置堆了,
EXPORT __user_initial_stackheap
__user_initial_stackheap
MOV R0, #0
MOV PC, LR
即可,这里提供 __user_initial_stackheap 函数实际上是利用了类似C++ 的函数重载的技术,有ADS C 编译器支持。
具体见 ADS 的 C 编译器手册。ADS 目录下的 PDF 文件夹 答 4: 谢谢,看完的你的解释我已经明白了。现在我明白了heap的用处了。随便问一句关于__user_initial_stackheap函数的问题。我知道在这个函数中R0是用来存放heap的基址的,R2是存放其长度限制的。我想问的是这个长度限制值是heap的长度呢?还是heap的结束地址?还有编译器是怎么使用这个长度限制变量的,怎么办判断是否超出了分配的长度,如果超出了长度限制什么有什么提示,或处理器会进入什么状态。还有这个函数里还一个堆的基址寄存器R1,他这个堆的基址寄存器是按向上增长的,还是按向下生长的基址来赋初始地址。还是他能够区分出堆是怎么生长的,怎么处理才可以区分出。我现在这个函数这个寄存器没有赋值,一赋值堆的空间就不对了(用的是LPC2210,堆是向下增长的)。希望能够帮我解答一下,谢谢!
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 |