共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |