程序员的正常生活(53)
调出来手机上的日历看了一眼,算了算,距离上次他去S市也过去快两个月。整天埋头在工作中无暇他顾,此时才发现原来他们确定关系之后已经过了这么久。这一瞬间,连续加班外加熬夜睡眠不足的疲惫之下,韩邵晨发现自己思念恋人的情绪突然涌上心头,“我也想你,那我尽量把下周末空出来。”
“不用不用,你别又为了空出周末死命加班,只要晚上回来让我看到就好啦,我中午也可以去找你,陪你吃个午饭嘛。”林宇生怕韩邵晨太累,“别总是熬夜,太伤身体。我就跟你说一声,你休息吧,早上也没睡好,今天晚上就别看协议什么的了,好好睡一觉,晚安啦。”
“嗯,晚安。”韩邵晨摸摸胸口,发现自己又开始期待了起来。
早上韩邵晨整理晨报和回复各种邮件期间,李志刚呼了好几次让他去实验室。韩邵晨把比较重要紧急事务处理完,走进实验室的时候,就听见小小的滋啦声,音箱接触不良似的发出噪音。
原来是谭明明刚好在调音频模块,外接了个小小的音箱,滋啦滋啦的杂音中偶尔冒出一两串音符。一个几乎不听歌的人也能听出来旋律里演奏的是《采蘑菇的小姑娘》。
终端设备在软硬件开发的过程中,一般都是先一个模块一个模块调通的。硬件搭载的最小系统上,包含了必备的中央处理器,内存,时钟和协助调试的串口用来打印调试数据,先保证能顺利跑起来linux最小系统。在这个基础之上,需要调什么功能就加载什么模块。比如韩邵晨在调的USB,此时谭明明在调的音频。
我们用的手机就是终端设备中的一种,能够流畅的播放电影,听音乐,上网,以及和电脑互联传照片……这些功能在最初的时候,都是软硬件工程师们一个功能一个功能实现起来的。
先是用可硬件编程的调试板加载硬件逻辑,再下载软件代码进行调试,等功能稳定之后,再把可编程的硬件逻辑做成真正的硬件实体,进一步调试。把每个硬件模块就像做拼图一样拼在一起,由软件联合调试通过之后,再由工业设计师设计出的漂亮外壳包装起来,最终拿到用户手上的才是小小的手机。
当然这些事情是很多人同步进行的,不然一个手机做十年也做不出来。
旁边谭明明的徒弟陆思源在嚎叫:“师傅你换点流行歌曲好不好啊,最好每次测试的时候都放不一样的歌,这样就当是听背景音乐了。”
谭明明没好气地翻个白眼:“音频测试的数据也是单独做出来的,这都是以前的样本,直接拿来用的,我是有多闲做一堆歌给你听?”
韩邵晨走了过去:“已经能出声了?”
谭明明嘿嘿笑:“师傅你都通宵搞定USB了,我也不能太落后啊,前两天音频的逻辑才出来,速度很快吧?”
“不错,杂音太多,找找原因。”韩邵晨肯定了谭明明的进度,随即摇摇头,“不算搞定,只是调通了控制传输,找到设备描述符而已。”
“控制传输通了,数据传输就很快了。”一旁的李志刚插话,“逻辑都下好了,就等你啦。”
韩邵晨坐了下来,从裤兜里掏出手机轻轻放到桌子上,开始调试USB数据传输功能。
作者有话要说:
下一章就变日常多啦
第 30 章
在时不时响起磕磕绊绊的《采蘑菇的小姑娘》音乐中,USB Type-C的数据传输功能在一天之内顺利调通了,几乎没出什么差错。
而《采蘑菇的小姑娘》却始终杂音环绕,不见什么起色。
谭明明调了一天越来越沮丧,她知道韩邵晨很忙,也看过他写的那封长长的邮件,实在不想去打扰自己师傅,但是之前负责音频模块的软件人员正好出差,远程也没办法帮她调试,有点求助无门。
韩邵晨编了个小程序,让电脑通过USB接口进行反复的读写测试,看看功能是否稳定。李志刚在旁边看着他就在临近下班的时间里刷刷敲好代码,编译运行,也有些吃惊:“韩工,你除了在设备上写驱动程序和硬件,也懂在电脑上写应用程序啊?”
“这种小程序很快的,不用懂很多。”韩邵晨起身看到谭明明的表情有些不对劲,原本很难从外表体会别人心情的他,最近就像打通了任督二脉,居然能感觉到这姑娘现在很头大。
“怎么了?”韩邵晨走过去问。
“师傅啊!”谭明明像看到救星一样,就差扑过来抱大腿了,“师傅你有空吗?我怎么调声音都不连续,配置也看了好几遍,文档都被我翻烂了,实在是找不出原因啊。怎么办~”
韩邵晨拉了个椅子坐了下来,谭明明的眼睛都快冒星星了:“师傅,我有好好看文档,但是真的实在没发现问题,音频的硬件人员我也找他确认过了,软件配置也都对着呢,可是怎么是这个鬼声音呢?”
听了一天,韩邵晨心里多少有点谱,他也想让谭明明自己解决,但徒弟这副样子,实在有点看不下去,大致浏览了下配置代码,确实没问题。
再看音频播放数据搬运部分,韩邵晨点了点屏幕:“你这是把DMA当中断用了吗,一次才搬这么点数据,这么慢,声音肯定不连贯。”
“啊?”谭明明有些傻眼。
DMA(Direct Memory Access存储器直接访问)是用来实现高速外设和存储器之间自动进行数据传输,用DMA控制器来开始和结束数据传输。这样不用一直占用CPU来进行数据读写,同时速度更快,在需要连续不断的播放音频视频的场景下,用起来是很方便的。
韩邵晨边起身边说:“先去吃饭吧,应该就是这个原因。不要光看音频文档,DMA文档也看看,你这是从哪里拷贝来的代码,不知道根据使用情况调整一下传输参数吗?”
“哦,好,谢谢师傅。”谭明明有些明白过来,一次能传输大段数据的DMA,似乎被她配置得一次只能传几个字节,不停的进行控制操作,数据传输速度跟不上,声音当然不连续了。
心里有谱,就没那么慌乱了,尽管早就知道韩邵晨技术过硬,谭明明还是忍不住感慨,“要是这个项目都是像师傅这样,哪个模块都懂的工程师来做,那进度啊质量啊哪里还是问题。”
韩邵晨也这么认为,但是想一想人员列表里三分之一的新人,三分之一多才工作一两年就被认为是老员工的,剩下不到三分之一的,也大都是只专注于一两个比较复杂模块的开发上。谭明明的说法只能是个美丽的幻想。
“人员更替,新陈代谢总是必要的。”沉默了半晌,韩邵晨居然也发表了自己的看法,“新人也需要锻炼,在项目里工作最锻炼人,你不也是这样成长起来的?”
“可是还是不行,你看我自己都搞不定。”谭明明自己吐槽,“我还以为我不需要麻烦你了呢。”
“你只是不熟,而且之前接触的都是红外,I2C这类的低速设备,经验不足而已,不是能力问题。”韩邵晨觉得自己说的很客观。
谭明明却又双手捧起了脸开始眨巴眼睛:“师傅你是在安慰我吗?”
韩邵晨有些惊讶:“这样是安慰吗?我只是希望你不要妄自菲薄而已。”
“这就是安慰啊。”谭明明点点头,“谢谢师傅。偷偷跟我说,你真的谈恋爱了吧?”
“……”韩邵晨无语了,怎么又扯到这上面去了。
“真的啦,对于一个成年人来说,只有恋爱才会让他的心变得柔软起来。”谭明明嘻嘻笑,“师傅最近真的很温柔,话也变多了,就是谈恋爱了吧?”
“也许你说的对。”韩邵晨沉默了一会儿,留下一句让谭明明有无限遐想空间的话,快步走向电梯口。
周围等电梯的人越来越多,谭明明也不好继续追问,但是看着韩邵晨表情有些柔和的侧脸,心中揣测是何方神圣能拿下这个她心目中码农里的“男神”。
可是就他们这样的工作强度,整天加班的状态,哪个姑娘能忍受得了啊,再加上师傅也不像是会甜言蜜语的人,能长久得了吗?
啊呸呸呸!谭明明发现自己简直有操不完的心,连连唾弃自己的发散思维。
吃完晚饭,谭明明继续去实验室和音频功能搏斗,韩邵晨则去接着处理各种杂事。在实验室待了一天,等到了工位上打开工作电脑,又是满屏的新邮件,调代码写文档他不反感,但是这种来来回回的邮件和工作总结进度汇报实在令人有些疲惫,一点成就感都没有,还浪费时间。