USB Type-C协议就应运而生了。M通讯也在紧跟协议做预研,只是大家本职工作都忙不完,预研这种事情总是做得不够细致,这次是首次商用,再加上周年庆的加持,领导才开始重视起来。
韩邵晨本以为自己要么负责图像处理,高清视频解码播放,要么就是高速数据传输中的WIFI或者USB。如今负责USB Type-C倒也不意外,但同时还要承担软件组长的职责,他预计的工作时间开始不够用了。
各个模块负责人的开发进度他需要跟进,硬件调试进展需要跟催,甚至有些新人能力不足解决不了问题还会来找他求助,再加上各种文档和流程会议,比如一个软件需求和功能确认文档,开了三次会还没确定下来,韩邵晨正常上班时间连看USB Type-C协议的功夫都没有,更别说研究实现代码了,只好加班到深夜。
林宇很郁闷的发现恋人为了这个项目都没空跟他讲电话了,打个电话都是这样的:
“晨儿,干嘛呢?我刚开完会,准备吃个宵夜,饿死了。”
“刚看到Supported Configuration。”
“呃,你在看协议啊 ,难不难?”
“还好。”
“这都快十二点了,你还在公司吗?”
“刚回家,看协议不用待在公司。”
“哦,好吧,那你先看哈,别熬太晚了。”
“嗯。”
“晚安啦,晨儿。”
“晚安。”
尽管从韩邵晨的语气里听不出不耐烦,但是比平时简短的对话里,还是能感觉到他其实忙到飞起。
止不住心疼,却不能让恋人停下,毕竟还是他鼓励对方承担起这么多事情的。只是每天晚上基本韩邵晨都在加班看协议或者写代码,搞得他都不好意思多说几句,连早点休息的叮嘱都显得无力,因为说也白说。
这种时候,林宇深刻体会到异地恋情的无奈,如果在身边,即使再忙,都能看到人,起码还能照顾一下他,如今连电话都没时间讲,真的是抓心挠肺的难受。而且其实他们两人的繁忙程度基本不相上下,只能见缝插针地发个微信以解相思之苦。
是不是该换个岗位或者换个工作,离邵晨近一点?林宇开始思考这个问题。他一点儿都没考虑让韩邵晨换地方,毕竟由他来熟悉陌生环境总要容易一些。
做到一个片区市场部经理,要跳槽或者换岗也不是那么好找机会的,只是这个念头一埋下,林宇就开始注意一些相关信息了。
韩邵晨一旦专注在工作上,确实很少想起来自己的恋人。但是每当半夜一两点躺到床上时,他才发现今天似乎又没跟林宇说上话。还好手机上总有林宇三不五时发过来的照片或者语音,总要复习上几条才肯睡。
倒是韩静和林宇周末偶尔会聚在一起吃饭聊天,两人的关系越来越融洽。林宇苦中作乐地想,这也算先攻略家长了。
终于到了USB硬件模块验证好,能上板联合调试的时候,韩邵晨发现加班都没办法解决问题了。李志刚这个硬件人员说是有经验,其实也就入职一年多,综合能力都不大行,硬件最小系统加上USB Type-C模块综合出来的逻辑出了问题,一开始连串口都无法打印调试信息,还总认为自己的硬件没问题,是韩邵晨软件配置有误。
韩邵晨也不跟他对软件,连上仿真器,等软件初始化程序跑完以后,通过仿真器直接查看硬件寄存器里的数值,等李志刚过了一遍寄存器配置,确认无误之后,又在旁边等他确认硬件代码,发现有一处的与或关系配反了,等改过来之后终于能顺利打印,李志刚这才承认是自己的问题。
可是等串口能打印,Linux最小系统顺利跑起来了,USB的Host端和Device端的交互又出现问题,无法获取USB的设备描述符。李志刚觉得自己模块验证都没问题,不会再出错,又想怀疑是软件有误,但是之前明晃晃的打脸结果又让他不好意思直说,只能拉着韩邵晨不停地调试。
但韩邵晨这边白天不断的有人打断他的工作,身为组长又不能放着不管。在他处理其它事情的时候,李志刚只能干等着。想让李志刚自己加载Linux系统,输入测试命令去调试,把流程都给他列出来了,对方却只说自己是硬件人员,软件一窍不通,死活不肯自己干。韩邵晨虽然有些生气,却也没法勉强对方,可是实在分身乏术,他开始思考自己处理工作的方式是不是不大合适。
等韩邵晨终于在一天晚上十二点和林宇描述这些问题的时候,林宇才知道韩邵晨究竟有多忙,对他的勤奋和寡言更是心疼不已。
“你对待组里新人的态度,是不是跟以前对待你徒弟谭明明一样啊?”林宇小心地问。
“嗯,他们的状态可能比谭明明还差一点,一工作就参与这么大的项目,都比较紧张。”
“你啊,就是太好心了。”林宇叹了口气,“谭明明是你徒弟,你多关照一点也行,怎么组员都这么照顾,两个你也忙不过来啊。”
“这样不对吗?”韩邵晨不解。
“不对。”林宇也不跟他绕弯,“组长面对组员的主要职责就是分配任务收集进度,更何况你本身也有开发任务,又不是他们的保姆。即使是新人,他们也有师傅,有问题可以去问师傅。”
“可是他们师傅不熟悉我们的项目,也不懂他们负责的模块。”韩邵晨有些纳闷,“问他们也没用啊。”
“你就全懂吗?”
“嗯,差不多吧。”韩邵晨老实回答,毕竟工作过四五年了,忙起来什么都得顶上,各种模块几乎都接触过。
“咳咳——”有个技术全能的恋人真是没法聊天,“可是教新人不是组长的责任,这一点你明白吗?”
“哦。”韩邵晨其实并不明白,但是他很听林宇的话,“组长的具体事务也没有文档说明,我确实不懂。”
“我知道你想把组长做好,让全组任务都能按时完成。”林宇有些怨那个让韩邵晨当组长的领导,却也知道造成现状的主要原因还是他自己,“但是你想想,你以前参加项目的组长会做到像你这样的程度吗?”
“我不知道。”其实是从来没关注过。
林宇想也知道是什么情况,只能循循善诱:“那你也是从新人过来的,你也有不会的时候,你都是怎么做的?”
“看文档。流程规范和操作文档是很齐全的,结合文档看代码,再加上部门统一的新人培训,都掌握下来就能独立进行开发任务了,不太需要问人。”韩邵晨说着说着,也察觉出不对劲了。
“对啊,那些新人就是懒,不认真,再加上你有求必应有问必答,当然不肯多花时间去掌握了。不要惯他们这些坏毛病。”林宇想想就来气,一群混账,就知道欺负他老婆,要是他的手下统统扣奖金!
林宇接着说:“而且我之前也听谭明明说过,她有什么问题你也经常会让她看文档的,这样才能培养她自己独立解决问题的能力。现在当了组长,怎么反而不让人看文档了,你是害怕跟不上开发进度吗?”
好像是这么回事,韩邵晨想了想,他不自觉的给自己背了太多责任,都不知道什么该做什么不该做了。
一番话谈下来,等到互道晚安,又已经是一点多,但是这些天一直压在韩邵晨心头的重石似乎搬开了一点,让他连入睡都安心了一些。
然后,周年庆软件开发组的新人们发现他们的组长在发了一封长长的邮件之后,不再那么手把手帮他们了。
邮件里把各个模块相关的软硬件文档以及硬件支持人员都详细列好了表格,因为太长,即使邮件头部有红标,很多人都懒得仔细看,遇到问题还是习惯性地去问组长。
但是组长听完问题,都是头也不抬地告诉他们,去看红标邮件,甚至规定了他们解决这个问题的时间,到时查看。
新人们敢怒不敢言,他们的态度大体上分三种:
有的人仔细看了,按图索骥,从文档中顺利找到问题的答案,同时发现原来文档里几乎什么都有,通过看文档自行解决问题的热情也提高了。
有的人走马观花地看了,还是没办法解决问题,等韩邵晨查看进度的时候,两眼一瞪说没找到解决方案。韩邵晨当面翻出邮件,指着列表里的文档让他打开,再从文档里两三下就找到了解答相关问题的技术点。因为韩邵晨一向不说废话,面无表情,连委婉表达都不会,直截了当的态度让稍微好点面子的人也知道不好意思。
个别油盐不进的人,那就只能单独对待了。
终于韩邵晨不再那么频繁地被打扰了。而这些新人面对这种改变的态度,基本上也决定了他们将来工作能达到的高度。
第一种人,是愿意钻研技术的骨干,第二种人,是还能挽救一下的员工,最后一种人,将来加入末位淘汰的裁员大军几乎是板上钉钉的了。
这些都是林宇秘密教导,韩邵晨默默学习处理的结果,等他不再焦虑这些日常事务时,这才能专注于USB Type-C的调试。
作者有话要说:
本文主要时间点在几年前,所以有些技术在目前来看已经落后了,成长就要伴随着工作,我已经努力精简比较专业的内容了,哈哈
第 29 章
USB Type-C目前使用的配套软件调试代码是韩邵晨在硬件准备好之前,根据协议原文,再参照Linux源代码中相关的框架代码写出来的。
通俗来讲,当带有USB接口的设备插到电脑上时,电脑通过USB插座上的电压变化,发现有USB设备接入,会和设备进行一系初始化数据通讯,之后再根据设备类型进行对应格式的数据传输。
李志刚做出来的这个硬件逻辑,是模拟一个带有USB Type-C接口的设备,把硬件逻辑下载到FPGA调试板上,调试板本身和电脑通过串口连接,用来打印调试信息,再连上一根USB Type-C数据线接到电脑的USB3.0接口上,接入USB时电脑发出询问,但是总是收不到设备端正确的反馈信号,最关键的USB设备描述符获取不到,那就压根认不出这是个USB Type-C的设备,身份都不能认证,那就没办法进行下一步的数据传输。
李志刚还是有点怀疑韩邵晨的代码问题,韩邵晨在反复对照协议,甚至把硬件验证代码拿过来对比之后,确认自己的代码起码在前期初始化流程上没问题,不应该存在无法响应的情况。
还好串口的前例摆在那,李志刚也知道韩邵晨的专业能力一向过硬,没敢把责任全推到他身上。但是这个问题卡了几天,再卡下去后面的进度很难保证,硬件组长也很关注这个问题,限定他一周内必须解决,眼看着时间就要到了,李志刚只能跟韩邵晨商量通宵调试。
韩邵晨没有犹豫地答应了。
之前忙的时候,韩邵晨最晚加班到两三点,回去稍微休息一下,早上也是按时上班的,通宵还真没试过。
林宇惯常十二点的问候微信,收到了韩邵晨需要通宵的消息。
尽管他自己也通宵过不少次,但还是心疼韩邵晨忙成这样,直接打了个电话:“晨儿,怎么这么忙,晚饭好好吃了吗,有给你们准备加班餐没?”
“嗯,进度慢了,需要赶一下。晚饭吃了,项目组有买一些零食。”尽管已经是深夜,韩邵晨还是一板一眼地有问必答,丝毫没有错漏。
“那就好,半夜要是实在太困,你就稍微睡一会儿,你在公司里放午休床没?”林宇不放心地问。
“有的。”韩邵晨在致力于像一个普通人那样工作的道路上,一点儿也没有跑偏。软硬件工程师人手必备的午休床或者地垫,即使不用也要随大流一起买上。
“多喝点水啊,加班干活心浮气躁,最容易缺水。”林宇接着叮嘱。
“嗯,”韩邵晨答应着,却还是补了一句,“我没有心浮气躁。”
“哈哈,好嘛,你最淡定了。”林宇笑了出来,但是没笑两下,声音有些低沉下来,“我好心疼你啊,这么忙,我都不能在你身边照顾你。”
韩邵晨面对恋人这种状态的关怀,着实有些不会应对,沉默了下才道:“没事的,很晚了,你先休息吧。”又想了想,还学着安抚对方,“说不定很快问题就解决了,你也不用太担心。”
“嗯,你那么厉害,肯定是有人拖后腿才要通宵的,”林宇理所当然地这样认为,虽然差不多没错啦,“要是别人的问题,你就偷偷懒多休息一会儿。”
韩邵晨看看正等着他加载软件调试的李志刚,摇了摇头,“我要工作了,晚安。”
“好好好,不打扰你了,晚安。”林宇叹了口气挂上电话。
李志刚有些八卦地盯着韩邵晨笑:“韩工,你这是给老婆报备吗?”
韩邵晨一怔,随即摇了摇头:“我没结婚。”
“哦哦,那就是女朋友咯。”李志刚随口说着,让开了点位置,“我刚才优化一下线路,看看这一版能不能通过。”
韩邵晨没有理会李志刚不走心的八卦,专心开始调试。
USB设备端软件要做的事情其实不多,基本上都是硬件自动响应的,但是李志刚始终认为验证已经通过的硬件代码没问题,总希望通过软件调试来解决无法响应的bug。
在韩邵晨花费时间制作了符号表,加载了函数信息,用仿真器进行了复杂的单步调试之后,终于确认是软件在等待硬件信号时卡住,命令发出去之后石沉大海。