(嵌入式面经)第11章 20+公司面经杂谈(三):科大讯飞、阳光电源、蔚来

预计2025.03.11,完成优化/完善该内容,敬请期待!!!

(以下为学习过程中的粗略知识点,还未经过优化/完善,后续会变成更有条理的形式!!!)

介绍你实习期间学到了什么,项目中遇到了什么问题,怎么解决的。

八股:

1、gpio输入输出有哪几种

2、iic协议介绍以及时序

3、static作用

反问:

贵公司技术栈用RTOS还是LINUX

1.讲讲项目中如何去使用esp8266。

2.IIC接口地址位有几位,只有这一种模式吗,理论上能接多少外设,实际上能接多少,是什么影响的

在7位地址模式下,理论上可以连接127个设备(0x00和0x7F是保留地址),而在10位地址模式下,理论上可以支持1023个设备。

地址冲突:如果多个设备使用相同的地址,则会产生冲突,无法正常通信。

功耗和驱动能力:从设备和主设备的电流驱动能力也是一个限制因素。

总线信号质量:过多的设备可能导致信号衰减和噪声增加,从而影响通信质量

3.写过IIC驱动吗,为什么要这么去实现,简述一下

1. stm32里,串口接收哪几种模式,你比较常用什么模式,为什么呢。它是接受断如何判断数据接受结束的。

轮询模式:主循环中不断检查串口是否有数据可读。

中断模式:利用串口的中断功能,当数据到达时触发中断处理程序。

DMA模式:使用DMA控制器自动接收数据并存储到内存中,无需CPU介入。

常用模式:通常使用中断模式或DMA模式。

中断模式的优势在于可以减少CPU的负担,不必频繁轮询串口状态。

DMA模式适合大批量数据传输,进一步降低了CPU的负担,提高系统性能。

5.讲讲项目里mpu6050如何工作的,有哪些参数,有什么作用。

6.pid参数是自己调的吗,怎么去调节的。

9.项目中用到了FreeRTOS,自己移植过吗?

10.讲讲移植了哪些文件,他们有什么作用。

11.FreeRTOS如何去实现任务调度的。

12.FreeRTOS的多任务之间如何去进行通信的,什么方法,它实现原理是什么。

13.说说stm32的最小系统是什么。

14.聊聊C语言基础知识吧,说说什么是堆和栈吧,在mcu中程序运行的空间是什么样的。

15.static和const的区别,常用在什么地方,空间上有什么区别吗

16.static修饰的在其他文件能使用吗。

17.说说extern。

18.说一下局部变量与全局变量的区别。在MCU上空间上有什么不同吗?

19.反问

20.聊了聊讯飞的技术栈。

1.分享你在学校学习期间你觉得挺不错的学习经历,上的一些课有哪些独到的见解(第一次遇见这种问题,懵逼了)

2.设计模式:你对c++有哪些看法,主要用到了哪些点(我搞嵌入式的,主要用到封装),用到了哪些设计模式(我说单例)

工厂模式

定义:将工厂变成一个抽象类,在里面定义一个纯虚函数,具体生成什么产品交给子类继承去决定(抽象产品类-》具体产品类-》抽象工厂类-》具体工厂类)

单例模式(懒汉式、饿汉式)

定义:一个单例类只创建自己的唯一实例对象,有且只有一个,这个单例类提供了一种访问其唯一实例的对象的方式,可以直接访问,不需要实例化该类的对象。

作用:在整个程序空间中,该类只存在一个实例对象。

适配器模式

定义:适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。例如,读卡器是作为内存卡和笔记本之间的适配器。将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。

其中适配器模式又分为类适配器和对象适配器

C++常用的11种设计模式_c++设计模式-CSDN博客

3.如何自己实现一个list

4.数据传入速度大于处理速度是怎么解决(我回答加个buffer)

• 增加缓冲区大小:

• 增加缓冲区的大小可以容纳更多的数据,使系统有更多时间处理数据,防止数据溢出。

• 多线程处理:

• 使用多线程将数据的接收和处理分离开来,一个线程负责接收数据并放入缓冲区,另一个线程负责从缓冲区取出数据进行处理。这种方法可以更好地利用多核处理器的资源。

• 优先级处理:

• 对数据进行优先级排序,优先处理重要或紧急的数据。较低优先级的数据可以延迟处理或在负载过大时丢弃。

• 流量控制:

• 实施流量控制机制,如令牌桶算法或滑动窗口协议,控制数据的流入速度,使其与处理能力匹配。

• 数据压缩:

• 如果数据量非常大,且有较高的冗余,可以使用数据压缩技术减少传输的数据量,从而减轻处理的压力。

