面试真题 | 华为

面试一共四面,面试岗位为嵌入式工程师。华为的面试官本次体验还是蛮好的,技术强,也比较温柔。下面开始进入正题吧~~~

【一面】资格面

主要是问了有以下几点:

  • 简历

好奇我的专业,然后问我学过哪些学科。

  • 项目

当时抓我的项目,一个无线传感器网络的项目。没有问技术,主要问了:

+ 做了多久
+ 在项目中处于什么角色,负责哪部分的工作。
+ 遇到了什么困难?
  • 规划

问了职业规划

  • 家庭

家庭成员,哪里人,打算在哪里定居。

  • 你在网上看到过华为od的负面消息吗,你什么想法?

不怎么了解,平时不怎么八卦,规避了这个问题。

其实这里更好的时候发表一些客观正向的评价,不表现的我谄媚,但是我也不直言。

关于面试中很主观的问题,后面我会写两篇专门讲简历项目和HR面加入本专栏。再找几个案列,梳理成模版,让你一次性搞定。这里先行跳过。

【二面】技术面

# 自我介绍
# 介绍项目
# 全都是自己从零开始构建的吗, 软件硬件
# 软件算法, 视觉有用到分割吗, 介绍一下
# 项目中遇到什么困难, 队友他们怎么分工
# 遇到了新的东西时怎么去学习
# 学的什么专业课, 有学过操作系统,数据结构与算法,计组原理这种么
# 系统里用到了什么数据结构

这些都是有好用的模版的,等我统一给你整一个~~~

裸机中断会同时发生怎么办

知识

裸机中断是指在没有操作系统支持的情况下,直接由硬件产生的中断。当两个或更多的中断同时发生时,裸机系统需要有一种机制来处理这种情况,以确保系统的稳定性和数据的一致性

处理裸机中断同时发生的情况,通常涉及中断优先级的管理和中断服务程序的编写。以下是一些常见的处理方法:

  • 中断优先级管理:裸机系统通常会为每个中断分配一个优先级。当中断同时发生时,系统会首先响应优先级最高的中断。这通常通过硬件中断控制器实现,该控制器能够检测并排序多个同时发生的中断。
  • 中断嵌套:在某些情况下,一个中断服务程序可能在处理过程中被另一个更高优先级的中断打断。这称为中断嵌套。系统需要能够保存当前中断的上下文,以便在处理完高优先级中断后能够恢复并继续处理低优先级中断。
  • 中断屏蔽:为了避免中断之间的冲突,系统可以使用中断屏蔽技术来暂时禁用某些中断。这通常是在处理一个关键任务时使用的,以确保该任务不会被其他中断打断。
  • 中断服务程序的设计:编写中断服务程序时,需要特别注意其执行时间和对系统资源的使用。长时间运行或消耗大量资源的中断服务程序可能会导致系统响应变慢或出现其他问题。
  • 软件同步机制:在某些情况下,可能需要使用软件同步机制(如信号量、互斥锁等)来确保在中断处理过程中数据的一致性和完整性。

需要注意的是,裸机中断处理通常与具体的硬件平台和处理器架构密切相关。因此,在设计裸机中断处理机制时,需要深入了解目标硬件的中断特性和处理器架构。

最后,对于复杂的裸机系统,可能需要考虑使用更高级的中断管理策略,如中断向量表、中断服务例程表等,以更好地管理和处理多个同时发生的中断。

回答

当面试官问到裸机中断可能同时发生时,你可以按照以下步骤来回答:

  • 首先,你可以简要解释一下裸机中断的基本概念。裸机中断是指在没有操作系统支持的情况下,硬件直接对CPU发出中断请求,CPU在接收到中断请求后会暂停当前正在执行的程序,转而处理中断服务程序。

  • 接下来,针对中断可能同时发生的情况,你可以强调中断优先级的概念。在系统中,不同的中断源通常会被赋予不同的优先级,以便在多个中断同时发生时,CPU能够按照优先级顺序来处理它们。你可以解释,通过设置中断优先级,可以确保关键的中断请求得到优先处理,避免系统崩溃或数据丢失等问题。

  • 然后,你可以提及中断嵌套的概念。在某些情况下,即使设置了中断优先级,也可能出现高优先级中断在处理过程中被更低优先级中断打断的情况,这就是中断嵌套。你可以解释,中断嵌套机制允许CPU在处理一个中断的同时,响应另一个更高优先级的中断请求,提高了系统的响应速度和灵活性。

  • 此外,你还可以提到中断屏蔽的概念。在某些情况下,为了避免中断的干扰,可以使用中断屏蔽技术来暂时屏蔽某些中断源。这可以在关键代码段执行时确保不受中断的干扰,提高系统的稳定性和可靠性。

  • 最后,你可以强调在实际应用中,需要根据系统的具体需求和硬件特性来合理设计和配置中断处理机制。这包括选择适当的中断优先级、使用中断嵌套和中断屏蔽等技术来确保系统的正常运行和高效响应。

  • 总之,在回答面试官关于裸机中断可能同时发生的问题时,你可以从中断优先级、中断嵌套、中断屏蔽等方面来阐述你的理解和解决方案。同时,结合实际应用中的需求和硬件特性进行具体分析,展示你的专业素养和实践能力。

