嵌入式考点梳理

嵌入式考点梳理_第1张图片

图源自fm.zju.edu.cn,侵删。

1.基本概念

(1)定义:有CPU,上面有程序在跑

嵌入式系统特点:功能、可靠性、成本、体积、功耗

嵌入式系统体积比较小

(2)与其他系统的区别:

区别于PC:PC资源更足:CPU、内存、硬盘、电源

区别于逻辑硬件电路:硬件上面没有CPU

(3)软硬件划分

软件:操作系统、编程模型

硬件:CPU

2.MCU 微控制器/单片机

封装尺寸相同时选容量最大的,实际做的时候可以换成容量小的

32位ARM

16位Thumb

     Thumb2——Cortex{

                       Cortex A application 高端 手机

                                                  Cortex R Realtime

                       Cortex M Microcontrol 低端单片机

}

不考X86

arm 特权模式、用户模式、中断模式、快中断模式

MIPS无快中断,快中断关系到寄存器

工作模式之间怎么切换,如用户模式怎么切换到系统模式:软中断

ISA条件执行

S标志:要不要改寄存器,带S标志修改标志寄存器会影响后一条跳转指令的结果。后一条指令如果是跳转,并且前面修改了标志位就要stall

中断向量表的第一项是一个初始值,reset启动地址,Cortex启动地址不为0,ARM启动地址为0

startup.s拷贝有全局变量的寄存器,清零xxxxxx寄存器

main不是上电后第一个执行,启动程序之后才做

3.软件模型

(1)轮询:没有任何中断

(2)前后台:主循环要做的事情是固定的,有中断和循环,把数据放到共享内存,在大循环里读取共享内存,在大循环里要不断关中断开中断

(3)中断驱动:没有大循环,只有中断,中断来就做事情,没有就休眠

(4)动态队列:在中断里做基础工作,其他工作放队列里,主循环要做什么由队列决定

VS前后台 主循环要做的事跟中断有关系

VS中断 中断来了之后事情不是在中断中做的,而是在主循环里面做的

4.bootloader做什么:两种:一种为了linux,一种为了RTOS

一种SDRAM,一种Flash(本身)

两阶段工作:把CPU放在核里,初始化CPU、SDRAM,调整CPU频率等跟操作系统无关的事情

把操作系统可执行代码放在SDRAM,然后跳到SDRAM,开始系统

不具有第二阶段工作能力的bootloader,能把cpu初始化,然后跳到flash中开始操作系统。

5.RTOS

(1)什么是实时:ddl前完成

强实时

弱实时

ns us ms

(2)抢占式调度

①什么时候调度

还在CPU上不会被拉下来,要么自己发起:新任务(唤醒一个线程)、优先级发生变化、IO等待(间接主动等待,线程主动发起)。要么中断

调度是怎么实现的:堆栈指针、栈顶指针、寄存器,切出来做什么,切进去做什么

一个任务新建时要不要在寄存器里放假的什么东西(?)

优先级反转时怎么解决:提高优先级

6.Linux

设备驱动程序,作为内核模块的方式加载,内核模块在加载的时候两个必须的函数,in out。

7.接口与外设

GPIO:通用输入输出,复用:有多个功能,输入输出不能同时进行,不需要关心太EE的事情

在ARM上运行的速度远远低于CPU上的速度

外设寄存器实际上是一个地址

文件系统的sys文件夹,改动可以操控GPIO

串行通信:

UART:9600(波特率) 8(bit) N(停止位) 1(校验位1位)

1个起始位+8+1个停止位=10个位,考法:考是否通过校验

SPI

9.文件系统

NOR:可以给出地址直接读,可以运行程序,速度比SRAM慢,大容量数据储存器

NAND:不能给出地址读一个值,一次读一个block,写入、擦除速度慢,适合做bootload

flash:不能随意写入,写入之前先要擦除,读-擦除-写,一次写一个block,有写入次数限制

日志文件系统:往下写,不擦除

根文件系统:虚拟文件系统

 

开发过程:

上位机:PC

下位机:嵌入式板卡

中间怎么连的:下载调试一条线,通信一条线

仿真器:具有硬件的功能

 

Makefile 目标 依赖 动作

你可能感兴趣的:(嵌入式考点梳理)