zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

大疆嵌入式二面问题集合

嵌入式集合 问题 二面 大疆
2023-06-13 09:12:10 时间

如涉及公司条例,可联系我删除,答案是自己整理的,答案不一定正确,欢迎指正

1.自我介绍(包括项目介绍)

2.讲讲最自豪的项目,项目的亮点和难点。

3.谈谈对大疆的看法;

答:RM,以小见大,大疆追求极致

4.因为项目中用到FreeRTOS,讲讲FreeRTOS的调度原理; 答:FreeRTOS从OS 操作系统支持三种调度方式:抢占式调度,时间片调度和合作式调度。 实际应用主要是抢占式调度和时间片调度

5.自己设计一个消息队列,会怎么设计; 答:在FreeRTOS中,任务与任务之间、任务与中断服务函数之间通常采用队列进行通信,首先创建队列,实现队列的功能,其次实现消息队列在操作系统中的作用(阻塞/唤醒);

6.对于大疆的负面新闻,怎么看待的。

答:无人机禁飞

7.对于一个新下发的项目,但是自己没有相关的技术储备,你会怎么做?

答:学习

8.一个智力题:一个5L的木桶和一个7L的木桶,如何获得8L的水?

答:5*3-7=8

9.了解什么总线架构(个人感觉可能想问ARM总线架构)和通信协议(I²C、SPI那些)?

答:

10.Linux驱动

11.其它问题集中在我所使用的FreeRtos、Linux、ROS操作系统中,具体有点忘了

12.讲下I2c和spi,I2c是怎么读写数据的,I2c速率有哪些 跟什么有关

答:I2C内部集成电路总线,一种常见的同步串行半双工通信协议,主要有四根线组成,其中SCL时钟线,SDA数据线

SPI串行外设接口,同步串行全双工通信协议,主要有SCLK SDI SDO CS

添加描述

数据传输以字节为单位,第一个字节表示从机地址+读写方向,后续数据格式由器件自己定义。数据传输中,SDA只能在SCL低电平时变化,并在SCL上升沿进行数据采样。

IIC的传输速率由“时钟线上(SCL)的时钟频率”决定。

特征:

串行的8位双向数据传输位速率再标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。

13.线程与进程,中断与异常。然后围绕着这两个话题问了十几个问题

14.反问环节。

15.大疆产品哪里可以改进,Linux虚拟文件系统

答:续航

16.问了内存管理,任务调度和中断的几个相关问题(一半时间都在这上面)

答:

17.用到的STM32芯片硬件有了解过吗?(只说了内存、Flash大小。。。) 答:CPU主频:F103系列72MHz,F4系列168MHz;

C8T6:FLASH 64K,RAM 20K;ZET6:FLASH 512K,RAM 64K

开发板A型选用STM32F427IIH6 具有2048 KB Flash 及 256KB RAM

18.你开发过哪些驱动吗?

答:

19.STM32中断控制器是什么?

答:STM32的中断管理利用了NVIC(Nested Vectored Interrupt Controller)嵌套向量中断控制器,它把所有的外设中断和系统异常用一张向量表来管理,每个系统异常和外设中断都被分配相应的地址,除了一些系统异常的优先级不能改变外,其余的系统异常和中断的优先级都可变化。

20.C++多态怎么理解?C++有哪些多态的典型例子?(例子给我问懵了)

C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override),或者称为重写。重写的话可以有两种,直接重写成员函数和重写虚函数,只有重写了虚函数的才能算作是体现了C++多态性。

多态分为动态多态、静态多态、函数多态和不太常见的宏多态,编程者的多态通常是指动态多态,是基于继承机制和虚函数实现的

21.对嵌入式开发有哪些了解?做了哪些准备?(自己提到了FreeRTOS)

答:

22.FreeRTOS的内存管理怎么实现的?为什么这么做?(只记得分为了三个堆,再问就不知道了)

答:FreeRTOS为我们提供了5种内存管理方法,这5中内存管理方法各有不同 ,分别存放在heap_1、heap_2、heap_3、heap_4、heap_5。

23.线程之间的通信方式?(我只知道进程间的通信方式啊。。。然后提到线程了线程同步的锁、信号量机制,反问我这是线程间通信方式吗???我:同步不算通信?)

答:进程通信是共享内存、消息传递和管道流?

线程通信(1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁

24.对大疆有什么认识

答:RM,追求极致,无人机

25.对大疆的某一款产品有比较详细的了解吗?

答:有接触过Robomaster S1,看过无人机视频

26.假如你有一架无人机,你会用来干什么?

答:航拍

27.外部RAM和内部RAM区别,怎么分配

外部RAM一般是CPU以外的器件提供的,特点是容量大,但是因为需要通过CPU的总线接口访问,速度慢;内部RAM通常指CPU自带的RAM,因为访问路径短,所以速度快,但受CPU器件限制,容量有限。通常的分配规则是,常用的变量,子函数的局部变量,循环语句的控制变量之类,都分配到内部RAM,而比较大的数组,不需要快速读写的变量,就分配到外部RAM。

28.外部总线和内部总线区别

内部总线是外设与处理器之间的总线,用于芯片一级的互连。

外部总线是微机和外部其他设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,用于设备一级的互连。

内部总线就是开发人员经常用到的各种协议,比如SPI总线协议、SCI总线协议、IIC总线协议、UART、GPIO、CAN、SDIO、IIS等。是CPU和外设进行控制指令,访问地址,交换数据的通信规则。

外部总线最具代表性的就是串口、USB接口、音频接口这些了。

29.DSP指令

答:emmmm,不会

30.MCU上的固件,数据是怎么分配的

31.MCU启动流程

答:1.初始时钟

2.关闭看门狗

3.建立中断向量表

4.初始化堆栈寄存器

5.内存初始化

32.IAP是怎么升级的,突然断电怎么办