ARM7的体系结构

发布者:leader5最新更新时间:2017-11-28 来源: eefocus关键字:ARM7  体系结构 手机看文章 扫描二维码
随时随地手机看文章

一.存储器的字与半字

1.从偶数地址开始的连续的两个字节构成一个半字。

2.能被4整除的地址的连续4个字阶构成一个字

ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字

二.存储器的存储方式(半字对齐,字对齐)

1.半字对齐:存放一个数据的地址如果能被二整除,则它是半字对齐。反之,则是非半字对齐。

2.字对齐:存放一个数据的地址如果能被四整除,则它是字对齐。否则,它是非字对齐。

 

 

三.ARM处理器状态:

ARM有两种处理器状态:ARM状态,Thumb状态。

1.    ARM状态:32位。处理器执行字方式的ARM指令。

2.    Thumb状态:16位。处理器执行半字方式的Thumb指令。

注:两个状态之间的切换是不会影响处理器的模式或寄存器的内容。

它们之间是如何进行切换的。

使用BX指令在ARM和Thumb状态之间进行切换。

(但是,所有的异常处理都是在ARM状态中执行。如果异常发生在Thumb状态中,处理器会切换到ARM状态。在异常处理返回时,自动切换回Thumb状态。)

从ARM状态切换到Thumb状态的程序代码:

 

 

 

 

具体程序来说明处理器状态:

程序1:

 

 

 

 

ADR  R0,TST+1

注:伪指令ADR将寄存器内容的地址存入寄存器中。这里将地址TST+1存入R0中,这样就加载了转移地址并且设置了最近有效位。

BX   R0

注:此时,R0中数值的第0位是1,所以该语句执行完处理器切换进入Thumb状态,开始执行Thumb指令

(我们可以在AXD下看到此时状态寄存器的T位被置1.)

CODE16

注:

A汇编器需要知道什么时候产生ARM代码,什么时候产生Thumb 代码。

B伪指令CODE16定义一下的程序被编译成Thumb模式,即后面的就是16位的Thumb指令了。

C.伪指令CODE32定义一下的程序将被编译成ARM模式,即后面的就是32位的ARM指令。

D伪指令CODE16和CODE32只是指示汇编器后面指令的类型,并不产生任何代码,也不进行程序状态的切换。

程序2:

 

注:

在Thumb状态下,调用软中断:SWI 0XAB

在 ARM  状态下,调用软中断:SWI 0X123456

四.ARM处理器模式:

ARM体系结构支持7中处理器模式:用户模式,快中断模式,中断模式,管理模式,中止模式,未定义模式和系统模式。

 

 

 

1.快中断模式,中断模式,管理模式,中止模式和未定义模式。它们称为异常模式。

A.异常模式既可以通过程序切换进入外,也可以有特定的异常进入。

B.当特定的异常出现时,处理器进入相应饿模式。每种模式都有某些附加的寄存器。

2.系统模式和用户模式,它们不能由异常进入。并且使用与用户模式相同的寄存器。

A.系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器比较方便。

 

五.ARM体系的存储系统

1.ARM7存储系统概要:

1>.ARM7处理器采用冯.诺依曼结构,指令和数据共用一条32位数据总线(采用指令,数据和I/O统一编址)。

只有装载,保存和交换指令可访问存储器中的数据。


Tiger 补充:

计算机结构说明:

1>  冯诺依曼结构:把代码作为一中特殊的数据来操作。指令总线和数据总线及其存储区域是统一的。

2>   哈佛结构:指令总线和数据总线及其存储区域是分开独立的。

2>.ARM芯片一般在处理器核和外部存储器之间有

一个存储器管理部件。

存储器管理部件的作用是将局部总线的信号和时序转换为现实的外部总线信号和时序。

 

 

 

 

注:各芯片生产商制定了自己的外部总线的信号和时序。

3.    地址空间

1>  ARM地址空间有232个8位字节的地址空间。也可以看作是230个32位字或231个16位半字。

