ARM基础知识连载之六

发布者:SereneJourney最新更新时间:2015-03-16 来源: laogu关键字:ARM  基础知识 手机看文章 扫描二维码
随时随地手机看文章
*********************************************

ARM存储系统概述

*********************************************
ARM存储系统的体系结构适应不同的嵌入式应用系统的需要差别很大。最简单的存储系统使用平办事的地址映射机制,就像一些简单的弹片机系统中一样,地址空间的分配方式是固定的,系统各部分都使用物理地址。而一些复杂系统可能包括下面的一种或几种技术,从而提供更为强大的存储系统。

**系统中可能包含多种类型的存储器,如FLASH,ROM,RAM,EEPROM等,不同类型的存储器的速度和宽度等各不相同。
**通过使用CACHE及WRITE BUFFER技术缩小处理器和存储系统速度差别,从而提高系统的整体性能。
**内存管理部件通过内存映射技术实现虚拟空间到物理空间的映射。在系统加电时,将ROM/FLASH影射为地址0,这样可以进行一些初始化处理;当这些初始化完成后将RAM地址影射为0,并把系统程序加载到RAM中运行,这样很好地解决了嵌入式系统的需要。
**引入存储保护机制,增强系统的安全性。
**引入一些机制保证I/O操作应设成内存操作后,各种I/O操作能够得到正确的结果。

**与存储系统相关的程序设计指南**
本节从外部来看ARM存储系统,及ARM存储系统提供的对外接口。本节介绍用户通过这些接口来访问ARM存储系统时需要遵守的规则。

1.地址空间
ARM体系使用单一的和平板地址空间。该地址空间大小为2^32个8位字节,这些字节的单元地址是一个无符号的32位数值,其取值范围为0~2^32-1。ARM地址空间也可以看作是2^30个32位的字单元。这些字单元的地址可以被4整除,也就是说该地址低两位为0b00。地址为A的字数据包括地址为A、A+1、A+3、A+3 4个字节单元的内容。
各存储单元的地址作为32为无符号数,可以进行常规的整数运算。这些运算的结果进行2^32取模。
程序正常执行时,每执行一条ARM指令,当前指令计数器加4个字节;每执行一条Thumb指令,当前指令计数器加2个字节。但是,当地址上发生溢出时,执行结果将是不可预知的。
2.存储器格式
在ARM中,如果地址A是字对齐的,有下面几种:
**地址为A的字单元包括字节单元A,A+1,A+2,A+3。
**地址为A的班子单元包括字节单元A,A+1。
**地址为A+2的半字单元包括字节单元A+2,A=3.
**地址为A的字单元包括半字节单元A,A+2。
在big-endian格式中,对于地址为a的字单元其中字节单元由高位到低位字节顺序为A,A+1,A=2,A+3;这种存储器格式如下所示:

31       24 23                    16 15           8 7        0 
--------------------------------------------------------------------
字单元A           
--------------------------------------------------------------------
半字单元A     半字单元A+2     
--------------------------------------------------------------------
字节单元A     字节单元A+1   字节单元A+2    字节单元A+3 
--------------------------------------------------------------------

在little-endian格式中,对于地址为A的字单元由高位到低位字节顺序为A+3,A+2,A+1,A,这种存储格式如下所示

31       24 23                    16 15           8 7        0 
--------------------------------------------------------------------
字单元A           
--------------------------------------------------------------------
半字单元A+2     半字单元A     
--------------------------------------------------------------------
字节单元A+3    字节单元A+2   字节单元A+1    字节单元A  
--------------------------------------------------------------------

在ARM系统中没有提供指令来选择存储器格式。如果系统中包含标准的ARM控制协处理器CP15,则CP15的寄存器C1的位[7]决定系统中存储器的格式。当系统复位时,寄存器C1的[7]值为零,这时系统中存储器格式为little-endian格式。如果系统中采用的是big-endian格式,则复位异常中断处理程序中必须设置c1寄存器的[7]位。

