嵌入式
1、什么是嵌入式
2、精简指令集和复杂指令集
3、cpu内部架构和工作原理
4、cpu内核态和用户态,用户态怎么进入内核态
5、cpu流水线工作原理
6、嵌入式流水线有什么不同
7、什么是超流水线
8、什么是乱序执行
9、cpu两种架构体系
10 说说rom 和ram的区别
11 、说说了解哪些存储器
12、说说你了解哪些嵌入式操作系统,各有什么优点
13、什么是DMA
14、FreeRTos和ucos的区别
15、说下linux proc下面有什么文件
16、中断的使用场景和注意事项
- 外设控制:当外部设备需要向CPU发出信号时,如键盘按键,鼠标点击等,可以通过中断机制实现设备和CPU之间的交互。
- 多任务处理:当计算机同时需要执行多个任务时,可以使用中断机制来切换任务。
- 异常处理:当程序发生错误或异常时,可以使用中断机制来处理异常情况,如处理器保护异常、缺页异常等。
注意事项:
- 中断处理程序必须尽可能快速地执行完毕,以确保CPU能够尽快地回到原来的任务上,否则会影响系统的正常运行。
- 中断处理程序需要占用CPU资源,过多的中断会使CPU负载过高,降低系统性能,因此需要合理地分配中断资源。
- 中断处理程序需要保证数据的一致性和完整性,防止数据丢失或错误。
- 中断处理程序需要考虑可重入性,以便在多个任务同时发生中断时能够正确处
中断函数参数传递
上下文结构体传递:在中断处理程序中,通常会定义一个上下文结构体,用来保存中断处理程序需要的参数和状态信息。当中断触发时,系统会将上下文结构体的内容压入堆栈中,中断处理程序再从堆栈中取出这些参数进行处理。
寄存器传递:一些CPU支持将参数传递到特定的寄存器中,以便在中断处理程序中直接访问这些参数。例如,x86架构的CPU支持将参数传递到AX、BX、CX、DX等通用寄存器中,ARM架构的CPU支持将参数传递到R0~R3寄存器中。
(二)
4、A,RM处理器模式有哪几种
1、用户模式
2、快速中断
3、外部中断
4、管理模式
5、数据访问中止模式
6、系统模式
7、未定义指令中止模式
5、ARM处理器几种模式切换的过程
软中断 、复位 管理模式
外部中断 快速中断或者外部中断模式
cpu异常 数据访问中止模式 ,无效指令 未定义指令中止模式
6、嵌入式中断的过程
保存现场
模式切换
获得中断源
中断处理
中断返回
7、说下DMA
一种为i/o使用一种特殊的直接存储器访问芯片,它可以直接控制外围设备的数据流,而无需持续的cpu干扰,
8、中断和异常的区别
9、大端模式和小端模式
大端 高数据放在低地址,低数据放在高地址
小端 低位有效数据放在高地址,高位有效数据存在低地址
10、
12、什么是mmu,工作原理是什么
mmu是用来管理虚拟内存的,物理内存的控制线路,同时负责虚拟地址映射为物理地址
扩大地址空念、内存保护与共享】避免内存碎片、
21、c语言结构体怎么定义节省内存
1、在保证值域的情况下,用小字节变量代替大字节变量
2、将各个成员按其所占字节树从小到大声明,以后减少中间的填补空间
3、取消字节对齐
三、
3、bootloader的启动分哪两个阶段
stage1:
硬件初始化
为stage 2准备RAM空间
将stage2代码复制到RAM空间
设置好堆栈
跳转到stage2的c入口点
stage2
初始化硬件
检测系统内存映像
将内核映像和根文件系统映像从flash上读到RAM空间中
为内核设置启动参数
调用内核
7、说下设备的种类、各自有什么特点
字符设备:以字为单位进行数据处理,一般不使用缓存技术,只能按照顺序读写
块设备数据 可以按照可寻址的块为单位进行处理,大多数快设备允许随机访问
网络接口用于网络通信
四
1、i2c
总线有两根双向数据线,一根是数据线 SDA,一根是时钟先 SCL
空闲: SDL SCL都是高电平
起始信号 SCL 高 SDL由高变低的跳变
停止信号 SCL 高 SDL由低变高的跳变
主设备在SCL线上产生一个时钟脉冲,将SDL线上传输一个数据位,当一个字节数据传输完之后,从设备将拉低SDA线,回传给主设备一个应答位,这就是一个字节的真正传输
系统中的外围设备都有一个七位的从器件地址,通过这个地址来选择从设备
2、spi
一个主多格从
四根线
1、主设备数据输入,从设备输出
2、主设备输出,从设备输入
3、时钟线
4、时钟使能线,当要和某个从设备通信就将之使能
3、uatr
数据包的内容由起始位、主体数据、校验位、停止位组成,通讯双方的数据包格式以及波特率要约定一样
起始位:先发一个逻辑0
数据位: