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接口的优缺点是什么?