新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 将8051应用程序迁移到ARM Cortex-M处理器上

将8051应用程序迁移到ARM Cortex-M处理器上

作者:时间:2012-09-12来源:网络收藏

堆栈内存

堆栈内存操作是内存架构的重要组成部分。在8051中,堆栈指针只有8位,同时堆栈位于内部的内存空间(上限为256个字节,并由工作寄存器(四个各由R0至R7构成的寄存器库)和内部数据变量共享)。堆栈操作基于空递增模型。

与8051不同的是,A RM Cor tex-M使用系统内存作为堆栈,采用满递减模型。

满递减堆栈内存模型更受C语言的支持。例如,微控制器中的SRAM的使用可组织为:

使用动态分配内存空间的C库和通常需要堆内存。

尽管C o r tex-M的每次压栈需要32位的堆栈内存,总的R A M使用仍然要比8051小。8051的变量通常是静态地放在IDATA上,而处理的局部变量是放在堆栈内存上的,因此,只有当函数执行的时候,局部变量才会占用RAM空间。

此外, 提供有第二个堆栈指针,以允许操作系统内核和进程堆栈使用不同的堆栈内存。这使得操作更可靠,也使操作系统设计更高效。(堆栈指针切换是自动处理的)8051中的很多外设是通过特殊功能寄存器 (S F R) 来控制的。由于S F R空间只有128个字节,而且其中一些已经为处理器寄存器和标准外设所占用,剩余的S F R地址空间通常非常有限,因此也就限制了可通过S F R控制的外设数量。虽然可以通过外部内存空间来控制外设,但是与S F R存取相比,外部存取通常需要更多的开销(需要将地址复制到DPTR,数据必须通过ACC传输)。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