cvte面试过程

2017/3/25

一面:
面试形式:一个技术官对一个面试者,对坐(个人猜测,应该是项目负责人,不是底层的一线开发人员)
请来一个简短的自我介绍–(上面的自我介绍,但因为一开始稍微有点紧张,没有很流利)–嗯,之前在创业公司里面担任什么工作–嵌入式软件工程师–嗯,那具体做过什么项目呢–两个,“读卡器”和“吊扇”,读卡器是两块stm8芯片,一块主控一块存储秘钥,外接一个fm17520芯片读取非接触式ic卡,主控通过iic访问存储芯片,获取相应秘钥,校对正确后,ic数据通过spi回传给主控,主控通过uart制定的通信协议传给pc
usrt的波特率,你设置了多少–9600,不能太快,之前尝试过使用115200但后来改掉了–太快会怎么样(面试官笑了,个人认为有两种:这个问题面试官也知道,说明是个好问题;这个问题明显是装逼装出来的,面试者你就瞎bb)–会造成数据丢失–为什么会数据丢失–这点我现在还没有想明白,那时候是通过询问公司里面的师兄得知的,我是发现了这个问题(链接)(个人猜测:usb转uart芯片的传输速率限制、uart并不能真正达到这个速率)
嗯,那这个项目,你用什么语言实现的(我擦,大佬,我还有一个项目你没问啊)–C语言,毕竟是裸板,C是最好的选择,现有库,芯片提供商推的IDE,都是原生的C环境,用C最适合。
IO口有多少种工作模式–输入输出两种,输入里面有有无中断两种,各自又有浮空上拉两种,输出有推挽开漏两种
讲一下中断的概念–上操作系统的吗?–嗯~~~,你就直接讲中断概念就可以了–根据用户预先设定的使用场合,满足中断响应条件、正确的中断源、已经提前编写中断服务子程序,中断尽可能地写地小、短、延时低(翻水,回答有点乱),不要能使用全局变量(面试官笑了,个人猜想是:可以,不过不全对),噢不对,可以使用全局变量,但这是根据用户使用场景决定,但尽可能地不要使用全局变量。(面试官才点了点头,感觉这个补刀可以有)
嗯,那你能说一下死锁吗–死锁有四个条件,互斥(第一个忘记了)、占有且等待、不可剥夺、循环等待,四个条件同时成立,就会造成死锁–嗯,那你说一下进程与线程的区别,当时没有完全回答出来,50%-60%吧–嗯
嗯,那你实现一个算法:将一个十进制的数转为十六进制–请问,这个十进制的数有多大(面试官听到就笑了,两种:这个家伙不错,考虑周全;尼玛还用问吗,都说一个数咯,什么可能都有的呀)–嗯,你自己估计–很大的数吗?–嗯,有可能,也坑内是很小–哇,爆炸(当时好像是直接这样说了)(最终没有完全写出来,但是把所有的情况和关键的转换子函数表述或写出来了,面试官表示认可)
二面:
面试形式:一个技术官对一个面试者,对坐(个人猜测是技术总监,毕竟下面问的问题,直接见血)
请来一个简短的自我介绍–(上面的自我介绍,已经很流利了)
什么样的创业公司–社团师兄创立的–不是,告诉我公司名字–广州xxxx科技有限公司,(当时实际上是忘记的)–做什么的–做智能家居的,(我擦,实际是做智能硬件的,紧张回答错了)
嗯,介绍一下“读卡器”这个项目–用了两款个stm8芯片–(马上被打断)为什么使用stm8–因为价格、资源已经可以满足这款产品的所有功能的实现–用到了什么资源–定时器、看门狗(但是没讲)、协议接口(iic、spi)–用到什么协议–iic、spi–iic用的速率是多少–标准的100khz–真是有100khz吗–额(一时间没能想到,但也继续讲下去了),是没有的,尤其像模拟iic,这肯定是没有,但我这次使用的硬件iic,它的速率不会有太大差距。我之前做的时候没想明白,但后来想明白的时候已经是大二下学期了,没有设备让我测试。
好,如果,现在有一个需求,让你设计:从设备主动发起一个信号,主设备来响应,因为iic的通信只能是主设备发起,你怎么来设置(这其实是面试官提示)–可以主机上面做一个循环,间隔1ms/10ms发送一个请求信号,相当于握手命令,也相当于在iic协议上面搭载一个用户协议–(面试官霎时间笑了)那你这样多浪费呀–额,对,确实是挺浪费的,那请问,从设备有多少个–未知,你来设定–全部参数都由我来设定?–(面试官没有回答,但肯定地点头了)–(过了10秒钟,可能比这个还少,面试官已经知道我回答不出来了,直接下一个问题了)
那你之前这个功耗是怎么去控制的–降低芯片频率–将到多少–2MHz–然后关闭time、adc,因为这两个在运行过程,都有1点多ma的电流,也会进入halt模式,这是最省电的,同时也要将io口设置为输入浮空,除iic两个引脚外–为什么是输入模式–因为在实际测试过程中,输入浮空最低的,输出的时候有800uA–不是,你还没回答我的问题:为什么是输入浮空时,电流最低–额(翻水,我才明白他要的是理论,也就是公式等去证明),因为输入的时候不需要供电,所以无需消耗能量。–嗯,(面试官,面无表情地嘲讽着我这菜鸡:你就吹,我听着)
最近有研究什么吗–最近在弄一个视频编解码/流媒体的东西,芯片用海思、使用rtmp推流–用什么编码–h.264/h.265–
linux学得怎样–基本的命令、操作没问题,最近正在弄一个进程间通信-循环缓冲–为什么样用循环缓冲区,循环缓冲区是怎样的,是环形的吗(这位技术)–因为要把编码后的码流通过rtmp推流到服务器,所以需要建立一个通信区来交换数据
告诉我,这段代码的运行结果是什么–无定义–无定义是什么意思,输出无定义三个字吗
你写一个可以编译通过的strcpy,返回值是char *,注意,是需要可以编译通过的,请注意错误处理。–my_strcpy–你这里面,实际上,获取的是一个零,因为用户往往输入的是一个dest为空的指针,所以造成下面的条件都不成立,思路错了,下面都错。–这里面,如果条件不成立,你就直接不复制了?那实际上还是可以复制一部份的呀,这里面,你应该问一下我,是否需要复制,或者丢弃。–嗯,假设上面都正确,但现在最终返回值也是不正确的,不能够得到一个正确的值,想一下,告诉我,为什么
你之前参加比赛,你是怎么跟队友合作的–嗯,首先他们信任我–哈(会心一笑),这是必须的,但是,信任是有条件的、有前提的–嗯嗯,我知道,但我们是同一个实验室的,我们一起生活–哈(会心一笑),一起生活不代表着信任,相互信任是不能以生活来判定–嗯嗯,确实,但是他们知道我一直都在实验室,并且一直都在学习,而且方向是嵌入式软件
嗯,那今天的面试就到此为止吧,你还有什么问题要问我吗?–嗯,我想问一下,cvte里面优秀员工的效率是怎么样的,因为我最近也在思考这个问题,想要提高我自己学习的效率,所以我想问这样的问题–我不知道你为什么强调效率这个问题–因为我想更快更好的解决问题嘛,工程师的工作都是在解决问题,我想要掌握更好的办法–嗯(暂时不明白他为什么还要表示承认我的观点),但我不是很赞同你所说的高效率就是好的,相反,按我经验来说,往往造成我们效率低的,正是因为质量不过关造成效率低的,所以的话,我认为质量才是第一位的–嗯嗯,是的,我正是这个意思,在确保质量过关的情况下去提高我们效率–嗯,那没有别的问题了吧–是的–好,那今天晚上8点后就会有结果,面试结束–嗯呢,好的,谢谢您(瞬间装逼)

2017/3/26 14:12
HR面:
面试形式:二个HR对三个面试者,对坐
请告诉我你的手机后四位?
昨天的面试,感觉如何,给自己评个分,满分10分,为什么?
请告诉我,你的理想是什么?
你父母的性格是怎么样的,你觉得你更想谁?
父母对你有什么期待?
你最佩服的人是谁?
宿舍有什么事情,不一定要讲舍友?
工作地点、工作时间、工资?
如果面试不通过,你怎么办?
你最不喜欢的一件事情是什么?
除cvte之外,你还想去那家企业?
嗯,面试结束了,有什么疑问吗?

你可能感兴趣的:(个人感悟,面试相关收集)