CPU,MPU,MCU,SOC,SOPC联系与差别?
SOC(System on Chip),指的是片上系统,MCU只是芯片级的芯片,而SOC是系统级的芯片,它既MCU(51,avr)那样有内置RAM,ROM同时又像MPU(arm)那样强大的,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(将就认为是MCU集成化与MPU强处理力各优点二合一)。
SOPC则是硬件配置,软件配置都可以修改,软件配置跟上面一样,没什么好说的,至于硬件,是可以自己构建的也就是说这个芯片是自己构造出来的,这颗芯片我们叫“白片” ,什么芯片都不是,把硬件配置信息下载进去了,他就是相应的芯片了,可以让他变成51,也可以是avr,甚至arm,同时SOPC是在SOC基础上来的,所以他也是系统级的芯片,所以记得当把他变成arm时还得加外围ROM,RAM之类的,不然就是MPU了。
什么是交叉编译?
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。
为什么需要交叉编译?
有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。
ROM和动态/静态RAM?
ROM(Read Only Memory),只读存储器。ROM数据不能随意更新,但是在任何时候都可以读取。主要用于存放一些固定的不需要修改的代码或者数据。掉电之后,数据还可以保存。IROM则是指集成于芯片内部的ROM。
RAM有两个大类,静态RAM和动态RAM。 SRAM(Static Random Access Memory) ,即静态随机存取存储器(六个晶体管存储一位数据,功耗大,密面积大)。它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。优点,速度快(目前读写速度最快的存储设备),不必配合内存刷新电路,可提高整体的工作效率。初始化简单。缺点,集成度低,掉电不能保存数据,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率
DRAM( Dynamic Random Access Memory) ,动态随机存储器(一个晶体管和一个电容存储一位数据,便宜简单,需要刷新),动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。
描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别?
基于RAM
- 需要把硬盘和其他介质的代码先加载到ram中,加载过程中一般有重定位的操作。
- 速度比基于ROM的快,可用RAM比基于ROM的少,因为所有的代码,数据都必须存放在RAM中。
基于ROM
- 速度较基于RAM的慢,因为会有一个把变量,部分代码等从存储器(硬盘,flash)搬移到RAM的过程。
- 可用RAM资源比基于RAM的多;
ARM处理器的七种工作模式
ARM处理器存在七种工作模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问中止模式、未定义指令中止模式、系统模式。除了用户模式外,其它六种均为特权模式。处理器模式可以通过控制进行切换,也可以通过外部中断或异常处理过程进行切换。
运行在用户模式下,不能访问受操作系统保护的系统,且在应用模式下也不能切换处理器的模式。如需切换应用程序将产生异常处理,并在异常处理中切换模式。
用户模式(usr) :属于正常的用户模式,ARM处理器正常的程序执行状态。
快速中断模式(fiq) :用于处理快速中断,对高速数据传输或通道处理
外部中断模式(irq) :对一般情况下的中断进行处理。
管理模式(svc) :属于操作系统使用的保护模式,处理软件中断swi reset。
数据访问终止模式(abt) :当数据或指令预取终止时进入该模式,可用于处理存储器故障、实现虚拟存储器和存储器保护。
系统模式(sys) :运行具有特权的操作系统任务。
未定义指令中止模式(und) :处理未定义的指令陷阱,当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM有多少32位寄存器?
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器
ARM指令集分为几类?
2类,分别为Thumb指令集,ARM指令集。ARM指令长度为32位,Thumb指令长度为16位。这种特点使得ARM既能执行16位指令,又能执行32位指令,从而增强了ARM内核的功能。