当前位置:首页 > 单片机 > 单片机
[导读] Cortex-M处理器系列包括广泛使用的Cortex-M3处理器、针对FPGA的Cortex-M1处理器、2009年初推出的Cortex-M0处理器(最小的 ARM 处理器)和2010年初推出的 C o r tex-M4处理器(支持浮点和数字信号处理增强

Cortex-M处理器系列包括广泛使用的Cortex-M3处理器、针对FPGA的Cortex-M1处理器、2009年初推出的Cortex-M0处理器(最小的 ARM 处理器)和2010年初推出的 C o r tex-M4处理器(支持浮点和数字信号处理增强指令)。这些处理器具有先进的功能特点和简单易用的编程模型,对于想从8051微控制器迁移到ARM架构的开发人员来说,极具吸引力。本文是一篇入门指南,目的是帮助8051微控制器的开发人员了解8051和A R M Cor tex-M处理器系列在架构、软件和硬件设计上的主要差异,从而加快迁移过程。


架构概述

对于一些嵌入式程序员(尤其是那些习惯使用汇编语言编程的程序员),首先要做的事情就是了解编程模型。

寄存器

ARM Cortex-M处理器具有一个32位寄存器库和一个xPSR(组合程序状态寄存器)。而8051具有ACC(累加器)、B、DPTR(数据指针)、P SW(处理器状态字)和四个各含八个寄存器的寄存器库 (R0-R7)。

在8051中,一些指令会频繁使用某些寄存器,如ACC和 DPTR。

这种相关性会极大降低系统的性能,而在ARM处理器中,指令可使用不同的寄存器来进行数据处理、内存存取和用作内存指针,因此不会有这个问题。

从根本上说,ARM 架构是一个基于加载(Load)和存储(STore)的RI S C架构,处理器寄存器加载数据,然后将数据传给A LU进行单周期执行。而8051寄存器(ACC、B、PSW、SP和DPTR)可在SFR(特殊功能寄存器)的内存空间中访问。

为了确保普通的C函数能够用作中断处理程序,在需要处理中断时,C o r t e x- M的寄存器(R 0 - R 3、R12、L R、P C和xPSR)会被自动压入堆栈,而软件仅需在必要时将其他寄存器压入堆栈。虽然8051具有4个寄存器库,但是ACC、B、D P T R和PSW寄存器并不会自动压栈,因此通常需要通过中断处理程序对这些寄存器进行软件压栈。

寄存器

ARM处理器具有32位寻址,可实现一个4GB的线性内存空间。该内存空间在结构上分成多个区。每个区都有各自的推荐用法(虽然并不是固定的)。统一内存架构不仅增加了内存使用的灵活性,而且降低了不同内存空间使用不同数据类型的复杂性。

相反地,8051微控制器具有多个内存空间。内存空间的分割使得有效地利用全部内存空间变得困难,而且需要借助C语言扩展来处理不同的内存类型。

8 0 51在外部R A M内存空间上最高支持* K B的程序内存和64K B的数据内存。理论上,可以利用内存分页来扩展程序内存大小。不过,内存分页解决方案并未标准化,换句话说,不同8051供应商的内存分页的实现并不相同。这不仅会增加软件开发的复杂性,而且由于处理页面切换所需的软件开销,还会显着降低软件性能。

在AR M C or tex-M3或M4上,S R A M区和外设区都提供了一个1MB的位段区(bit band regiON)。此位段区允许通过别名地址访问其内部的每个位。由于位段别名地址只需通过普通的内存存取指令即可访问,因此C语言完全可以支持,不需要任何特殊指令。而8051提供了少量的位寻址内存(内部R A M上16字节和S F R空间上16字节)。处理这些位数据需要特殊指令,而要支持此功能,C编译器中需要C语言扩展。

A R M C o r t ex-M处理器的内存映射包含多个内置外设块。例如,ARM Cortex-M处理器的一个特性是具有一个嵌套矢量中断控制器 (NVIC) 。此外,系统区中内存映射有数个指定控制寄存器和调试组件,以确保优异的中断处理并极大方便开发人员使用。

堆栈内存

堆栈内存操作是内存架构的重要组成部分。在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传输)。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

C语言是一种广泛应用于软件开发领域的编程语言。它是由贝尔实验室的Dennis Ritchie在20世纪70年代初创建的,旨在为UNIX操作系统的开发提供一种高级编程语言。C语言具有简洁、高效、可移植性强等特点,因此成为了...

关键字: C语言 操作系统 应用程序

洛杉矶、马德里和墨西哥城2023年8月30日 /美通社/ -- 如今,父母和看护者越来越担心孩子们的屏幕暴露和屏幕互动。 为指导父母为家人做出理想的屏幕时间决策,排名第一的儿...

关键字: LINGO BSP 应用程序 COM

瓦努阿图维拉港2023年8月28日 /美通社/ -- Vantage(或"Vantage Markets")欣然宣布在Vantage应用程序上推...

关键字: GE AN 信号 应用程序

(全球TMT2023年8月14日讯)亚马逊云科技日前宣布在以色列(特拉维夫)推出亚马逊云科技基础设施区域。亚马逊云科技的区域由一个地理区域内的多个相互独立、且在物理上分隔的可用区组成。亚马逊云科技以色列(特拉维夫)区域...

关键字: 亚马逊 应用程序 开发者 数据中心

北京——2023年8月14日 亚马逊云科技日前宣布在以色列(特拉维夫)推出亚马逊云科技基础设施区域。新的亚马逊云科技区域将为开发者、初创公司、创业人士和企业,以及政府机构、教育和非营利组织提供更多运行其应用程序的选择,他...

关键字: 亚马逊 应用程序 云技术

据业内消息,近日国家工信部印发了《工业和信息化部关于开展移动互联网应用程序备案工作的通知》,并表示在广泛征集APP主办者等互联网信息服务提供者、网络接入服务提供者、应用分发平台、智能终端生产企业等各方意见的基础上,组织开...

关键字: 工信部 应用程序 App 小程序

Amazon Entity Resolution利用机器学习帮助企业匹配和连接存储在多个应用程序、渠道和数据存储系统中的记录 ActionIQ、Amazon Ads、Best Western、LiveRamp、...

关键字: RESOLUTION 亚马逊 机器学习 应用程序

提供单一窗口、端到端解决方案,实现按需、实时、可靠和可扩展的多云连接;为下一代全球企业带来快速、无缝、智能的连接 印度孟买2023年8月4日 /美通社/ -- 全球数字生态系统推动者Tata Communication...

关键字: COMMUNICATIONS MULTI NEC 应用程序

移位寄存器有不同的版本,可用于各种各样的应用程序。本文将向您介绍移位寄存器并说明它们的工作原理。此外,它还将解释如何将它们用于将多条并行数据线转换为单个串行连接。

关键字: 移位寄存器 串行 应用程序

Telkomsel 是印度尼西亚运营商的领先者,拥有 1.7 亿用户,在使用了 SoftAtHome 的"Eyes'ON"解决方案之后,其用户的移动体验与服务质量都得到了...

关键字: TE SE BSP 应用程序
关闭
关闭