2>  如果在取指操作时地址发生溢出,只要没有执行预取的无效指令,就不会导致异常。

4.    存储器格式:

1>  地址空间的规则要求一个字或半字要求连续存储。

Eg:位于地址0x02处的字,它所包含的字节位于地址0x02,0x03,0x04,0x5

  同理位于地址0x02处的半字,它所包含的字节位于地址0x02,0x03.

2>  存储器系统有两种映射机制:

A.        小端存储器系统:

数据的高字节存放在高地址中。

B.        大端存储器系统:

数据的高字节存放在低地址中。

 

 

 

 

3>非对齐的存储器访问

A.    ARM结构希望所有存储器访问时都对齐。即字访问的地址是字对齐的,或半字访问使用的地址是半字对齐的。若不满足上述条件的即为非对齐的存储器访问。

B.    把一个非字对齐(或非半字对齐)的地址写入ARM状态(或Thumb状态的)R15寄存器中,将会引起非对齐的指令取指。

C.    在一个非字对齐(或非半字对齐)的地址处读写一个字或半字会引起非对齐的数据访问。

注:编程时应该注意的问题:

ARM处理器直接支持对齐存放的半字或字数据的存取,也就是可以使用一条相应的指令来实现对应操作。如果访问非对齐的半字或字数据,将需要多条指令组合才能实现对应操作,这对程序的执行效率影响较大。因此,在C语言编程中,定义的多字节变量或结构体,最好使其为对齐存放。


关键字:ARM7  体系结构 引用地址:ARM7的体系结构

上一篇:UART0串口编程系列(四)
下一篇:ARM汇编之寄存器

推荐阅读最新更新时间:2024-03-16 15:47

一种NAND FLASH自启动的新方法
1 引 言 随着消费类电子产品包括PDA,MP3、智能手机等手持设备的市场需求逐步扩大,产品间的竞争也愈发激烈,降低产品的设计成本,提升产品的市场竞争力成为嵌入式系统开发者所面临的重大挑战。NAND FLASH和NORFLASH作为两种主要的非易失性存储器,被应用于各种嵌入式系统。其中NAND FLASH主要优点在于存储密度高、容量大,有更占优势的存储性价比。但是NANDFLASH由于其独特的页式读写方式,并不适合程序的直接执行。因此,从NAND FLASH启动需要片上存储器作为代码执行的中转区。本文所讨论的一种系统启动方式,是在缺少片上存储器支持的情况下,实现系统直接从NAND FLASH启动。论文中充分考虑了如何实现软、硬
[应用]
ARM的体系结构与编程系列博客——ARM体系版本
ARM体系版本前言 很多人都知道,ARM有许多版本,口中最长说的就是ARM7\ARM9\ARM11,诚然,这个的确是ARM处理器的版本,但绝对不是ARM的版本,其实ARM到迄今为止经历了6代版本,随着时代的变化,ARM也随之变化,版本的不同其实也造就ARM的各种变种! ARM处理器系列的各种处理器,其采用的技术各不相同,性能差异很大,应用的场合也不相同,但只要它是同一个ARM体系版本,那么基于它们的应用软件是兼容的! 不难看出ARM的版本关系到了ARM的兼容性,如果你在开发过程中不了解版本的话,以为一切ARM的程序均在ARM处理器上可用的话,那么就大错特错了! 回到顶部 ARM体系版本介绍 下面将为大家详细的介绍ARM体
[单片机]
基于ARM7的心电采集与远程传输系统设计
1 引言   心脏病是严重威胁人类健康和生命的主要疾病之一。统计显示约60%的心脏病人死于家中,这些病人如果能够及时获得抢救、护理,是完全可能避免死亡的。由于心脏病发作带有很大的偶然性和突发性,将心电监护从病床、医院扩展到社区、家庭实施远程监护,无论是从减轻患者的经济负担,还是从增强医院服务能力的角度考虑都具有重要的现实意义。 2 心电监护终端的硬件设计   从体积小、功耗低、操作简便的角度设计心电监护终端硬件电路。图1为整个监护终端的硬件框图,主要由调理电路、心电数据采集模块、ARM7微处理器模块、网口模块、电源模块5部分组成。该监护终端完成心电信号的采集和预处理,并通过网口实时发送至监护中心服务器,从而实现远程实时监护。
[医疗电子]
基于<font color='red'>ARM7</font>的心电采集与远程传输系统设计
基于ARM7处理器LPC2104的嵌入式数据采集系统
  1 概 述   嵌入式处理器是嵌入式系统的核心部分 ,处理器的选择是关键 。目前 ,ARM处理器已遍及工业控制 、消费电子产品 、通信系统等各类 产品市场 ,基于ARM 技术的微处理器应用约 占了 32位 RISC处理器 75%以上的市场份 额I】1。ARM 处理 器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、Intel的 Xscale、In— tel的 StrongARM等几个 系列 1,其 中 ARM7、ARM9、ARM9E和ARM1OE为 4个通用处理器系列 。   ARM7系列微处理器为低功耗的32位RISC处理器 ,适合用于对价位和功耗要求较高的产品应用中。ARM7微处理器 系列具有如下