中断处理不完怎么办

当面试官询问关于中断处理不完的情况时,他们可能想了解你对系统稳定性、性能优化以及异常处理的理解。以下是一个建议的回答框架:

当面临中断处理不完的情况时,我会首先分析原因,并尝试从以下几个方面进行解决:

  • 优化中断处理流程:我会仔细审查中断处理代码,查找是否存在可以优化的地方,比如减少不必要的操作、使用更高效的数据结构或算法。通过优化代码,可以提高中断处理的效率,减少处理时间。

  • 提高系统性能:如果中断处理不完是因为系统性能不足,我会考虑提升硬件性能,比如使用更高主频的CPU、增加内存等。同时,我也会检查系统配置,确保系统资源得到合理分配,避免资源浪费。

  • 优先级管理:对于不同优先级的中断,我会实施优先级管理策略。高优先级的中断应该得到优先处理,以确保关键任务能够及时响应。对于低优先级的中断,可以考虑采用延迟处理或合并处理的方式,以减轻系统负担。

  • 中断合并与去抖:在某些情况下,可以通过中断合并和去抖技术来减少中断的数量。合并多个相似的中断可以减少处理次数,而去抖技术则可以消除由于噪声或误触导致的频繁中断。

  • 使用中断线程化:如果硬件和操作系统支持,我可以考虑使用中断线程化技术。通过为中断分配专门的线程来处理,可以充分利用多核处理器的优势,提高中断处理的并行度。

  • 监控与日志分析:我会建立有效的监控机制,实时观察中断处理情况。同时,通过日志分析,可以定位到中断处理中的瓶颈和问题,从而进行有针对性的优化。

有时候可能答案是错误的,但是面试官在乎的是你结构性的思考力。逻辑、思路与知识作伴。

讲讲MMU了解吗?

当面试官问你是否了解MMU(Memory Management Unit,内存管理单元)时,你可以按照以下结构来回答:

简要介绍MMU:

MMU是计算机系统中的硬件单元,负责处理内存访问请求包括虚拟地址到物理地址的转换、内存保护(防止一个进程访问另一个进程的内存)、内存分页或分段等功能。

MMU的作用:

解释MMU如何帮助操作系统实现虚拟内存管理,使每个进程拥有独立的地址空间。

讲述MMU如何通过地址转换机制,使得有限的物理内存能够被多个进程有效利用。

提到MMU对于提高系统安全性和稳定性的重要性,如防止非法内存访问。 MMU与操作系统、CPU的关系:

解释MMU是如何与操作系统和CPU协同工作的。操作系统负责内存管理的策略和调度,而MMU则负责执行这些策略,将虚拟地址转换为物理地址。 提到MMU是现代CPU架构中的一部分,对于实现高级内存管理功能至关重要。

你对MMU的深入了解:

如果你对MMU有深入的了解,可以谈论一些具体的实现细节,如页表结构、TLB(Translation Lookaside Buffer,转换后备缓冲器)的作用、内存保护机制等。

如果你在项目或学习中涉及到过MMU的使用或配置,可以分享相关经验和见解。

你对MMU的学习态度:

如果面试官的问题超出了你的现有知识范围,你可以表达你对学习新知识的积极态度,并承诺在需要时会深入研究相关内容。

记住,如果不知道,可以稍作思考,大胆承认自己暂时不了解,表示自己下去一定好好补习一下。记住不要让空气突然的安静~~~

下面是一个示例回答:

