嵌入式面试经验分享1——应届生

1.首先需要准备自己的自我介绍,重点突出符合职位的亮点

2.熟悉自己的项目,熟悉基本流程,里面用到的知识点

3.复习基本的·C语言知识点

3.1几个关键字的作用

3.1.1auto:指定为自动变量,由编译器自动分配及释放,通过栈上分配

3.1.2static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部

3.1.3register:指定为寄存器变量,建议 编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数

3.1.4extern:指定为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的对象的一个“引用”

3.1.5const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)

3.1.6olatile:与constant合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存 中 取 得该变量的值

3.2内存占据

3.2.1  32位编译器:

char :1个字节

 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64编译器)

short int : 2个字节

int:  4个字节

unsigned int : 4个字节

float:  4个字节

double:   8个字节

 long:   4个字节

 long long:  8个字节

unsigned long:  4个字节

 64位编译器:

  char :1个字节

  char*(即指针变量): 8个字节

   short int : 2个字节

   int:  4个字节

   unsigned int : 4个字节

   float:  4个字节

   double:   8个字节

   long:   8个字节

  long long:  8个字节

  unsigned long:  8个字节

4.相关的硬件知识

4.1 spi(串行外设接口):全双工,四条线(串行时钟,串行数据输出,串行数据输入,片选信号),没有应答信号,只有一个主设备

 spi接口具有如下优点:

 1) 支持全双工操作;

 2) 操作简单;

 3) 数据传输速率较高。

 同时,它也具有如下缺点:

 1) 需要占用主机较多的口线(每个从机都需要一根片选线);

 2) 只支持单个主机

4.2 iic(集成电路总线):半双工,两条线,线少,但是技术麻烦,通过地址选信号

   优缺点

    1)优点

 只使用两条信号线;

 支持多主机多从机;

 有应答机制。

    2)缺点

   速率比SPI慢

 4.3USART(通用异步接收器):没有时钟信号,所以通过波特率,全双工,三根线

  优缺点

  1)优点

  只使用两条信号线;

  不需要时钟信号;

  有校验位进行错误检测;

  2)缺点

  传输速率比较低。

  spi和iic都是短距离的,芯片和芯片的通信,usart是两个设备的通信,长距离

 4.4单片机最小系统?内部主要结构?

答:电源,晶振,复位电路;

内部结构:ROM/RAM,计时器,中断,I/O串并行口,总线

4.5RAM和ROM的区别?

ROM(只读存储器):一次写入后只能被读出,而不能被操作者修改或者删除,一般用于存放固定的程序和数据表格

RAM(随机存储器):内存,存放各种现场的输入/输出数据,中间计算结果以及与外部存储交换信息,或者作堆栈(特点:先进先出,后进后出)

4.6看门狗原理:在系统运行以后就启动看门狗计数器,此时看门狗就开始自动计时,如果达到一定时间还不去给她进行清零,看门狗就会溢出从而引起看门狗中断,造成系统复位

 

5.数据结构

5.1队列和栈区别

1.队列先进先出,栈先进后出

2.对插入和删除操作的限定不同

栈是限定只能在表的一端进行插入和删除操作的线性表

队列是限定只能在表的一端进行插入,在另一端进行删除操作的线性表

3.遍历数据速度不同

栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前后的一致性。

队列则不同,它基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多

 

其他问题

1.iic的上拉电阻有什么用,为什么不是下拉电阻?

2.数组存储是连续的吗,怎样定义不连续

添加公众号:光脚的小孩 免费获得大量学习资料

你可能感兴趣的:(面试,经验分享,职场和发展)