当前位置: 首页 > 面试经验 >

华为OD-c/c++面经(欢迎推荐投递)

优质
小牛编辑
107浏览
2023-04-06

华为OD-c/c++面经(欢迎推荐投递)

二月份投递了华为OD简历,我面试的岗位是嵌入式软件开发,2-15收到机试通知,机试题总共三道,机试题总体难度中等偏上,需要自己平时经常刷题,多加练习保持状态就行;我做的题两道比较难一道相对简单的,刚开始通过率不是很高250分左右,自己慢慢调试,最终得了382.5分,毕竟在2.5h内做完还是不容易的。

3-2两轮技术面试,在这里主要说下面试的相关经验吧;自己面试时主要分两方面介绍自己:一个是个人经历(包括个人的工作经历、学习经历、个人性格优势介绍),当然这个并不局限于这点,可以重点介绍自己和工作匹配度较高的地方(变相的夸夸自己,但是不要长篇大论,几句话概括好,让面试官能很快抓住你的特色);另一方面是项目经历:我自己做过四个项目,在面试时重点挑了一个项目详细介绍;介绍项目时主主要从这几个方面入手:

  • 1、项目介绍(简单介绍项目是做什么的?运用了那些技术)
  • 2、自己负责的模块(重点把自己所负责的每个模块梳理清楚,具体流程肯定是需要自己掌握的)
  • 3、项目中遇到的问题及解决方案(尽量把每个模块都准备至少一个问题,包括相应的解决方案);

等项目介绍完毕后就是技术面试官的提问环节,具体的问题因人而异,但是基本都是围绕你简历上的东西去提问,提问的重点方向在项目上。在技术一面时,我详细介绍了自己的一个项目后,面试官问了我关于C语言的知识;

  • Q:常见的数据结构有哪些?
  • A:队列、数组、栈.... (还没说完开始提问,队列是如何实现的?)
  • A:队列是先进先出的,巴拉巴拉一堆,然后实现的方式有以下几种:用链表实现、用linkedList实现、使用两个栈来实现。然后选取其中一种进行具体的阐述一下
  • Q:常见的算法有哪些?
  • A:哈希、二分法(又让讲讲二分法的思想)

主要思想就是不断的对半折叠,每次查找都能除去一半的数据量,直到最后将所有不符合条件的结果都去除,只剩下一个符合条件的结果。

然后再讲讲哈希的思想:哈希表采用了函数映射的思想,将记录的存储位置与记录的关键字关联起来,能快速定位想要查找的记录,不需要与表中存在的记录的关键字比较后在进行查找。

在第一轮技术面试上,基本上吧自己的项目介绍得很完备,面试官对于项目的内容没有做过多的提问,只要是对于C基础的一些知识提问。然后在当天下午就进行了技术二面。面试的话还是自己总结下面试的大概流程,每次面试按照自己提前准备好的流程框架来做到心里不慌。下午的技术二面主要是我项目中关于中断体系的提问,问的问题属于那种层层深入的提问式;首先我把裸机下的中断复位流程讲了一遍:(其实讲中断体系的话无非就是涉及到几个关键词:中断向量表、cp15协处理器、GIC等,然后展开说)

创建start.s汇编源文件、创建中断向量表---编写中断服务函数,对于复位reset_irqhandler ---将cp15中c15寄存器的值赋给r0,清除cp15 --- 修改m[0~4]模式位为SVC/IRQ/SYS,设置栈指针 --- 打开全局中断 --- 跳转main函数(各种初始化)。然后顺带吧Linux下的中断讲了下:Linux下的中断处理比较简单(申请中断号---编写中断服务函数---注册中断号和中断服务函数的对照关系 request_irq)。

刚讲到这块面试官就开始发问了,如何找到对应的中断号?

  • A:中断向量表可以看做是一个指针数组,数组里面存放的是中断服务函数的首地址(入口地址),每个开发板的中断号数量不一样。我们采用的是IM.X6ULL开发板,基于arm v7 架构cortex A7 系列的芯片总共有160个中断号,GIC根据不同的中断源将中断分为三类:sgi(0~15),ppi(16~31),spi(32~159),当中断产生后,在cp15协处理器的c15寄存器里面存储的是IAR的基地址,找到GICC_IAR就能找到对应的中断号;
  • 其次,还问到关于对临界区资源互斥访问的几种手段?在中断体系中能否用锁?
  • A:信号量、中断屏蔽、互斥体、自旋锁、原子操作等。
  • Q:信号量的具体工作原理?
  • A:信号量其实是一种类似于PV操作,用于同步互斥的手段,P是通过 V是释放。当信号量为0时,进程为等待状态,排入信号量的等待队列,知道V操作唤醒。若信号量的值大于0则进程继续执行。
  • Q:自旋锁和互斥体的使用场景是什么?
  • Q:中断的顶半部和底半部机制?为什么要有这种机制?一定要有这种机制?
  • Q:关于GIT的使用场景?出了一个场景,告知该如何操作?

大概就是以上的这些问题,因为已经过了一个月了,具体的问题记不太清楚了。

总结一下就是凡是在你的简历上体现的东西,最好都做到心里有数,问到了之后能快速反应出来,而且回答问题之前最好自己先有个几秒的构思时间,想好答案的框架,然后在进行答题,尽可能的多做一些拓展,而不是几个字就回答完毕了,这样也能体现出你对该知识点的掌握情况。面试时不要过于紧张,要学会调整自己的心态,有的人本身知识点掌握得还不错,但由于过于紧张无法将自己所想很好地表达出来,也会影响自己的评级或是否通过,这样就很可惜了。

欢迎随时联系,很靠谱哒,有需要欢迎咨询( 1 8 6 1720 5178, lfyslp 

 类似资料: