历史上的今天
今天是:2025年03月30日(星期日)
2020年03月30日 | ARM裸机程序开发17(堆栈寻址)
2020-03-30 来源:eefocus
堆栈是一种数据结构,按先进后出的方式工作。使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶
当堆栈指针指向最后压入堆栈的数据时,称为满堆栈,而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈
同时又根据堆栈的生成方式,又可分为递增堆栈和递减堆栈,当堆栈由低地址像高地址生成时,称为递增堆栈。当堆栈由高地址向低地址生成时,称为递减堆栈。这样就有4中堆栈的工作方式。
◎ Full descending 满递减堆栈——FD 堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。 ARM-Thumb过程调用标准和ARM、Thumb C/C++ 编译器总是使用Full descending 类型堆栈。
◎ Full ascending 满递增堆栈——FA 堆栈首部是低地址,堆栈向高地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。
◎ Empty descending 空递减堆栈——ED 堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向下一个将要放入数据的空位置。
◎ Empty ascending 空递增堆栈——EA 堆栈首部是低地址,堆栈向高地址增长。栈指针总是指向下一个将要放入数据的空位置。
在ARM中,一般是满堆栈,堆栈生长方向是从上向下递减的(51相反为递增),在操作系统的一直过程中,与CPU相关部分的一直肯定会涉及到堆栈生长方向的定义。
arm堆栈的组织结构是 满栈降 的形式,满栈即sp是要停留在最后一个进栈元素,降:就是堆栈的增长方向是从高地址向低地址发展
史海拾趣
|
台湾笙科电子AMIC的A7105 是一低成本适用于2.4G 无线 数据通信的收发IC,内含高灵敏度接收 器(-99dBm@250KBPS)及高效功率 放大器,很适合10-40米之内的无线 通信应用 。 A7105的相关参数可通过3/4线SPI设置,最大64字节FIFO,支持CRC(16CRR ...… 查看全部问答> |
|
任意波形发生器是在1975年开发成功的,从此,信号发生器产品增加了一个新品种。在任意波形发生器作为测量用信号激励源进入市场之前,为了产生非正弦波信号,已使用函数发生器提供三角波、斜波、方波和余弦波等几种特殊波形。声音和振动分析需要复杂 ...… 查看全部问答> |
|
本人非计算机专业出身,从事嵌入式应用层软件开发,对软件开发个人觉的国内学C、C++、JAVA等很多,主要是由于这些方面的资料较多,可以通过自己的努力成才。而底层的驱动开发、linux等由于各种条件的局限,或者说国内的精英贡献的资料太少--譬如 ...… 查看全部问答> |
|
美国知名IT杂志《eWeek》网站评选出了2010年的10大失败科技产品,其中塞班操作系统居于首位。 1、塞班移动操作系统 诺基亚的塞班移动操作系统已经失去大量市场份额。 2、黑莓操作系统 RIM在移动市 ...… 查看全部问答> |
|
【低功耗】Altera发布具有安全特性的低功耗新系列Cyclone III LS FPGA 继续扩大在低功耗解决方案上的领先优势,Altera公司今天发布了具有安全特性的低功耗新系列FPGA。新的Altera Cyclone III LS FPGA在单位面积电路板上具有密度最大的逻辑、存储器和DSP资源。这些器件是功耗最低的FPGA,200K逻辑单元(LE)的静态功耗小 ...… 查看全部问答> |