5.让我自己说一些linux的知识,什么进程通信,进程管理的,想到啥说啥,属于是自己给自己提问题了

1、自我介绍

2、问项目细节和八股

(1)挑一个你最熟悉的项目详细介绍,说个人主要负责的工作

(2)在项目中怎么考虑控制的实时性

(3)介绍项目的软件架构是怎么设计的

(4)堆和栈的区别,static修饰的局部变量存放在哪里

(5)进程间的通讯方式

(6)c语言编译链接的过程(预处理 编译 汇编 链接)

(7)内联函数和宏函数的区别

(8)构造函数和析构函数什么时候会被调用

(9)笔试题最后一题的思路是什么?

进程调度策略有哪些?

Freertos进程调度策略是什么?

Linux进程调度策略是什么?

讲一下动态规划和贪心,除了动态规划和贪心还有哪些算法解决最优问题?

排序算法哪些用了分治思想?

归并排序,快速排序稳定性如何,时间复杂度是多少?

反问:

讯飞的培养策略,面试官对我的看法

1.自我介绍

2.sizeof与strlen不同,我只说了char s[100] = "0123456789"类似的情况

3.extern C的作用(没答出来)

4.堆和栈的区别,哪些变量使用堆,哪些使用栈

5.滤波器作用

6.为什么使用vector

7.项目成果

8.C++开发经验

1.自我介绍

2.介绍一个项目

3.(项目里用到了iic)问iic实现过程,地址是多少位(7比特加一个读写位),iic的SCL和SDA的IO口模式。还对iic展开了一些,我忘记了。问得挺深挺细。

4.c++问了函数重载,析构函数和构造函数。c问了strpy 和memorycpy 。 简历提了一嘴python,问了python里的pass的作用,list和元胞数组的区别。

5.简历里另一个项目有用到spi,问了spi和iic的区别。

其他忘了。

6看我提到了语音处理,问我怎么实现语音分析,时域转频域的方法,用过滤波吗,用过示波器吗,用示波器测什么,一般分辨率调到多少。

7.介绍了一下嵌入式工程师的四个方向。问我对哪个方向有兴趣。

智能指针中shared以及unique区别

2.10 阳光电源

阳光电源股份有限公司(股票代码:300274)是一家专注于太阳能、风能、储能、氢能、电动汽车等新能源电源设备的研发、生产、销售和服务的国家重点高新技术企业。主要产品有光伏逆变器、风电变流器、储能系统、水面光伏系统、新能源汽车驱动系统、充电设备、可再生能源制氢系统、智慧能源运维服务等,并致力于提供全球一流的清洁能源全生命周期解决方案。

2.11 蔚来

2.11.1 公司背景

蔚来是一家全球化的智能电动汽车公司

2.11.2 问题准备

自我介绍

针对项目聊理解 无八股

(二叉树应用,文件系统和内存管理之间的交互)

手撕

1 第一题leet88,easy。

两个有序数组合并,数组1预留了数组2的空间。

acm模式,输入写好了才跟我说不用写输入输出,直接写class solution吧。

我很笨的写了合并之后冒泡排序(不让sort)还写bug了。然后面试官告诉我可以开辟额外数组放进去。好吧,被预留空间误导了,上来就想着把2放进1里。

不过最好的方法不需要额外空间,可以看leet官解。

2 第二题leet451,中等。

一个字符串,按照各字符出现频率重新排序。

我没写出来,说了下思路。

3 面试官问交叉编译用过吗,我说我都用现成的ide的比如keil5 vsc。

4 问我linux了解吗,用什么命令。

不太了解,说了几个最基本的命令。

5 反问。

结束。

我以为会问项目 八股 自我介绍。结果都没hhh

显然要挂,就当长长见识了。

二面更新————————

来了个提问很慢的面试官hhh看半天才问一个。不过因为我答得快+没有做题,45min面完了。

1自我介绍

2问专业,因为我专业是海洋工程,比较少见吧。就了解了下专业、课程。

3问static,问volatile。答了。

4我说我非科班,自学的计网、操作系统、数据结构。数据库没学过。

他就问tcp握手挥手知道吧,我说知道。

他问如果客户端发送的tcp报文里的目的端口和服务端的端口不一致,会怎么样。

这我真不知道。

5他问线程进程,答了。

6问有一个设备要联网,怎么给他分配一个唯一的id。

我说直接用mac地址就是唯一的。如果要另外定一个id,可以用哈希函数。

7问了网络7层结构,我把表示层给忘了,淦。

8tcp和udp相比,udp的优点?

一般不都是问tcp优点么。。。我只说了结构简单,效率高一点,编程方便点。感觉没答到点子上。

9问项目。让我挑一个项目说。

