1.ARM处理器与中断

1.1 CPU的内部结构?

CPU的内部结构大致可以分为?

1.2 CPU跟内存、虚拟内存、硬盘的关系

1.3 ARM结构处理器可以分为哪几类?

1.4 嵌入式微处理器和DSP有什么区别?

1.5 ARM处理器有哪些工作状态?ARM指令和Thumb指令有什么区别?

1.6 RISC精简指令集计算机和CISC复杂指令集计算机的区别

1.7 ARM内部传输数据的总线有哪些?

ARM内部传输数据采用ARMA总线,共4个版本

1.8 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供了一种扩展:让标准C支持中断。具体表现是,产生了一新的关键字_interrupt,下面的代码就是使用了_interrupt关键字去定义了一个中断服务子程序ISR,这段代码有什么问题

__interrupt double compute_area(double radius){
	double area = PI * radius * radius;
	printf("Area = %f", area);
	return area;
}

1.9 简述处理器中断处理的过程

处理器在中断处理的过程中,一般分为以下几个步骤:

1.10 保护现场、恢复现场的过程?

1.11 复位中断与其他中断有什么不同?

1.12 什么是中断向量?什么是中断嵌套?

1.13 外部中断请求IRQ和快速中断请求FIQ的异常向量地址分别为?

0x0000 0018,0x0000 001C

1.14 中断的优缺点

1.15 中断服务程序能不能有参数和返回值?

2. 寄存器与存储器

2.1 ARM的31个通用寄存器R0-R15中,程序计数器PC位R15,程序链接寄存器为R14,堆栈指针寄存器SP位R13.

2.2 寄存器掉电会丢失数据吗?

寄存器是由触发器构成的,因此掉电会丢失数据

2.3 NOR Flash与NAND Flash的区别和联系?

特性 NOR Flash NAND Flash
单位 字节 页,一般位512字节
容量 一般为1-16MB 一般为8-128M
成本 较高 较低
性能 比NAND Flash稍快 写入、擦除速度比NOR Flash快很多
接口 带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节 使用复杂的I/O来串行地存取数据,8个引脚用来传送控制、地址和数据信息
耐用性 最大擦写次数是十万次 最大擦写次数是一百万次
软件支持 写入和查出需要MTD,Memory Technology Devices,内存计数驱动程序,运行代码不需要任何软件 写入、擦除、运行代码都需要MTD

2.4 SRAM、DRAM、SDRAM的区别

2.5 磁盘和硬盘的关系

磁盘包括软盘和硬磁盘,硬磁盘又叫硬盘

2.6 RAM是什么?

2.7 ROM是什么?

2.8 SRAM跟DRAM的区别?

特性 SRAM DRAM
存储原理 触发器 电容
是否刷新 不需要 需要
运行速度
存储成本
发热量
送行列地址 同时送 分两次送
破坏性读出
集成度

2.9 ARM在不同工作模式时使用的寄存器有所不同,但共同点是?

2.10 CPU要先对cache做什么,才能读取DMA数据?

答案:CPU要先对cache做一个invalidate作废操作,再从内存中读取数据到缓存,保证缓存和内存中数据的一致性,才能读取DMA数据。

解读:

2.11 大小端各自的优点是什么?

2.12 缓存技术的作用是什么?

2.13 缓存技术的种类

I/O接口,17

3.1 GPIO口一般有哪三个寄存器

以S3C2410为例,有控制寄存器、数据寄存器、上拉寄存器

3.2 GPIO的输入输出模式有哪些?

模式 解释
浮空输入 _IN_FLOATING 浮空输入,可以做KEY识别
带上拉输入_IPU IO内部上拉电阻输入
带下拉输入_IPD IO内部下拉电阻输入
模拟输入_AIN 应用ADC模拟输入,或者低功耗下省电
开漏输出_OUT_OD IO输出0接GND,IO输出1则悬空,需要外接上拉电阻才能输出高电平。当输出1时,IO口的状态由上拉电阻拉高,但同时IO口也可由外部电路拉低,可以通过输入数据寄存器读取电平变化,实现C51的IO双向功能
推挽输出_OUT_PP IO输出0接GND,IO输出1接VCC,读输入值是未知的
复用功能的推挽输出_AF_PP 片内外设功能(I2C的SCL,SDA)
复用功能的开漏输出_AF_OD 片内外设功能(TX1,MOSI,MISO,SCK,SS)

3.3 请说明总线接口UART、USB、SPI、IIC的异同点

总线接口 串/并 同步/异步 速率 线路 线路 距离 大小端
UART 串行 异步 全双工 慢、最快只有1.5Mbps 3线,RX、TX、GND 远,RS-485可达1200m 小端模式
USB 串行 同步 半双工 快,USB 3.0可达5Gbps 4线,Vbus,GND,D+,D- 近,不超过5m 小端模式
SPI 串行 同步 全双工 快,可达50Mbps 3线或4线,SCLK,SIMO,SOMI,SS 远,可达10m 大端模式
IIC 串行 同步 半双工 慢,最快只有3.4Mbps 2线,SCL,SDA 近,不超过30cm 大端模式

