ARM体系与架构

ARM体系与架构

1 硬件基础

NAND FLASH 和NOR FLASH异同?

NAND Flash和NOR Flash是两种不同类型的闪存存储器。NAND Flash具有较高的存储密度和较低的成本,适合大容量数据存储,而NOR Flash由于具有较低的读取延迟和更高的可靠性,适用于代码执行和小容量数据存储。

CPU,MPU,MCU,SOC,SOPC联系与差别?

CPU(中央处理器)是计算机系统中的主要处理单元,负责执行指令和进行算术逻辑运算。

MPU(微处理器单元)与CPU类似,但通常指嵌入式系统中的处理器。

MCU(微控制器)是一种集成了CPU、存储器、输入/输出接口和外围设备的完整系统解决方案。SOC(片上系统)是将多个功能组件(如CPU、GPU、内存控制器等)集成在一个芯片上的设计。SOPC(系统级可编程芯片)则是基于FPGA等技术实现的可编程SoC。

它们联系在于都是处理器或系统解决方案,差别在于规模、功能集成度以及可编程性。

什么是交叉编译?

交叉编译是指在一个平台上开发和编译程序,但将其目标代码生成为在另一个不同的平台上运行的可执行程序,通常用于开发针对嵌入式系统或不同体系结构的软件。

为什么需要交叉编译?

需要交叉编译的原因是,当开发环境与目标平台不兼容时,或者目标平台资源有限无法进行本地编译时,通过交叉编译可以在一台不同的主机上生成适用于目标平台的可执行代码,提高开发效率并方便移植到目标平台。

描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别?

嵌入式基于ROM的运行方式是将程序代码存储在只读存储器中,程序代码在启动时加载到RAM中执行,具有永久性但无法修改

而基于RAM的运行方式是将程序代码存储在可写存储器中,程序代码可以动态加载和修改,但需要在每次启动时重新加载,对资源消耗较大。

2 ARM处理器

什么是哈佛结构和冯诺依曼结构?

哈佛结构和冯诺依曼结构是计算机体系结构的两种基本形式。

哈佛结构将指令存储器数据存储器分开,使得指令和数据可以同时访问,提高了处理器的并行性

而冯诺依曼结构使用统一的存储器来存储指令和数据,使得程序更灵活但无法同时访问指令和数据。

什么是ARM流水线技术?

ARM流水线技术是一种处理器设计技术,通过将指令处理过程分为多个阶段同时处理多条指令,以提高处理器的运行效率。每个阶段专注于不同的任务,使得处理器可以同时执行多条指令,并且在一个时钟周期内完成更多的指令处理工作

ARM有几种工作模式?

ARM处理器有7种主要工作模式:用户模式、系统模式、中断模式、异常模式、监控模式、快速中断模式和未定义指令模式。每种模式具有不同的特权级别和功能,用于支持不同的操作和处理器状态的切换。

Arm有多少32位寄存器?

ARM处理器的通常具有16个32位通用寄存器(R0-R15),其中R0到R12用于存储数据,R13是堆栈指针SP,R14是链接寄存器LR,R15是程序计数器PC。此外,还有一些特殊用途的寄存器,如程序状态寄存器CPSR和当前程序状态寄存器(Current Program Status Register,CPSR)的备份寄存器SPSR。

Arm2440和6410有什么区别?

ARM2440和6410是两款不同的ARM处理器芯片。

ARM2440是一款较早的ARM9架构处理器,采用32位数据总线和16位指令总线,主要用于低功耗、嵌入式系统和移动设备等应用。

ARM6410则是一款更新的ARM11架构处理器,具有更高的性能和更多的功能。它采用更快的总线速度,支持更大的内存容量,适用于需要更高计算能力和更复杂应用的场景,如智能手机、平板电脑等。

总结来说,ARM6410相对于ARM2440具有更高的性能、更多的功能和更广泛的应用范围。

ARM指令集分为几类?

​ ARM指令集可以细分为以下三类:

  1. ARM指令集:指令长度为32位,适用于更复杂的计算和操作。
  2. Thumb指令集:指令长度为16位,适用于对代码密度要求较高的场景,可减小程序的存储空间需求。
  3. Thumb-2指令集:结合了ARM指令集和Thumb指令集的优势,提供了更好的代码密度和执行效率。
Arm处理器有几种工作状态?

