如涉及公司条例,可联系我删除,答案是自己整理的,答案不一定正确,欢迎指正
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是怎么升级的,突然断电怎么办