分享

ARM体系结构

 流曲频阳 2017-04-14

参考资料:《朱老师物联网大讲堂---ARM裸机全集》


1、RISC和CISC的区别

参考资料:http://baike.so.com/doc/6750698-6965257.html

CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。

它们的区别在于不同的CPU设计理念和方法。


CISC:早期的CPU全部是CISC架构,它的设计目的是要用最少指令来完成所需的计算任务。

(1)CISC CPU包含有丰富的电路单元,因而功能强、面积大、功耗大。

(2)CISC机器则更适合于通用机。

(3)CISC指令数目300条左右


RISC:设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,通过组合指令来完成。

(1)RISC CPU包含有较少的电路单元,因而面积小、功耗低。

(2)RISC机器更适合于专用机。

(3)RISC指令数目30条左右

wkiol1jull-brxw0aakw1gdwjmc027.png


2、SOC(System on Chip)

参考资料:http://baike.so.com/doc/6743192-6957719.html

SOC是一种设计理念,就是将各个可以集成在一起的模块集成到一个芯片上。

wkiom1julo7zscm1aabdnvvyhbe106.png


3、外设(Peripheral)

外设就是外部设备

SoC中外设大部分都跑进去了,网卡、音频编解码等个别还经常在外面。

芯片设计的趋势是更大集成度,近年甚至将音视频编解码、DDR都集成进SoC内做成所谓单芯片解决方案。如海思Hi3518E

裸机学习其实就是学习SoC的内核(CPU,表现为汇编指令集)和各种外设(如串口)


4、CPU的数据总线和地址总线

(1)数据总线+地址总线=总线接口

(2)CPU通过地址总线寻址,通过数据总线与外部设备信息交换。

(3)地址总线的位数决定了CPU寻址的范围,数据总线的位数决定了CPU单次通信能交换的信息数量。


注意:

CPU的地址总线位数和数据总线位数可以不同(典型代表就是51单片机),但是一般都相同。

一般指CPU的位数说的是数据总线的位数。

CPU地址总线32位指一般CPU寻址的范围是4G,所以最多支持4G内存;

CPU数据总线是32位的,一般CPU地址总线也是32位,所以编程最好用int···


4.1、CPU和总线示意图如下

wkiol1julsnzqlojaaajkipiiru128.png


5、IO和内存

5.1.1、什么是内存?

内存是程序的运行场所,内存和CPU之间通过总线连接,CPU通过确定的地址来访问具体内存单元。


5.1.2、内存的访问方式

内存通过CPU的地址总线来寻址定位,然后通过CPU数据总线来读写。

CPU的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用CPU的寻址空间的。

内存与CPU的这种总线式连接方式是一种直接连接,优点是效率高访问快,缺点是资源有限,扩展性差。


5.2.1、什么是IO?

IO(input and output)是输入输出接口,是CPU和其他外部设备(如串口、LCD、触摸屏、LED等)之间通信的道路。

一般的,IO就是指CPU的各种内部或外部外设。


5.2.2、IO的访问方式

IO指的是与CPU连接的各种外设

CPU访问各种外设有2种方式:一种是类似于访问内存的方式,即把外设的SFR寄存器当作一个内存地址来读写,从而以访问内存相同的方式来操作外设,叫IO与内存统一编址方式;另一种是使用专用的CPU指令来访问某种特定外设,叫IO与内存独立编址。


6、寄存器

6.1、两类寄存器

SoC中有2类寄存器:通用寄存器和SFR寄存器

通用寄存器(ARM中有37个)是CPU的组成部分,CPU的很多活动都需要通用寄存器的支持和参与。

SFR(special function register,特殊功能寄存器)不在CPU中,而存在于SOC的外设中,

可以通过访问外设的SFR寄存器来编程操控这个外设。


6.2、软件编程控制硬件的关键-SFR寄存器

软件编程控制硬件,就是编程读写SFR寄存器。编程操作寄存器可以类似于像访问内存一样操作,叫做IO与内存统一编址。


7、汇编语言

汇编的实质是机器指令(机器码)的助记符,是一种低级符号语言。

机器指令集是一款CPU的编程特征,是这款CPU的设计者制定的。CPU的内部电路设计就是为了实现这些指令集的功能。

不同CPU的机器指令集设计不同,因此汇编程序不能在不同CPU之间互相移植。

使用汇编编程可以充分发挥CPU的设计特点,所以汇编编程效率最高,因此在操作系统内核中效率极其重要处都需要用汇编处理。


8、ARM处理器工作模式

参考资料:

http://blog.csdn.net/mr_raptor/article/details/6556157

http://blog.csdn.net/zqixiao_09/article/details/50773128


9、ARM处理器不同模式下寄存器

参考资料:http://blog.csdn.net/mr_raptor/article/details/6556163


10、ARM中的程序状态寄存器(CPSR)

参考资料:http://www.cnblogs.com/armlinux/archive/2011/03/23/2396833.html


11、ARM处理器异常处理

参考资料:http://blog.csdn.net/mr_raptor/article/details/6556195


12、ARM汇编指令集

参考资料:http://blog.csdn.net/zqixiao_09/article/details/50726544


本文出自 “嵌入式学习之旅” 博客,请务必保留此出处http://1121516993.blog.51cto.com/11288737/1915376

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多