Arm处理器有七种工作状态,它们是:

  1. 用户态(User Mode):用于执行普通应用程序。
  2. 系统态(Supervisor Mode):用于执行操作系统的特权指令和关键任务。
  3. 快速中断模式(FIQ Mode):用于处理快速中断,通过提供更快的中断响应时间来处理关键任务。
  4. 中断模式(IRQ Mode):用于处理普通中断。
  5. 监控模式(Monitor Mode):用于虚拟化和安全保护。
  6. 数据终端(Terminate Mode):用于处理异常终止条件。
  7. 未定义模式(Undefined Mode):用于处理未定义的指令或异常情况。

每种模式都有不同的权限级别和可执行的指令集,以满足不同的应用需求和安全要求。

ARM系统中,在函数调用的时候,参数是通过哪种方式传递的?

在ARM系统中,函数参数通常通过寄存器传递。前几个参数会被存储在特定的寄存器(如R0、R1、R2等)中,而超过寄存器数量的参数则会被存储在堆栈中。函数调用时,调用者将参数加载到相应的寄存器中,然后跳转到函数入口点执行函数内部可以通过访问这些寄存器来获取参数值进行操作

ARM协处理器指令包括哪3类,请描述它们的功能?

ARM协处理器指令可以分为以下三类:

  1. 浮点指令(Floating-Point Instructions):用于执行浮点数运算,如加减乘除、取整、开方等操作,提供了高精度的浮点计算能力。
  2. 图像处理指令(Image Processing Instructions):用于图像和信号处理任务,包括图像滤波、边缘检测、颜色转换等操作,提供了专门优化的指令集,加速对图像数据的处理。
  3. 向量指令(Vector Instructions):用于并行处理多个数据元素的向量运算,如矩阵乘法、向量加法等操作,提供了SIMD(单指令多数据)方式的指令集,提高了计算效率和并行度。

这些协处理器指令扩展了ARM处理器的功能,使其更适用于特定的计算任务,提高了处理器性能和效率。

什么是PLL(锁相环)?

用于生成稳定的、可调频率的时钟信号。一般集成进某种“频率综合电路”,产生一个不同频,但同相的信号。

3 中断与异常

中断与异常有何区别?

中断是由硬件或软件发起的一种通知机制,用于打断CPU的运行,引起处理器进入中断服务程序的执行。

异常是指在程序执行过程中遇到的非正常情况,例如除零错误或非法指令,并且通常会导致程序终止必须进行异常处理

中断与DMA有何区别?

中断是一种由外部设备向处理器发送信号并打断正常程序执行的机制,而DMA(直接内存访问)是一种用于数据传输的特殊设备,可以绕过处理器直接访问内存进行数据读写,提高数据传输效率。

中断能不能睡眠,为什么?下半部能不能睡眠?

中断本身不能睡眠,因为中断是由硬件或软件发起的一种打断程序流程的通知机制。而处理器在中断到来时会立即响应并执行相应的中断服务程序,不会进入睡眠状态。下半部(bottom half)是指在中断处理程序执行完毕后延迟执行的部分,它可以选择进入睡眠状态,但要注意确保在合适的时机被唤醒和执行

中断的响应执行流程是什么?

中断的响应流程:cpu接受中断->保存中断上下文跳转到中断处理历程->执行中断上半部->执行中断下半
部->恢复中断上下文。

当一个异常出现以后,ARM微处理器会执行哪几步操作?

当异常发生时,ARM微处理器会执行以下几步操作:保存当前执行状态、切换到特权模式、跳转到异常处理程序并执行、处理完异常后恢复之前的执行状态并返回正常执行流程。

写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?
  1. 快进快出:尽量在中断服务程序中迅速采集硬件信息并退出中断,可以使用工作队列或tasklet来处理其他任务。
  2. 避免阻塞操作:中断期间是占用CPU的,阻塞操作会导致其他进程无法进行操作。
  3. 返回值的处理:使用操作系统定义的宏作为返回值,而不是自定义的。
  4. 处理较多任务:将复杂任务放在后半部分处理,例如使用tasklet或等待队列
为什么FIQ比IRQ要快?

FIQ(快速中断请求)比IRQ(普通中断请求)要快,因为FIQ具有更高的优先级(如果FIQ和IRQ同时产生,那么FIQ先处理)和更多的banked寄存器(更少的寄存器保存压力),以及更短的中断响应时间。

中断和轮询哪个效率高?怎样决定是采用中断方式还是采用轮询方式去实现驱动?

