乐鑫一二三面+HR面
乐鑫(上海)
9、又贴了一段代码
分析这段代码,找出其中的错误并修改;
#乐鑫#
投递时间:7.11
岗位:嵌入式软开
一面时间:7.22(45min)
挨个问项目,项目中freeRTos跑了哪些任务,具体都是完成什么功能?
MQTT客户端与飞控的数据交互具体讲讲?
进程线程的区别?说下自己的理解?
( 建议这个问题大家不要只背下八股, 一定要再进一步深入讲讲,会给面试加分
比如:为什么进程切换的开销比线程大?TLB缓存失效
linux里面是怎样实现进程和线程的?这个我强烈建议大家听一下宋宝华老师的线程进程课;
我面试时遇到这个问题都是讲的宋老师里面讲的内容, 面试官表示肯定;
)
本科飞思卡尔比赛的具体细节?
赛后的技术报告?
(面试官认为技术报告的书写很重要)
两个代码题:不是手撕
1、第一段代码找错误并修改
原题大概这样
1 2 3 4 5 6 7 8 9 10 11 | void getmemory(char* str){ str = (char*)malloc(100); memcopy(str,"hello,world"); } int main(){ char* p = NULL; getmemory(p); printf("%s\n",p); free(p); return 0; } |
2、第二段代码找错误和不足,并优化,然后分别说下优化前后的时间复杂度;
第二段代码有点长,意图就是拼接字符串数组里面的每个单词组成一个完整的句子;
-------------------------------------------------------------------------------------------------------------------------
二面时间:7.26(1h10min)
面完感觉一个字:累!貌似是主管面;
1、挨个介绍项目;
2、详细回答了一个项目细节(聊了大概30min);
3、freeRTOS的任务切换;
4、项目中自己设计帧协议的格式是怎么样的?
5、信号量的使用会不会引起任务的切换;
6、freeRTos中任务的状态有哪些?
7、本科和研究生所学的课程?
8、C语言中两个指针相减的意义是什么?
紧接着贴了段代码
1 2 3 4 | int a[10] = {1,2,3,4,5,6,7,8,9,10}; int* p1 = &a[0]; int* p2 = &a[9]; printf("%d",p1 - p2); |
1 2 3 4 5 6 7 8 9 10 | #define BUFFSIZE 10 int a[BUFFSIZE]; extern int getdata(); int main(){ int* buf = a; while(buf < sizeof(a)){ *buf++ = getdata(); } } |
10、实现strncpy函数;问了dest和src如果有重叠怎么处理;
11、进程的概念;
12、同步IO和异步IO区别?项目中怎么使用异步IO的,为什么使用异步IO;linux中系统调用哪些属于异步IO,哪些属于同步;(这块有点忘了,连续问了几个问题)
13、epoll相关知识;
14、设备驱动,字符设备的大概框架;
15、以前接触过蓝牙协议吗?
16、期望的工作内容是什么?
反问:10min
面试官很详细的讲了他们负责的内容;
三面时间:8.5(45min)
面试官前面先自我介绍,然后了解我个人专业,考研与否等个人情况。
然后问项目中的freertos,进一步给他讲了整个项目的框架和细节。
大部分时间都讲项目。
问学过那些计算机相关课程?自学还是学校授课?
问了tcp的连接过程?
影响tcp性能有哪些因素?
hr面时间:8.10(30min)
纯聊天
终于走完所有流程了,期待offer!