3.非对齐的存储访问操作
非对齐:位于arm状态期间,低二位不为0b00;位于Thumb状态期间,最低位不为0b0。
3.1非对齐的指令预取操作
如果系统中指定当发生非对齐的指令预取操作时,忽略地址中相应的位,则由存储系统实现这种忽略。
3.2非对齐的数据访问操作
对于LOAD/STORE操作,系统定义了下面3中可能的结果:
***执行结果不可预知
***忽略字单元地址低两位的值,即访问地址为字单元;忽略半字单元最低位的值,即访问地址为半字单元。
***由存储系统忽略字单元地址中低两位的值,半字单元地址最低位的值。

4.指令预取和自修改代码
当用户读取PC计数器的值时,返回的是当前指令下面的第二条指令的地址。对于ARM指令来说,返回当前指令地址值加8个字节;对于Thumb指令来说,返回值为当前指令地址值加4个字节。
自修改代码指的是代码在执行过程中修改自身。应尽量避免使用。
5.存储器映射的I/O空间
在ARM中,I/O操作通常被影射为存储器操作。通常需要将存储器映射的I/O空间设置成非缓冲的。

关键字:ARM  基础知识 引用地址:ARM基础知识连载之六

上一篇:ARM基础知识连载之七
下一篇:ARM基础知识连载之五

推荐阅读最新更新时间:2024-03-16 13:55

对于51单片机和arm9开发板串口通信问题的分析
距离毕设的时间还剩20天左右,这几天一直忙着做毕设,今天终于将51单片机和串口通信的问题解决了,抽出点时间,写一下遇到的问题。不然,过几天又忘了,记录下来也给后续学习的技术宅能提供一点帮助。 我的串口实验是:ARM9 控制板通过串口发送一个指令,51接受到这个指令后,根据这个指令控制小车的运行方式。(为什么不用arm9直接控制小车而采用51控制小车呢? 答:我的想法是电机驱动这一块直接交付给下一级控制器,程序简单,容易实现,况且通过串口,只需解析一个指令就可以实现)。 1、做此类串口通信一定要记得共地,我采用的方法是直接用5v直流输出引出了两个接口,分别为两个控制板供电,这样的话串口通讯的电压没有一点问题。 2、做串口通讯的
[单片机]
史上最全ARM指令集详解
算术和逻辑指令 ADC : 带进位的加法 (Addition with Carry) ADC{条件}{S} , , dest = op_1 + op_2 + carry ADC 将把两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,这样就可以做比 32 位大的加法。下列例子将加两个 128 位的数。 128 位结果: 寄存器 0、1、2、和 3第一个 128 位数: 寄存器 4、5、6、和 7第二个 128 位数: 寄存器 8、9、10、和 11。 ADDS R0, R4, R8 ; 加低端的字 ADCS R1, R5, R9 ; 加下一个字,带进位 ADCS
[单片机]
史上最全<font color='red'>ARM</font>指令集详解
ARM公布2013年一季度财报,营收增26%
2013年4月23日,ARM公布了2013年一季度财报,财报显示,2013年一季度ARM总营收为2.639亿美元,营业利率为50.5%,税前利润为8940万英镑,合1.36亿美元,以美元计算,营收同比增长26%。 一季度共发售26亿颗基于ARM处理器产品,同比增长35%。 一季度亮点: 更广泛的处理器授权: 新增22个处理器授权涵盖智能手机、移动计算、数字电视以及可穿戴技术产品。 新内核的授权: 新增9个Cortex -A处理器授权,新增了一家ARMv8 架构授权客户。 Mali图像处理器授权新增三个,其中包括一个最新的Skrymir授权。 推出基于ARMv8架构的Cortex-A57与Cortex-A53处理器优化
[手机便携]
ARM各种异常返回地址的计算
首先,给出ARM的三级流水线结构图,这是后面分析的基础。 上图中最左侧为指令的地址,根据三级流水线结构,当PC=0X3008是时,正在执行的的指令是地址为0X3000的这条指令。 在分别讲解各种异常之前,有一条总的原则就是:无论发生什么异常(除复位),内核总是会首先将 PC-4 放到LR寄存器中。 1.复位异常 复位异常中断处理程序不需要返回。在复位异常中断处理程序开始整个用户程序的执行,因而它不需要返回。 2.未定义指令异常 指遇到了一条没有定义的指令导致执行时无法执行。 未定义指令异常中断是由当前执行的指令自身产生的,当产生中断时,程序计数器PC的值还未更新(未更新的意思就是PC还没有加4 呢);
[单片机]
<font color='red'>ARM</font>各种异常返回地址的计算
基于arm的嵌入式棒料剪切生产线数控系统
  随着我国制造业的飞速发展,对机加配件的加工精度和生产效率的要求越来越高,对企业生产过程的自动化程度也提出了很高的要求。棒料是各种模锻件、辊锻件、辗压件生产用的主要原料,而棒料剪断机就是为这些锻压工艺准备坯料的剪切下料设备。早期的剪切系统电气控制普遍采用交流接触器和继电器进行控制,经过长年使用,部件老化,设备故障频发。在维护中由于分立元件众多,集成度差,许多故障不能及时处理,给企业生产带来诸多不便。   由于PLC伺服控制系统具有定位精度高、响应速度快、抗干扰能力强、运行平稳等特性,采用可编程序控制器(PLC)控制系统的高精度自动剪切生产线的应用越来越广泛。但PLC还是软PLC技术,都有实时性不强的缺点,很难实现复杂、快速的
