将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上,而ARM处理的局部变量是放在堆栈内存上的,因此,只有当函数执行的时候,局部变量才会占用RAM空间。

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

1 2

关键词: 处理器 Cortex-M ARM 迁移 应用程序

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版