其实我项目都比较拉胯(从程序角度来说都难度不大)。我就说了个最近在做的项目,也是毕业课题。

然后问答了几个来回。比如项目里的难点。两台设备的通信怎么做的(ros里封装好的通信😅)。

9.1问嵌入式,比如中断处理的步骤。基本都答了。

10我估计他实在没啥想问了,说看我英语六级比较高,让我用英语介绍这个项目。

我说我项目好多术语,我说了你也听不明白😂

他说那你简单介绍下自己的情况或者项目的情况吧。

我就临场发挥了一下(几年没说英语了,要命)。

他说还不错🌝🌝

11反问。我问我还需要自学下啥。

他说学一下数据库,学一下计网(实践应用一下)

,因为我计网就是背的知识点,细节一概不知hhh

说他们主要做车云互联的。

时间:2021.8.2

时长: 20:00-20:55 55min

1.自我介绍

2.说一说项目流程,以及项目中有什么做的不足的地方?

3在这个项目中你做了什么工作?

4.怎么进行电机的准确定位,有无反馈

5.pid算法

6.CAN通信介绍;CAN通信报文的标识符有几位?

7.用到了哪些嵌入式的操作?

8.用到了几路PWM?

9.有没有用到嵌入式系统?为什么不用?【无,但是和linux系统有点儿联系-引导了第二个项目】

10.简介第二个项目;项目实现了嘛?

11.之前的比赛为什么都集中在一个时间段?

12.说说linux系统和嵌入式系统的相似之处

13.线程和进程的区别和联系?

14.线程的通信方式你知道哪几个?说一说。

15.TCP和UDP区别,说一说tcp通信的过程

16.三次握手过程?

17。四次挥手时服务器和客户端哪个先关闭?【无所谓先后,都可以调用close(),作为发起关闭链接的一方】

18.现在的视频连线用的是哪个协议?为什么

19.你说管道通信实现比较简单,但之前不是说没在linux系统上编程嘛?【用的是vscode】

20.数组和链表有什么区别?

21.用过哪些数据结构?说说队和栈

22.说一说虚拟内存空间

23.代码:字符串逆转

24.再问一个问题:程序的编译步骤?

25.反问环节

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

作者简介:仅用大半年时间0基础天坑急转嵌入式开发,逆袭成功拿下华为、vivo、小米等15个offer,面试经验60+,收藏20+面经,分享自己的求职历程与学习心得。 专栏内容:最新求职与学习经验,详细讲解了嵌入式开发的学习路径、项目经验分享、简历优化技巧、面试心得及实习经验,从测评,笔试,技术面,HR面,AI面,主管面,谈薪一站式服务,助你突破技术瓶颈、打破信息差,争取更多大厂offer。

全部评论

相关推荐

1. 如何在嵌入式系统中实现蓝牙低功耗(BLE)通信?2. 在STM32中如何配置和使用ADC进行模拟信号采集?3. 嵌入式系统中如何实现PID控制算法?4. 如何在嵌入式系统中实现图像的边缘检测?5. 在FreeRTOS中如何实现任务的优先级调度?6. 嵌入式系统中如何实现动态内存管理?7. 如何在STM32中实现I2C通信?8. 在RT-Thread中如何实现定时器的使用?9. 嵌入式系统中如何实现数据加密与解密?10. 如何在STM32中配置和使用SPI接口?11. 嵌入式系统中如何实现音频信号的处理与分析?12. 在FreeRTOS中如何实现任务的挂起与恢复?13. 如何在嵌入式系统中实现RFID读写功能?14. 在STM32中如何实现CAN总线的接收与发送?15. 嵌入式系统中如何实现温湿度传感器的数据采集?16. 如何在RT-Thread中实现信号量的使用?17. 嵌入式系统中如何实现电池电量监测?18. 在STM32中如何实现USB主机模式的通信?19. 如何在嵌入式系统中实现数据压缩与解压缩?20. 在FreeRTOS中如何实现软件定时器的使用?21. 嵌入式系统中如何实现NFC通信?22. 如何在STM32中配置和使用RTC进行时间管理?23. 嵌入式系统中如何实现机器视觉算法?24. 在RT-Thread中如何实现消息邮箱的使用?25. 如何在嵌入式系统中实现数据的远程监控?26. 在STM32中如何实现PWM信号的调制与解调?27. 嵌入式系统中如何实现多线程的资源共享?28. 如何在FreeRTOS中实现任务的优先级动态调整?29. 嵌入式系统中如何实现环境光传感器的数据处理?30. 在STM32中如何实现LCD显示屏的图形绘制?答案附在面经中https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
5
9
分享

创作者周榜

更多
牛客网
牛客企业服务