“我对MMU有一定的了解。MMU是计算机系统中的关键硬件组件,它负责处理内存访问请求,特别是虚拟地址到物理地址的转换。通过MMU,操作系统能够实现虚拟内存管理,为每个进程提供独立的地址空间,从而提高内存的利用率和系统的安全性。

MMU与操作系统和CPU紧密协作,操作系统负责内存管理的策略和调度,而MMU则负责执行这些策略。在现代CPU架构中,MMU扮演着至关重要的角色,它使得高级内存管理功能得以实现。

回答至此,如果你很了解MMU,继续讲一个细节点。

如果不熟,那么下面可以作为你的结尾:

我对MMU的具体实现细节还需要进一步学习,但我非常愿意投入时间和精力去深入了解它。我相信通过不断学习和实践,我能够掌握MMU的相关知识,并将其应用到实际工作中。”

这样的回答既展示了你对MMU的基本了解,又表达了你愿意学习和成长的积极态度。

有没有做过linux驱动开发?

这个问题我觉得只有两种回答:

  • 一:如果你确实有Linux驱动开发的经验

你可以这样说:“是的,我有过Linux驱动开发的经验。在之前的项目中,我负责开发了XXX设备的驱动程序,并成功将其集成到了Linux内核中。我熟悉Linux内核的架构和工作原理,能够熟练使用内核提供的API进行驱动开发。同时,我也具备调试和优化驱动性能的能力,确保驱动的稳定性和高效性。”

  • 二:如果你没有Linux驱动开发的经验,但有相关的技能或兴趣

你可以这样回答:“虽然我没有直接做过Linux驱动开发,但我对Linux系统有一定的了解,熟悉C语言和操作系统原理。我对驱动开发非常感兴趣,并且愿意投入时间和精力去学习相关知识。我相信,凭借我的学习能力和对技术的热情,我能够迅速掌握Linux驱动开发的技能。”

  • 如果你是第一个,那你就正常表达回忆之前的经历就好。(建议做嵌入式可以找个小项目练练手)
  • 如果你是第二个,就表达自己虽然没有做过,但是会什么相关的知识,表达你做驱动开发也有先天的优势。同时也把面试官引向了你擅长的空间,岂不美哉。

手撕算法两道

两数之和

解题思路: 题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