[单片机]
基于<font color='red'>arm</font>的嵌入式棒料剪切生产线数控系统
基于ARM和CPLD的高速数据采集系统设计
随着人们对高空的兴趣发展和研究需要,越来越多的科学实验被科研人员搬到了空中进行,气球探空和无人机实验是比较典型的方法。这些科学实验往往需要在一定的实验条件到达时触发某特定实验现象,从而对发生时间非常短促且不具备可重复再现性的实验目标数据进行高速采集。日前,笔者参与的项目中需要完成的任务是:通过无线通信实现对高空实验设备进行控制,对整个实验过程进行实时观察分析(其中的实验条件数据通过GPS接收机,红外虚拟逻辑分析仪等设备实时采集),待实验到达触发条件时,通过手动(或自动可选)的方法实施触发,再对触发后的实验目标数据进行采集并传回地面PC进行后续的分析处理。该项目采用ARM和FPGA分别作为主从处理器设计嵌入式采集系统,采用多通道
[单片机]
基于<font color='red'>ARM</font>和CPLD的高速数据采集系统设计
ARM DesignStart:通向定制化SoC的最快、最低风险之路
在过去几年里,ARM DesignStart已经帮助了成千上万的芯片开发者和技术创新者们快速、方便和免费地获取ARM IP。ARM正在加速智能嵌入式设备的创新:显著增强后的DesignStart帮助设计者以最快、最方便的方式获取已获证实的、可信任的IP,并提供通往出片成功的最完善保障。 最新加入ARM DesignStart、使得定制化SoC更易实现的增强内容包括: 新加入了ARM Cortex-M3处理器——这也是目前用于互联智能设备的主流处理器。与Cortex-M0一起,他们能够帮助设计者应对最广范围的智能嵌入式和定制化SoC的需求。 对Cortex-M0和Cortex-M3处理器取消预付授权。企业现在能够以产品
[嵌入式]
<font color='red'>ARM</font> DesignStart:通向定制化SoC的最快、最低风险之路
英特尔X86与ARM的“架构王”之争
目前英特尔X86和ARM架构占据了全球微处理器指令集架构的主流市场,其中英特尔X86主宰了计算机、服务器等高性能高功耗领域,ARM架构则几乎垄断了9成移动通信芯片,活跃在手机、物联网等低功耗低成本应用,二者关于“架构王”的竞争持续至今。 8月初的一则传闻更是将它们再次推向了风口浪尖。据消息称华为将卖掉服务器业务,主要出售采用英特尔X86架构的服务器业务,而保留采用ARM架构的鲲鹏芯片的服务器业务。 那么英特尔X86和ARM架构是如何发展以及怎样构成竞争的?这中间又夹杂着怎样的“恩怨情仇”? 先发制人:英特尔X86 1968年,从仙童半导体“出走”的戈登∙摩尔、诺伊斯等人花费了1.5万美元从IN-TELCO公司手中买下了Inte
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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