大端模式(Big Endian)和小端模式(Little Endian)是用于存储和访问多字节数据类型(如整数、浮点数等)的两种不同的方式。

  1. 大端模式

    • 在大端模式下,数据的高位字节(最高有效字节)存储在低地址处,而低位字节(最低有效字节)存储在高地址处。
    • 举例来说,对于一个16位整数0x1234,大端模式下存储方式如下:
      • 地址 | 数据

      • 0x1000 | 0x12
      • 0x1001 | 0x34
  2. 小端模式

    • 在小端模式下,数据的高位字节存储在高地址处,低位字节存储在低地址处。
    • 举例来说,对于同样的16位整数0x1234,小端模式下存储方式如下:
      • 地址 | 数据

      • 0x1000 | 0x34
      • 0x1001 | 0x12

总结起来,两种模式之间的主要区别在于字节的存储顺序。在大端模式下,数据的高位字节存储在低地址处,而在小端模式下,数据的低位字节存储在低地址处。这种差异主要影响了多字节数据类型的存储和访问方式,在进行数据交换或者与不同端模式的系统交互时需要注意转换。

3.4 什么是异步串行?什么是同步串行?

3.5 IIC总线时序图

状态 动作
总线空闲状态 SCL和SDA均为高电平,接上拉电阻
启动信号,START 在SCL保持高电平期间,SDA由高电平被拉低,由主控器发出
数据位传送,DATA 在SCL保持高电平期间,SDA上的电平保持稳定,低电平为数据0、高电平为数据1。用法:主控器和被控器都可发出
应答信号:ACK 在SCL保持高电平期间,SDA保持低电平,IIC总线上所有数据都是以8位字节传送的,发送起每发送一个字节,就在第9个时钟脉冲期间释放SDA高电平,由接收器反馈一个ACK
非应答信号:NACK 在SCL保持高电平期间,SDA保持高电平,如果接收器是主控制器,则它在收到最后一个字节后,发送一饿NACK,通知被控制器结束数据发送,并释放SDA(高电平),以便主控器发送一个STOP
停止信号 在SCL保持高电平时间,SDA由低电平被释放(拉高),由主控器发出

3.6 SPI的四种操作时序分别是什么?

SPI的时钟极性CPOL和时钟相位CPHA可以分别为0或1,由此构成了四种组合

![[Pasted image 20240408211543.png]]

![[Pasted image 20240408211555.png]]![[Pasted image 20240408211602.png]]
![[Pasted image 20240408211611.png]]

3.7 了解总线方式是全双工类型,哪种总线方式的传输距离较短?

3.8 编写一个通用类型串口接收程序,如何实现判断未知设备的端口和波特率

3.9 串口如何发送浮点型数据

可将多字节的浮点数数据分解为单字节逐个发送,接收后组合还原。

union {
	float f;
	unsigned long l;
} data_TX;
data_TX.f = 123.456
TX = (unsigned char) data_TX.l; //低8位
TX = (unsigned char) (data_TX l >> 8);
TX = (unsigned char)(data_TX l >> 16);
TX = (unsigned char)(data_TX l >> 24);  //高8位 
union{
	float f;
	unsigned long l;
}

data_RX.l = RX;
data_RX.l |= RX;
data_RX.l |= RX << 8;
data_RX.l |= RX << 16;
data_RX.l |= RX << 24;

3.10 UART和TTL、RS-232、RS-485的关系

电气协议 规定
TTL 晶体管-晶体管 规定+5V或>=2.4V等于逻辑1, 0V或者<=0.4V,等于逻辑0,噪声容限为0.4V
RS-232 采用负逻辑传输,规定-5V~-15V等于逻辑1,+5V~+15V为逻辑0,噪声容限为2V
RS-485 采用差分传输,规定A线电平比B线电平高200mV以上时为逻辑1,A线电平比B线电平低200mV以上为逻辑0

3.11 RS-232与RS-485的区别与联系

特性 RS-232 RS485
抗干扰性 更弱 更强,因为RS-485采用差分传输
传输能力 50m,更短 1200,更远
通信能力 只允许一对一通信 允许多达128个收发器
传输速率 20Kbps 10Mbps
信号线 RXD、TXD、GND三根组成全双工网络 半双工需要两根信号线,全双工需要4根信号线
电气电平值 RS-232规定-5V--15V等于逻辑1,+5V~+15V为逻辑0,噪声容限为2V A线电平比B线电平高200mV以上为逻辑1,低200mV以上为逻辑0
联系:

3.12 UART如何保证数据传输的正确性

3.13 保证数据无串扰,参数设置正确,但是串口A传输float类型给串口B,总是出现错误,可能是什么原因

可能是发送端和接收端的大小端不一致

3.14 什么吗MSB、LSB

3.15 UART一帧可以传5/6/7/8位,IIC必须是8位,SPI可以是8/16位

3.16 请列举常用的串行通信方式,简述串行通信和并行通信的不同之处,优缺点

3.17 CAN总线接口相对于RS-232接口,RS-485接口的优缺点是什么?