int* twoSum(int* nums, int numsSize, int target) {
    int i,j;
    int *result=NULL;
    for(i=0;i<numsSize-1;i++)
    {
        for(j=i+1;j<numsSize;j++)
        {
            if(nums[i]+nums[j]==target)
            {
          

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

ARM/Linux嵌入式真题 文章被收录于专栏

让实战与真题助你offer满天飞!!! 每周更新!!! 励志做最全ARM/Linux嵌入式面试必考必会的题库。 励志讲清每一个知识点,找到每个问题最好的答案。 让你学懂,掌握,融会贯通。 因为技术知识工作中也会用到,所以踏实学习哦!!!

全部评论
浓浓的AI回答腔
点赞 回复 分享
发布于 2024-04-14 19:54 浙江
点赞 回复 分享
发布于 2024-04-07 15:07 江苏
真的很精华了
点赞 回复 分享
发布于 2024-03-26 22:59 四川
学习到了
点赞 回复 分享
发布于 2024-03-21 17:47 重庆
你好,请问一下嵌入式手撕代码有语言要求吗,c可以吗
点赞 回复 分享
发布于 2024-03-19 23:10 湖南

相关推荐

11-20 17:30
深圳大学 Java
有朋友突然拿着两个offer来问我,让我给点意见的时候,我突然一不小心意识到,&nbsp;好像目前暂时被德科和华为养得很好……倒也不是说一个月轻轻松松几个达不溜,也不是多自由,年假也没多到让人发指的地步,同事关系也还行,毕竟这个比较主观,有喜欢的就有不喜欢的……就是那种感受你懂吗?就是那种突然到这个时间,有点恍惚,抬头,看着节能灯在头顶上亮着……中央空调的呼呼声,没看到出风口,但是你知道的&nbsp;&nbsp;它一直在&nbsp;……视线往下&nbsp;几个同事围在一起“对齐颗粒度”。行政怕我烫着,要解除锁定再接水,电脑从来不卡,甚至两块显示屏也行(虽然我一个人事没这个必要),工位的椅子也不会打我屁股,楼下的7仔小姐姐也很热情(比7仔小姐姐更热情的是月底饭堂的阿姨和快收档的大叔)——像是有人替我筛过所有的选择,只留下最最好的那一个。以前我对考编考公嗤之以鼻,以为那会限制我,让我没办法诗与远方。&nbsp;现在才明白,自由是我想几点拉会就几点,是我想在机场拉会也行,或者在家里也行,在高山之巅,在湖水之畔,在世界的各个角落……welcome&nbsp;to&nbsp;join&nbsp;the&nbsp;conference不说了,上会参考文献:[1]&nbsp;精神原子旦&nbsp;.&nbsp;妈妈,我真的被互联网大厂养的很好&nbsp;话&nbsp;[J]&nbsp;rednote,&nbsp;2025,&nbsp;10(21).[2]&nbsp;重生之在大厂当饺子&nbsp;.&nbsp;妈妈,我真的被厂养得很好&nbsp;话&nbsp;[J]&nbsp;rednote,&nbsp;2025,&nbsp;10(27).[3]&nbsp;千金.妈妈,我真的被华子外派养得很好&nbsp;[J]&nbsp;rednote,&nbsp;2025,&nbsp;10(31).
点赞 评论 收藏
分享
秋招算是告一段落了,最大的感受就是矛盾具有特殊性,不是所有人的建议都对你适用,互联网上也有很严重的信息茧房。同一个岗位有可能薪资可以差特别多,除开学历厂打铁还需自身硬。LZ属于网传天坑专业的双9,照网上的论调早就该退学了,目前收到的offer里面基本都是25以上,其中有一半的是超过30甚至在二线城市的,最高的两个有40以上。就个人经验来说下秋招的影响因素:1.家是哪里的(LZ南方人,即便在北方求学过,投了长光卫星秒挂;沈鼓不理我;长安二面认为我不会去,BG29的重庆四川同学基本OC)2学历(这个影响其实算是比较大的,有些热门厂或者人才计划会卡双9,要么就是强势理工类211本科+华五硕,C9够不够不清楚;学历厂看完本科会看最高学历,赛力斯这种学历厂C9硕今年给的待遇要比北航北理华科东南天大的硕士高,哪怕本科一样硕士成果多方向对口都没用;有些企业校友力量多会对一些学校比较照顾,这个不在此赘述)3项目对口度(LZ项目做的纵向,并非专业领域热门方向,投的很多岗位其实垂直度不算很高,但是今年个人感觉有些单位认为不对口就挂了,比如汇川,寒武纪,小米,vivo,峰飞,中微;小鹏属于对口度高就给面了,身边很多对口度不高的没收到)4成果(大部分人说论文专利对就业没帮助,其实我不是完全认可这个说法的,老师不放实习的情况下没论文的优势远小于有论文,LZ手里有一些一区和EI论文,还有几个授权和申请专利,在吃面试评价的大厂里还是很有优势的,同岗位比其他BG差不多的同学多不少;也有的单位会按照是否发论文增加待遇。当然实习有没有优势我不清楚,我更倾向实习是一种敲门砖,成果是用来给自己提升价值的)5投递时间(投的越早越好,当然可能投太早了有些啥栾企业筛选不到你的简历,投晚了这个可能就没了,零跑一开LZ就投了,到现在面试都没有,给我气笑了)6运气(运气很重要,有时候甚至超过上述所有因素的影响。当然运气既包括企业的筛选,面试的体验等等,牛友肯定有不少例子,我说个我这边最抽象的事,LZ在面宁波方太的时候因为线下有事情调整到线上,本来以为是技术面结果二面还是群面,非研发和研发一起面。LZ有不少校园经历和科研成果,并且群面的时候其他人基本都是双非本硕,双非本211硕的配置,本硕211都屈指可数,除了LZ就一个9硕。本来这么看应该没什么问题了,结果群面就问了两个问题,每个问题都是按顺序轮流答,面试官指定按顺序答,LZ永远第一个,每次回答完后面的人都答的特别充分,甚至说了一些工艺流程的专业术语,大家细品。最后答完了面试官还突然说要用笔回答技术问题,LZ为了去面试亭都没带笔,最后毫无意外挂了)总而言之,LZ认为每个人都是特殊的个体,没有绝对意义上的建设性意见,写这篇帖子也是不要让大家焦虑,祝大家顺利~
秋招,不懂就问
点赞 评论 收藏
分享
评论
14
160
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务