参考资料:《朱老师物联网大讲堂---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条左右 2、SOC(System on Chip) 参考资料:http://baike.so.com/doc/6743192-6957719.html SOC是一种设计理念,就是将各个可以集成在一起的模块集成到一个芯片上。 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和总线示意图如下 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 |
|