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

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

ID:52954639

大小:754.18 KB

页数:8页

时间:2020-04-03

将8051应用程序迁移到 ARM Cortex-M处理器上.pdf_第1页
将8051应用程序迁移到 ARM Cortex-M处理器上.pdf_第2页
将8051应用程序迁移到 ARM Cortex-M处理器上.pdf_第3页
将8051应用程序迁移到 ARM Cortex-M处理器上.pdf_第4页
将8051应用程序迁移到 ARM Cortex-M处理器上.pdf_第5页
资源描述:

《将8051应用程序迁移到 ARM Cortex-M处理器上.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、TechnologyIn-Depth将8051应用程序迁移到ARMCortex-M处理器上作者:JosephYiu和AndrewFrameCortex-M处理器系列包括广泛使用的Cortex-M3处理器、针对FPGA的Cortex-M1处理器、2009年初推出的Cortex-M0处理器(最小的ARM处理器)和2010年初推出的Cortex-M4处理器(支持浮点和数字信号处理增强指令)。这些处理器具有先进的功能特点和简单易用的编程模型,对于想从8051微控制器迁移到ARM架构的开发人员来说,极具吸引力。本文是一篇入门指南,目的

2、是帮助8051微控制器的开发人员了解8051和ARMCortex-M处理器系列在架构、软件和硬件设计上的主要差异,从而加快迁移过程。架构概述使用不同的寄存器来进行数据处理、内存存取和用作内存指针,对于一些嵌入式程序员(尤其是那些习惯使用汇编语言编程的因此不会有这个问题。程序员),首先要做的事情就是了解编程模型。从根本上说,ARM架构是一个基于加载(Load)和存储(Store)寄存器的RISC架构,处理器寄存器加载数据,然后将数据传给ALU进ARMCortex-M处理器具有一个32位寄存器库和一个xPSR(组行单周期执行。而

3、8051寄存器(ACC、B、PSW、SP和DPTR)可合程序状态寄存器)。而8051具有ACC(累加器)、B、DPTR(数在SFR(特殊功能寄存器)的内存空间中访问。据指针)、PSW(处理器状态字)和四个各含八个寄存器的寄存器库(R0-R7)。为了确保普通的C函数能够用RegistersinCortex-M作中断处理程序,在需要处R0ProcessorstatusRegistersin8051R1APSREPSRIPSR理中断时,Cortex-M的寄存R2xPSR器(R0-R3、R12、LR、PC和ACCBDPHDPLR3R

4、4xPSR)会被自动压入堆栈,而软DPTRPSWSPR5件仅需在必要时将其他寄存器R6PRIMASKBank0R0R1R2R3R4R5R6R7R7Interrupt压入堆栈。虽然8051具有4个寄MaskingR8BASEPRIRegisters存器库,但是ACC、B、DPTR和Bank1R0R1R2R3R4R5R6R7R9FAULTMASKPSW寄存器并不会自动压栈,因Bank2R0R1R2R3R4R5R6R7R10R11Cortex-M3/M4only此通常需要通过中断处理程序Bank3R0R1R2R3R4R5R6R7R

5、12对这些寄存器进行软件压栈。R13(SP)CONTROLR14(LR)R15(PC)内存空间在8051中,一些指令会频繁使用某些寄存器,如ACC和DPTR。ARM处理器具有32位寻址,可实现一个4GB的线性内存空间。该这种相关性会极大降低系统的性能,而在ARM处理器中,指令可内存空间在结构上分成多个区。每个区都有各自的推荐用法(虽36TechnologyIn-DepthSystem0xFFFFFFFFcomponents(NVIC)debugSystemregioncomponents0xE0000000Devicereg

6、ionOffchipperipheralsInternalMemorySpaceExternalMemorySpace0xA00000000xFFRAMregionOffchipmemorySpecialFunctionInternalRAMRegisters(SFR)0x60000000(indirect(directPeripheraladdressing)64kbyteprogramperipheralsaddressing)64kbytedataregionmemorymemory0x40000000(Instruc

7、tion0x7F(MOVXaccesses,MOVCSRAMregionSRAMaccesses)accesses)0x20000000InternalRAMCODEregionProgramflash0x00Registerbanks0x00000000MemoryMapintheARMCortex-MprocessorsMemoryMapinthe8051microcontrollers然并不是固定的)。统一内存架构不仅增加了内存使用的灵活由工作寄存器(四个各由R0至R7构成的寄存器库)和内部数据性,而且降低了不同内存空

8、间使用不同数据类型的复杂性。变量共享)。堆栈操作基于空递增模型。0xFF0xFF相反地,8051微控制器具有多个内存空间。内存空间的分割使得PUSHACC有效地利用全部内存空间变得困难,而且需要借助C语言扩展来NewstackedLaststacked处理不同的内存类型。itemat“N”

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。