地平线提前批 一面凉:
投递简历过程:官网投递9月份之前投的都是提前批,投了北京、上海、南京地区的嵌入式软件研发岗,北京和上海的都被筛掉了,南京的捞了我,hr小姐姐打电话邀约面试。
一面凉:
电话面试,第一次收到面试通知十分痛苦,面试AI芯片独角兽,完全没有一点点准备,知识也没有捡起来,十分紧张,面试官很好,不停开导。
1、自我介绍
2、解释register关键字
3、字节对齐
4、数据库查询左连接和右连接的区别(跪了,数据库全忘了)
5、static关键字在函数中、源文件中、头文件中有什么区别(凉)
6、数据结构和算法了解不,分治法、贪心法(凉)
7、项目介绍
8、你还有什么要问的
总结:面试表现太差,17分钟结束,自己太菜,面试基础很重要,牛客上说地平线嵌入式的面试考的很广。
小米提前批 二面凉:
投递简历过程:官网投递9月份之前投的都是提前批,投了嵌入式工程师,地平线面试完晚上突然接到小米公司的电话,面试官邀约面试。
一面 27min:
牛客网视频面试,心想又完了,还没复习又来面试,而且是世界五百强公司的面试,作为米粉异常痛苦(对自己恨铁不成钢),好在小米的面试官也十分和善。
1、自我介绍
2、项目介绍
3、项目中的总线解释一下
4、线程同步
5、编程题:冒泡排序、链表逆置(面试官说,我考一下你的编程能力吧,要简单的题目还是要难的题目?答:简单的)
6、谈谈你对小米的了解
7、你还有什么想问的
8、工作地点选一个(深圳,选完面试官解释北京负责小米系列,南京负责MIUI,深圳负责红米系列)
二面 30min:
小米深圳的面试官打电话邀约面试
1、C/C++程序 内存分布情况 常量所在的区(没回答好)
2、STM32 GPIO(没有认真复习,细节全记错了,比如开漏输出)
3、什么是倒灌(本来很能理解电流倒灌的原理,因为学习FPGA时了解到线与逻辑会导致倒灌而损坏器件,当时没回想起来,用自己的话表述的,不甘心)
4、深挖项目(没回答好,自己的项目也必须好好复习)
5、问了一下小米的培训机制,导师制,最好实习6个月左右(大佬肯定不用,还有几万的签字费)
总结:小米基本会给很多人面试的机会,只怪自己太菜,无准备之战,必败无疑。
广州视源(CVTE)一面凉:
投递简历过程:官网投递,选择笔试场次(20多道选择题,2道编程题),笔试通过后选择面试场次。
一面 60+min:
去面试酒店扫码排队,酒店人超多,一定要提前去
1、自我介绍
2、项目介绍,画出硬件拓扑图
3、解释一下中断 中断处理时间过长(中断下半部) 中断触发方式 中断处理函数注意事项(有参数和返回值吗,为什么)
4、编程题 1)给出寄存器的地址和位宽,读写寄存器 2)字符串处理,大小写转换
5、对嵌入式的了解
6、我们是996,对加班的看法
7、有什么职业规划,什么原因会让你离开公司(巨坑)
总结:面试官的暗语是一面和二面面试官都是我,回去等凉了的消息吧。
浙江大华 一面凉 20min:
网申投递,通过筛选后笔试,笔试通过,面试官发短信让我当天选择时间,感觉自己是被随便捞起来看看,面完第二天收到辞谢信。
1、项目介绍,IIC总线说一下。
2、C语言分哪几区,static修饰的局部变量在哪里?
3、Linux有用过哪些,干了什么事?(我说Debian系列、Centos都用过)
4、NOR Flash 和 NAND Flash 文件系统(忘了,让我补充了一下非嵌入式的文件系统)
5、Linux用户态如何进入内核态?
6、看看你的笔试题,解释一下栈的特点。
7、有什么想问我的?(问了一下 视频会议C嵌入式的工作内容,面试官说有ARM单片机的,也有Linux的驱动开发,也有我做过的服务器和数据库的部署,感觉超级符合)
8、什么时候能够实习,毕设怎么办?
总结:面试表现最好的一次,我说我在学习《Linux设备驱动程序》和《UNIX环境高级编程》,面试官说这两本书要好好看,我想我还是表现太平庸了,大华投的人很多,优秀的人都不缺。
绿米联创 三面 offer:
网申后,宣讲会笔试,笔试内容非常基础,考察对C/C++的基础,C++的全忘了,笔试完当天晚上收到面试邀请。
技术面 约50min:
面试官比较nice,十分和善。
1、复盘笔试题
1)高内聚低耦合什么意思,为什么要这么做
2)写一个“标准”的宏,比较两个数的大小(有什么需要改进的,为什么这么改,如果是i++怎么做,不知道,面试官告诉我应该用临时变量)
3)反转链表的编程题写错了
2、IIC总线时序
3、写出计算机网络 五层模型 每一层对应的协议 解释ICMP DHCP
4、HTTP 从浏览器输入域名的全过程
5、项目架构画一下,项目中的无线模块是怎么回事 因为我投的无线组,问的比较深
6、写个程序判断CPU字节序,写对了(小米的面试官也问过,当时不记得了,巨难受)
7、项目中的难题
8、你知道哪些加密方式,非对称加密?
9、进入Linux内核态,为什么要分为用户态和内核态
10、想搞哪个方向?(我作死,说想搞Linux,后面有了leader加面,因为这个方向是网关组的,当时没意识到面试官是无线组的leader)
11、深圳压力很大,为什么想来深圳?
12、有什么要问的,问了一下绿米产品的IoT安全。
hr面:
0、比较考察个人综合素质,考察你对行业的认识,对公司的了解,临场反应能力等,hr没有给人压力。
leader加面 30min:
1、IIC总线(?)
2、项目中类似于IFTTT的解释了一下
3、给我一个硬件工程师做好的人体感应模块,如何用zigbee对接网关(答的不好)
4、C++多态
5、自动控制原理中的PID
总结:我感觉我什么的可以说一下,但是回答的可能不是很让面试官满意,无论是对知识的理解正确度上、深度上,都差那么一口气,还是要多学,学精学专一点。
秋招总结:
1、基础!!!基础!!!基础!!!
2、不要盲目自信,自己的项目也要通透,能够对答如流。
3、问一答十,准确且全面,不要挤牙膏,不会的问题一定要找个相似的补上,面试官想看到你知识体系,深度和广度。
4、心态一定要调整好,疯狂投递刷题笔试面试,有机会就上,失败了就多多复盘。
5、一定要好好准备,看面经啥的,可惜了提前批(学霸批)大厂独角兽的面试机会,不过对于我一个菜鸟大厂只能是幻想。
附面试代码:
1、字节对齐与大小端
//
// Deepc.cpp
// Study -- C的深入
//
// Created by Admin-X on 2019/10/6.
// Copyright © 2019年 Admin-X. All rights reserved.
// #include "Deepc.hpp"
#include <iostream>
using namespace std;
#pragma pack(4) //改变对齐字长 void byteSize(){ // 4-byte 8-byte
struct fun{ // Address offset Address offset
int a; // 0x6EFE7C +0 0x6EFE78 +0
double b; // 0x6EFE80 +4 0x6EFE80 +8
char c; // 0x6EFE88 +8 0x6EFE88 +8
char d; // 0x6EFE89 +1 0x6EFE89 +1
int e; // 0x6EFE8C +3 0x6EFE8C +3
}F;
cout << sizeof(F) << endl;
//printf("0x%X\n0x%X\n0x%X\n0x%X\n0x%X\n",&F.a,&F.b,&F.c,&F.d,&F.e);
//printf("0x%X\n",&F.k);
} void checkCPU() //检测CPU大小端字节序,小端字节序:低位的地址存储低位的字节 ,大端反之
{
union w // Big-endian/Little-endian
{ //(Address) 0x00 0x01 0x02 0x03 // 0x00 0x01 0x02 0x03
unsigned int a ; //(Data) 0x87 0x65 0x43 0x21 // 0x21 0x43 0x65 0x87
char b;
}c;
c.a = 0x87654321;
if(c.b == 0x21){
printf("little-endian\n");
}else{
printf("big-endian\n");
}
}