Open Geekiter opened 6 months ago
CPU的内部结构大致可以分为?
ARM内部传输数据采用ARMA总线,共4个版本
__interrupt double compute_area(double radius){ double area = PI * radius * radius; printf("Area = %f", area); return area; }
处理器在中断处理的过程中,一般分为以下几个步骤:
0x0000 0018,0x0000 001C
寄存器是由触发器构成的,因此掉电会丢失数据
磁盘包括软盘和硬磁盘,硬磁盘又叫硬盘
答案:CPU要先对cache做一个invalidate作废操作,再从内存中读取数据到缓存,保证缓存和内存中数据的一致性,才能读取DMA数据。
解读:
以S3C2410为例,有控制寄存器、数据寄存器、上拉寄存器
大端模式(Big Endian)和小端模式(Little Endian)是用于存储和访问多字节数据类型(如整数、浮点数等)的两种不同的方式。
大端模式:
小端模式:
总结起来,两种模式之间的主要区别在于字节的存储顺序。在大端模式下,数据的高位字节存储在低地址处,而在小端模式下,数据的低位字节存储在低地址处。这种差异主要影响了多字节数据类型的存储和访问方式,在进行数据交换或者与不同端模式的系统交互时需要注意转换。
SPI的时钟极性CPOL和时钟相位CPHA可以分别为0或1,由此构成了四种组合
![[Pasted image 20240408211543.png]]
![[Pasted image 20240408211555.png]]![[Pasted image 20240408211602.png]] ![[Pasted image 20240408211611.png]]
可将多字节的浮点数数据分解为单字节逐个发送,接收后组合还原。
使用共同体来分解
union { float f; unsigned long l; } data_TX; data_TX.f = 123.456
发送时发送4字节(小端模式、低位优先)
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;
- `data_RX.f == data_TX.f` ## 3.10 UART和TTL、RS-232、RS-485的关系 - UART是一种具有协议特征的收发器、接口、总线,也就是说它是一个按照特定协议来收发数据的硬件,它规定了数据按照什么格式和时序来传输 - 而TTL、RS-232、RS-485是三种不同的电气协议,是对电气特性的规定,用于数据传输通路,但是它并不包含对数据的处理,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 | 联系: - 都可以通过DB-9连接器连接 - 均可采用屏蔽双绞线传输 - 都是串行通信 - 通信方式都是全双工,一般RS-485是半双工 ## 3.12 UART如何保证数据传输的正确性 - 在数据位的两端添加起始位、奇偶校验位、停止位等用于数据的同步和纠错 - 在接收端用16倍波特率对数据进行采样,取中间的采样值,很大程度上确保了采样数的正确性 ## 3.13 保证数据无串扰,参数设置正确,但是串口A传输float类型给串口B,总是出现错误,可能是什么原因 可能是发送端和接收端的大小端不一致 ## 3.14 什么吗MSB、LSB - MSB,Most Signification Bit:最高有效位,是指二进制中最高值的比特 - LSB,Least Signification Bit:最低有效位,是指二进制中最低值的比特 ## 3.15 UART一帧可以传5/6/7/8位,IIC必须是8位,SPI可以是8/16位 ## 3.16 请列举常用的串行通信方式,简述串行通信和并行通信的不同之处,优缺点 - 异步通信UART和同步通信SPI、IIC、USB等 - 串行速度慢,但占用资源少,线间干扰小 - 并行速度快,但占用资源,线间干扰相对较大 ## 3.17 CAN总线接口相对于RS-232接口,RS-485接口的优缺点是什么? - CAN总线接口相对于RS-232接口的优点是抗干扰能力强、传输距离远。它采用差分传输,内置CRC校验,传输可靠性强 - CAN总线接口相对于RS-484接口的优点是构成多主系统,同一时刻可以有两个或两个以上的设备处于发送状态,适用于实时性要求高的工控领域。
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,这段代码有什么问题
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的区别和联系?
2.4 SRAM、DRAM、SDRAM的区别
2.5 磁盘和硬盘的关系
磁盘包括软盘和硬磁盘,硬磁盘又叫硬盘
2.6 RAM是什么?
2.7 ROM是什么?
2.8 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的输入输出模式有哪些?
3.3 请说明总线接口UART、USB、SPI、IIC的异同点
大端模式(Big Endian)和小端模式(Little Endian)是用于存储和访问多字节数据类型(如整数、浮点数等)的两种不同的方式。
大端模式:
小端模式:
总结起来,两种模式之间的主要区别在于字节的存储顺序。在大端模式下,数据的高位字节存储在低地址处,而在小端模式下,数据的低位字节存储在低地址处。这种差异主要影响了多字节数据类型的存储和访问方式,在进行数据交换或者与不同端模式的系统交互时需要注意转换。
3.4 什么是异步串行?什么是同步串行?
3.5 IIC总线时序图
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 串口如何发送浮点型数据
可将多字节的浮点数数据分解为单字节逐个发送,接收后组合还原。
使用共同体来分解
发送时发送4字节(小端模式、低位优先)
接收端也定义同样的结构体
data_RX.l = RX; data_RX.l |= RX; data_RX.l |= RX << 8; data_RX.l |= RX << 16; data_RX.l |= RX << 24;