[单片机]
基于ARM7的无线局域网MAC层上系统架构
  1、 无线局域网MAC层协议   在IEEE推出802.11-1999和802.11b以来,无线局域网在技术上已日渐成熟。在国家863计划 SoC设计方法及其关键支撑技术专项资金的资助下,我们初步完成无线局域网MAC层控制器知识产权核(IP core)的设计和验证。设计了用ARM7TDMI实现的MAC层控制器的体系结构,同时片上总线使用先进微控制器总线架构(AMBA)。该实现结构清晰,利于设计重用且设计复杂度不大,是一种值得推荐的体系结构。   无线局域网协议描述数据链路层MAC子层及其以下各层的规范。MAC层控制器实现的规范为IEEE 802.11-1999有关的无线局域网MAC层部分。MAC层的控制分点控制和分布控制两种,其
[单片机]
关于初学者该选择学习ARM7还是ARM9的一点建议
一. 谈谈ARM7与ARM9的区别: 本文是写给准备学习ARM技术,而又没想好要学ARM7还是ARM9, 或者对ARM7与ARM9的区别不是很了解的初学者。 ARM7和ARM9的区别: 1. 时钟频率的提高 虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯 诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。 2 指令周期的改进 指令周期的改进对于处理器性能的提高有很大的帮
[单片机]
ARM7(lpc2146)学习笔记-0606
一.ADS 1.保存文件名要全名(即包括扩展名) 2.*.tdt文件删除则整个工程都会重新编译 3.*.axf为工程的调试文件 4.*.scf 分散加载描述文件 5.ADS的RelinFLASH版本设置了JTAG的加密,下载这个版本的代码之后,JTAG调试就不能用了,通过周立功提供的LCP的ISP软件,擦除掉芯片内的程序就OK了。 二.ARM指令 6.小端方式:较低字节存放在较低地址(arm7) 大端方式:较低字节存放在较高地址 7.通过对一个单元执行两次相同的写操作,可保证复位后数据的写入。因为人SRAM控制器包含一下回写缓冲区,要在进行第二次写时上一次的数据才真正被写入SRAM 8.VHB:0xff
[单片机]
ARM Cortex-M7处理器体系结构简介
本文以ST公司的STM32F7为实例来介绍M7体系结构,主要涉及M7存储器模型以及缓冲机制、编程模型、异常模型、处理器两大工作模式以及特权级,对于核心寄存器、内核外设SysTick、MPU、FPU以及系统控制块SCB仅做简单介绍。适用于对MCU+RTOS感兴趣的读者; 参考手册: STM32F7 Series Cortex®-M7 processor programming manual ARM Cortex-M7 Processor Technical Reference Manual ARM Cortex-M7 Devices Generic User Guide 一、指令集类型简单介绍: 在计算机处理器发展史上形
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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