基于ARM架构的8051应用程序迁移过程

发布者:csZhou最新更新时间:2020-09-03 来源: elecfans关键字:ARM架构  程序迁移 手机看文章 扫描二维码
随时随地手机看文章

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)。

基于ARM架构的8051应用程序迁移过程

在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语言扩展。

基于ARM架构的8051应用程序迁移过程

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

关键字:ARM架构  程序迁移 引用地址:基于ARM架构的8051应用程序迁移过程

上一篇:ARM是什么意思,arm与cpu是什么关系
下一篇:数字信号处理架构下FPGA,ARM,DSP的对比

推荐阅读最新更新时间:2024-11-09 22:15

8051单片机C语言创新教程》笔记 01
内部存储器结构:RAM 与 ROM 地址重合同过选通信号 PSEN 区分 用户避免进入的某些存储单元 中断服务函数的入口地址: 用户真正使用的是 30H—7FH------------------------------80字节 特殊功能寄存器地址分配:80H—FFH
[单片机]
《<font color='red'>8051</font>单片机C语言创新教程》笔记 01
12232c液晶显示和8051单片机的接口c语言程序
以下为彭总编写的c语言程序,我用过了!赫赫!!在atmega128中写通讯协议的头四位数字时好像不能分开一位一位的送,而是要把它当作一个16进制的整体移位写入!程序中的comm为写0表示写12232c的指令,dat为1表示写数据。cs,sclk,std分别为片选、时钟、及数据io口,可用sbit指令定义。 /************lcd初始化程序**************/ void init_lcd (void) { wr_lcd (comm,0x30); /*30---基本指令集动作,8位控制接口*/ wr_lcd (comm,0x01); /*清
[单片机]
ARM架构解析
先来谈一下ARM的发展史:1978年12月5日,物理学家赫尔曼 豪泽(Hermann Hauser)和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。(摘录自百度百科) 80年代中期,Acorn的一个小团队要为他们的下一代计算机挑选合适的处理器,根据他们提供的技术需求,在当时的市场上无法找到合适的处理器,于是Acorn决定自己设计一个处理器(真有魄力)。一个小团队仅仅用了18个月就完成了从设计到实现的全过程,这是一台RISC指令集的计算机,叫做Acorn RISC Machine(
[单片机]
<font color='red'>ARM架构</font>解析
C8051F023---参数
1. Flash大小:64KB 内部DRAM大小:4352 Bytes 内部无EEPROM存储单元 引脚数为64Pin 晶振25MHZ 有JTAG引脚接口,可以在线通过仿真器调试 如图: 2. C8051F系列单片机最多可以达到100Pin
[单片机]
单片机原理的详细介绍
8051单片机包含中央处理器、数据存储器(RAM)、定时/计数器、程序存储器(ROM)、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别对其原理加以说明: ·数据存储器(RAM): 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统
[单片机]
单片机原理的详细介绍
51学习笔记之以总线方式实现1602与8051连接
//以总线方式实现8051与1602的通信 //这个程序主要实现功能是向1602发送一串字符串,并显示出来 #include reg52.h #include absacc.h #define uchar unsigned char #define uint unsigned int #define LCDDDATA XBYTE //读数据地址 #define LCDXDATA XBYTE //写数据地址 #define LCDDCOM XBYTE //读命令 #define LCDXCOM XBYTE //写命令 uchar idata s_GOOD ={'W','D',
[单片机]
51学习笔记之以总线方式实现1602与<font color='red'>8051</font>连接
8051单片机基础4:数据存储类型(data,idata,xdata,code)
参考来源:Keil Help uVision Help Cx51 Compiler User’s Guide Language Extensions Memory Types 存储类型 Cx51编译器可以访问8051的所有存储区域,声明变量时可以指定分配的存储区,也可以基于内存模型配置进行隐式分配。 实际项目中经常用到的是 xdata, code 使用方法 变量声明/定义时,添加关键字data,idata,bdata,pdata,xdata,code。 unsigned char data var1; unsigned char code text = ENTER PARAMETER: ; unsigne
[单片机]
<font color='red'>8051</font>单片机基础4:数据存储类型(data,idata,xdata,code)
OC8051软件编程说明
1、复位   复位通过复位引脚RST输入,复位必须达到两个周期的高电平才能将系统复位。复位后,PC指针为0000H,因此0000H即为复位向量入口,复位后从此处开始运行程序。复位后P口(P0,P1,P2,P3)被设置为FFH,堆栈指针值为07H,其他特殊功能寄存器的初值均为00H,内部RAM的值不受复位影响,复位后,其值不确定。 2、寄存器列表   图1为OC8051的寄存器列表:   图1 OC8051寄存器列表   下面依次说明几个特殊功能寄存器功能。   PSW(程序状态字)   CY PSW.7  :  进位标志   AC PSW.6  :  辅助进位标志   F0 PSW.5  :  用户可用作通用标志   RS1
[单片机]
OC<font color='red'>8051</font>软件编程说明
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved