楼上几位都说的很清楚了。<br /><br />世上没有无源之水,无本之木。堆,栈,全局区,代码区等等不都是存储空间的一种方式,根据应用的不同场合使用。难道堆的空间可以从天上掉下来。在ARM启动文件中,都可以清楚看到这些空间的分配关系,想看具体一点可以看反汇编,这些空间是如何初始化的,或者map文件。<br /><br />ARM的栈一般分配在ZI之后,堆一般分配在RAM顶端,当然这些地址初始化地址大小都可以设定。然后让编译器根据这些信息自动去调用就完了。真正的难点在于大小的设置,这些要根据你程序本身使用这些空间的大小有关,堆栈的溢出问题是比较麻烦的<br /><br />补充飞:堆容易产生内存碎片,,而ucos是基于固定大小存储块,所以不存在这个问题。<br />周末了,闪人啦。。。。。。。。。
|