中断比轮询更高效,因为中断方式能够实现实时响应和事件驱动,减少了CPU资源的浪费,而轮询是CPU主动去查询该设备是否有请求。决定采用中断还是轮询方式取决于应用场景和需求,中断适合对实时性要求高频繁产生事件的情况,而轮询适合对实时性要求低事件较少的情况。

4 通信协议

什么是异步传输和同步传输?

异步传输是指数据传输过程中发送和接收之间的时钟信号不同步,数据的发送方和接收方各自有独立的时钟源,不需要严格的时序要求,具有灵活性和容错性。

同步传输是指数据传输过程中发送和接收之间的时钟信号是同步的,数据的发送方和接收方的时钟源是相同的,需要严格的时序要求和协调,具有较高的传输效率和可靠性。

RS232和RS485通讯接口有什么区别?
  1. 电气特性不同:RS232是单项通信接口,使用两根信号线进行通信(TXD和RXD),信号电平为正负12V。而RS485是半双工或全双工通信接口,使用两根信号线(A和B)进行差分传输,可以实现多节点通信,信号电平为正负2V到6V。
  2. 通信距离不同:RS232通信距离较短,一般在15米左右,而RS485可以支持更长的通信距离,最远可达1200米,适用于需要远距离通信的场景。
  3. 节点数量不同:RS232通信一般只能支持点对点连接,即一个发送方和一个接收方。RS485支持多节点连接,可以实现多个发送方和多个接收方之间的通信,适用于多节点通信的场景。
  4. 抗干扰性能不同:由于RS485使用差分传输,具有较强的抗干扰能力,可以在电磁干扰环境下稳定传输数据。而RS232的抗干扰性能相对较弱。
SPI协议

SPI(Serial Peripheral Interface)是一种同步的串行通信协议,主要用于在芯片间进行数据传输。以下是SPI协议的简要总结:

  1. 架构特点:SPI采用主从结构,通信中至少包含一个主设备和一个或多个从设备。主设备通过时钟信号控制数据传输,并负责发起和控制通信过程。
  2. 通信线路:SPI通信需要使用四根线(时钟线、主设备输出线、主设备输入线、从设备选择线),每根线上都有一个数据传输方向,通过这些线实现数据的全双工传输。
  3. 数据传输方式:SPI采用全双工传输方式,主设备和从设备可以同时发送和接收数据。数据以字节为单位传输,通过时钟信号进行同步。
  4. 传输协议:SPI没有固定的传输协议定义,具体的通信规则由主设备和从设备之间的协商确定。常见的协议规定了数据传输的位数、传输顺序、时钟极性和相位等。
  5. 速度与灵活性:SPI通信速度较快,可达数百MHz,具有较高的数据传输效率。另外,SPI协议非常灵活,允许不同的主从设备之间通过引脚配置进行适配,方便应用在多种设备之间。

综上所述,SPI协议是一种基于主从结构、全双工传输的串行通信协议,具有快速、灵活等特点,广泛应用于各种芯片和外围设备之间的数据交互。

IIC协议

I²C(Inter-Integrated Circuit)是一种串行通信协议,用于在芯片间进行数据传输和通信。以下是对I²C协议的简要总结:

  1. 架构特点:I²C采用主从结构,通信中至少包含一个主设备和一个或多个从设备。主设备负责发起和控制通信过程,而从设备则响应主设备的指令。
  2. 通信线路:I²C通信仅需两根线(串行数据线SDA和串行时钟线SCL)。SDA用于双向的数据传输,SCL提供时钟信号用以同步数据传输。
  3. 地址识别:每个I²C设备都有唯一的7位或10位地址,主设备通过地址来选择与之通信的从设备。7位地址模式下,最多可以连接128个从设备。
  4. 数据传输方式:I²C采用半双工传输方式,主设备负责发出读写命令,从设备则响应并返回相应数据。数据以字节为单位传输,通过时钟信号进行同步。
  5. 传输协议:I²C定义了统一的传输协议,包括起始条件、停止条件、读写操作和应答机制等。传输协议的细节由主设备控制,并且可以根据具体需求进行协商。
  6. 速度与灵活性:I²C的通信速度相对较慢,一般在几百kHz的范围内,但可以根据具体应用需求进行调整。另外,I²C协议具有很高的灵活性,支持多主设备、多从设备的连接,并且可以通过软件配置适应不同的通信场景和设备类型。

综上所述,I²C是一种基于主从结构、半双工传输的串行通信协议,通过简单的两根线路实现芯片间的数据传输和通信。该协议具有地址识别、统一的传输协议和灵活的配置等特点,广泛用于各种芯片和外围设备之间的数据交互。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值