全城7x24小时免费上门,您的生活服务帮手
“啊啊啊!我的华为校园大使面试通过了!”——研二春天,西安电子科技大学222宿舍传来惊天动地的一声呐喊。我抱起室友的猫兴奋地旋转了720度,在小猫嫌弃的眼神中,我打开微信在各大亲友群奔走相告。这是我平生收到的第一份offer——“华为西电校园大使”,我与华为之间的情缘就此开始。
担任校园大使的时光匆匆而有趣:我化身“校园职场人”,与华为专业的招聘团队交流和学习;化身“小喇叭”,第一时间向同学们转发华为最新招聘资讯;化身志愿者,奔走在每一次校招宣讲会的现场;化身优才“挖掘机”,向华为推荐竞赛能手、论文达人、“国家奖学金收割机”……作为学校与公司间沟通的桥梁,我更加深刻地了解华为,产生了进一步成为华为实习生的念头。
不过由于学校实验室事务繁忙,加上疫情debuff(减益效果)影响,我只能面试和实验两手抓,主打一个“既要又要”。终于,在我埋头苦干两个月之后,我不仅顺利拿到了华为的实习offer;更令人激动的是,我的实验也得到了理想的结果,简直开心极了!
为大家做一款芯片工具
2022年6月22日早晨,我怀着激动的心第一次踏入了公司大门。在为期两个月的实习过程中,我学了很多编程的技能以及无线的业务知识。我发现,大家在问题定位过程中,需要手动仿照MMU(内存映射)过程,将虚拟地址转换为物理地址,过程十分繁琐。
于是我跟师父商量,期望用自己学到的业务知识,为大家做一款芯片MMU解析工具。这个工具像计算器一样,只要输入虚拟地址和芯片配置,就可以通过软件计算出对应的物理地址。有了它,大家就能完成各类芯片的地址转换计算,并将结果可视化展示,提升工作效率。
然而,现实很骨感。MMU应用在真正的通信芯片中时,可不像课本中那么通俗易懂。这其中涉及到了各种掩码计算,还要考虑不同芯片板型、核的不同页表地址等,这让刚接触芯片的我着实一头雾水。
好在组内的专家们都很热情,为我细心地讲解了芯片的业务知识。印象最深的就是通信模块的专家超哥拿了一份MMU配置文件,带着我逐行分析各种核、各级页表的配置方式。从配置文件中抽取出所需信息之后,我终于可以用到在校时学过的MMU映射流程了。我立马掏出稿纸,以真实地址为例,按照比特位切分地址,一步步手动推演MMU映射过程,得出了符合预期的物理地址!这让我有了一种解出数学最后一道大题的酣畅淋漓之感。
理清MMU映射逻辑之后,我的工作逐渐顺利了起来。根据实际映射方式,我将功能分为几大模块,并依次完成了软件概要设计、详细设计、代码开发。刚开始,我还担心自己会不会考虑得不全面,导致软件设计不合理,又或者是代码实现有bug(程序错误),导致工具解析错误。但好在实际的软件开发过程中,有各种流程为我们“保驾护航”,保证代码质量。每当我完成一个重要节点,都会有专家对我的代码或文档进行集体检视,帮助我答疑解惑、查漏补缺。最终,我成功在实习结束之前完成了MMU工具开发,并且自学了python网页开发框架,将解析结果可视化出来,帮助大家提升了开发、维护、定位问题的效率,原本1人/天的工作量,现在使用工具只需要几分钟便可以完成。
当然,整个历程也给我带来了极大的成就感,让我体会到了在华为工作的乐趣,也更加坚定了我毕业后加入华为的意愿。令我超级感动的是,在实习结束的当天,大家都来送我,我跟大家一一说再见,是真的期待可以“再见”。
新手特性负责人的“首秀”
2023年7月,我顺利入职华为无线基带开发与芯片验证三部,当初的那句念念不忘的“再见”,果然如今有了回响。有了实习时跟芯片验证与公共平台组小伙伴们相处的经历,我迅速融入了团队。
在前辈们的辅导下,我系统地学习了无线基站知识、基带软件架构、COMM(公共平台)代码、芯片基础等业务知识。和在校期间自己开发的小项目相比,我们的代码是真的很“漂亮”:结构工整、功能清晰、命名规范,这让我对编程有了新的认识——代码不仅要实现功能,可读性和规范性也是非常重要的。
特别有意思的是在贵州的硬装实践——我们每天身着头盔、工服、铁鞋三件套,拎着一个两升的大水瓶,学习无线站点产品知识,参观云核心网的网络结构,亲身参与LTE(长期演进技术)、5G、农网站点安装,体验站点验收及评分时的“惊心动魄”……这次实践让我实打实地接触到了产品,让我感受到通信人的工作意义,同时也对软硬件架构有了更直接的理解。
硬装实践
新员工时期可谓是一个“积累经验,打怪升级”的过程。一天,主管洋哥问我:“悦辰,要不要投入新芯片的平台验证工作?这款芯片加入了新硬件,你会是我们组内第一批接触到的人。”当听到“新芯片、新硬件、第一批……”这些字眼,我毫不犹豫地答应了下来。
在这款芯片中,我要独立交付的第一个需求就是:核间通信。简单来说,就是要实现新硬件与其他核之间的基础消息收发。在整个芯片中,它代表了各硬件之间的“路”是否可以走通,更直接决定了新硬件的可用性。
洋哥考虑到我在实习阶段已经打下了一些基础,并且也十分认可我的学习能力,对我委以重任——担任项目FO(特性负责人)。
首次担任FO,我内心忐忑地摸着石头过河。由于当前模块不支持线程、软中断,所以需要提供新的通信方式,从而支持实例间和实例内通信,可供参考的老代码很少,我只好反复揣摩OS(操作系统)的串讲视频和芯片手册,磕磕绊绊地将开发过程进行下去。但是到了联调环节,我开始犯难了:既不清楚周边配套人员,遇到问题不知道找谁;只聚焦于自己的功能,对整体代码流程不熟悉;还不清楚常见的问题定位方式……一个接一个的问题让我开始怀疑自己的能力,怎么就什么都不会呢?那时,我开始担心能不能按时交付,信心一度跌入谷底。
一天,在去食堂吃饭的路上,师父看到我愁眉苦脸的样子,跟我分享起他在新员工时期刚开始做需求时的经历,鼓励我道:“不用怕,像代码流程、问题定位方式等问题的解决方法,在所有的需求开发中都是通用的,只要这一次搞明白了,后续的工作就都通了。”
在师父的开导下,我开始理清需求和周边配套情况,学会分析合作交互关系、分解任务,整理出详尽的Excel,有了这个表格,我内心都觉得稳了很多。为了熟悉代码流程,我积极向组内专家们请教,有了框架逻辑,然后再自己详细阅读代码,不经意间,我对代码的理解也更深入了。在开发过程中,我主动请专家串讲详细设计,保证设计的合理性;在代码各流程充分添加测试用例,保证代码质量。
当然,过程中最难的要数问题定位了。我从学习其他人在遇到问题时的定位手段开始,及时总结输出,确保自己掌握常见的问题定位方式。有一次,我吭哧吭哧地完成编码之后,写了好几个UT(单元测试用例),都顺利通过了。“我开发的功能点直接一把过?”当时我简直信心暴涨,然而当我又构建了一个IT(集成测试用例)之后,我的笑容凝固了:预想的通信消息居然一条也没有收到!
我百思不得其解,明明该验的都验过了!在深夜的工位上,空空如也的不只是公司,还有我的大脑。各种尝试无果,我垂头丧气地收拾东西回家。刚到楼下冷风一吹,我清醒了很多,回顾我的调试流程,好像一直只聚焦于通信过程,莫非在通信之前就出了问题?有了!应该是新硬件没有将自检结果通知主核!如果是这样的话,也符合了当前log(日志)中的现象。
想到这里,我立马风风火火地回到工位,迅速修改代码,点击运行IT,果然通过!这一刻,我终于体会到了翻山越岭、柳暗花明的开心。
都说“万事开头难”,有了第一次需求成功交付的经验,我不仅熟悉了基带的项目开发流程,也对芯片中的核间通信原理有了深入了解,对后续的挑战充满了期待!
打赢这场硬仗
2024年,我开始着手投入“下行(从基站到用户的通信方向)验证”的工作。与之前做的“平台验证”相比,“下行验证”涉及到了更多通信方面的知识,这对于软件出身的我无疑又是另一个挑战。
9月,我们迎来了新芯片的第一场硬仗——下行系统测试首用例调试。下行验证作为芯片下行商用前的最后一道屏障,首用例调试不仅关系到芯片整体交付的节奏,更直接决定了当前芯片是否可投入商用。
这次首用例调试的时间和人力很紧张,主管毕维哥反复叮嘱我们:“要打有准备的仗,尽力把能做的准备工作都提前做好。”我们提前准备好了打包版本,梳理了版本加载的流程,只待LINK(一种调试平台)版本一发布,首用例调试的工作就立马如火如荼地展开。
然而,整体的调试过程并不像我想象的那么顺利。我们开始执行用例没多久就出现了挂死问题,我们用软件调试系统查询,发现了“X硬件队列资源申请失败”的错误码。简单来说,我们的测试用例模拟的是从基站向用户发送数据的过程,在过程中需要用到各种硬件,在申请使用硬件资源时,却申请失败了。
我立马怀疑是该硬件资源不够,但是结合资源表、借助调试系统单步调试又发现:硬件资源是够的,并且也申请成功了,但是一到队列,资源申请就会报错。那是不是队列中X硬件的分组方式配置有问题?
我对应代码逻辑,发现分组配置果然有bug!原来在资源重配之后,程序申请了没有分配资源的组,从而导致了队列资源申请失败。这就好比苹果是我们要申请的硬件资源,篮子就是放置硬件资源的队列,我们现在申请到了苹果1、苹果2,并且将这两个苹果都放进了篮子1中。但是当我想吃苹果时,却试图从篮子1、篮子2中各取一个苹果来吃,从而导致报错。
讨论首用例问题(左一为作者)
后续,我们又定位了一些资源表、RTT(无线传输技术)模型等问题。这些问题定位十分考验我们对业务流程的熟悉程度,需要根据问题现场立即推断可能导致错误的根因。组内专家有句话总结得很到位——“问题定位就是不要相信任何人”,对于版本间的所有差异点,我们都要抱着“质疑”的态度去确认,这看似耗时,实则对定位效率有很大的提升。
最终,首用例提前两天打通,那天虽然已是深夜,但是大家都兴致高昂。首用例的打通,保障了这款芯片业务验证的调试进度与芯片质量,意味着芯片设计方案的实现达成预期,我们所有的努力都没有白费。而这一次,我也很荣幸地获得了“基带芯片验证质量优秀奖”。
我时常在思考:“人生的意义是什么?”在我看来,一方面是自我服务,让自己成为一个积极向上、阳光活力的人。我喜欢和不同的人交流,也热衷于分享自己的观点。所以,公司和部门举办的各种活动,我都想尽量挤出时间去积极参加:我有幸参加了“无线少年说”,跟大家分享自己工作中遇到的各种趣事;担任了两届“活力西研舞蹈大赛”的主持人,感受到了华为舞者们的绝美风貌;利用自己读研期间“智慧教育”的研究方向,承担起部门知识管理的公共事务……在各类活动中,我不断“充电”,获取积极的力量!
而人生意义的另一方面,就是实现自己的价值。什么是有价值的工作?我想,在我调试通每一个用例时,完成每一个需求时,保障每一款芯片顺利交付时,心中便是答案!“辰心不改,悦者翩跹”,期待我们都能不忘记自己的初心,用心中的梦想照亮脚下的路,开心前行,探寻未来的无限可能,留下属于自己的精彩。
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59
2025-05-30 04:41:59