206、破困局X单骑救主,当助手琳达通宵陪伴

天下无难事,唯坚忍两字为成功之要诀——黄兴。

所以,困难犹如一块石头,你一锤子砸下去,如果石头不碎,那就第二锤、第三锤......直到石头被砸碎为止!

大家都去吃晚饭了,但我没有同去,而是静心寻找其死机的原因,因为我这个人有个特点,就是遇到问题了,宁可不吃饭也要先把问题找出来。

很快,我找到死机的原因了,而就在此时,大伙吃完饭回来了。

“X,你怎么没有去吃饭啊?!”Tom一进门,就冲我嚷道。

现在我已经变成了他最关心的人了,因为展会上是我说的:明天会给出答案,而我这个人的信誉很好,平时从不作任何无法兑现的承诺,因此Tom自然把“宝”压在了我的身上。

更重要的是:找出问题不是关键,关键在于是不是能在虽短的时间内解决问题,因为如果不能解决“死机”的问题,那么AT&T肯定是不会看上这样有问题的产品的。

那么Tom原本希望通过LunX的CWDM系统在OFC的首秀来推动公司下一轮的融资和未来的纳斯达克上市的计划显然要落空了!

然而,我并没有向Tom解释为什么我没有去吃晚饭,而是对大声地对大家说道:“我发现造成‘死机’的原因了!”

大家一听我找到问题了,都兴奋地围了上来。

Tom更是迫不及待地问道:“Whathappened?(什么原因)”

在所有的人中,Tom的心情最迫切,因为他是LunX的创始人,成功了,他的收益最大,失败了,他承受的压力自然也最大!

“因为负责下载更新软件的启动程序被冲了!”我看了一眼焦急地看着我的Tom,简短地对大家说道。

“Howcan?!(怎么可能)”大家听我这么说,就几乎异口同声地失声问道。

因为在大家的认知里,启动程序是不允许更新的,且软件中也没有任何代码会把下载的内容写到启动程序的存储空间中去。

“因为断电造成的干扰!拔电源时,是一个机械动作,即电源插头和插座的连接并不是像刀切那样被一刀两断,而是会在断开和重新连上之间进行机械震荡,这是为什么有时候我们拔电源插头时会看到火花的原因。”我先为大家做了一个关于机械开关在开关时会发生什么的科普。

“而正是这个机械震荡,在光通信系统的电源中形成了一个脉冲干扰,如果这个干扰足够强,且又正好发生在往固态存储器中进行写操作的过程中,那么就有可能会搅乱了微处理器在进行固态存储器的写操作时的地址线,大部分情况下,受到干扰的地址线中的很多位会变成零,而启动程序正好处于整个存储空间的底部区域,这样就会导致原有的启动程序代码被下载下来的内容覆盖的情况。”

机械开关在开关的过程中会产生机械震荡是一个常识性的问题,但未必每个人都清楚这一点可能造成的后果,于是我向大家详细解释起了整个电源干扰发生的过程和造成的后果。

实际上,这样的问题我遇到不是一次了,差不多十年前,在EverexInc.,当时的高分辨率显卡随机出现死机问题,就是因为电源开关时的机械震荡形成的脉冲干扰导致的。

大家一听,信了,也服了。因为我讲的并不是什么深奥的东西,大家一听自然明白,只是你听别人讲能明白,要自己想出来那又是一回事了,这要看你的经验是否足够丰富了。

作为一个工程师,经验是非常重要的,而经验的获得,唯有通过解决一个个的疑难杂症才能获得,而我喜欢接受挑战的性格,这让我比一般的美国工程师更快和更多地积累了经验。

“解决的方法也很简单,那就是把启动程序单独放到一个ROM中,这样无论发生什么情况,都可以保证启动程序不受影响。”我见大家听明白了,就把解决问题的方法说了出来。

“Fantastic!(太神奇了)”Tom一听这么简单,原本紧锁的眉头舒展了开来,带头鼓掌道。

但大家高兴了还不到一分钟,马上又发现新的问题了。

“Waitaminute!(等一下)”Tom的眉头又重新紧锁了起来,说道:“这是不是意味着我们必须修改整个光通信模块的硬件设计和软件系统的结构?”

硬件要改,那是自然的,因为原来的设计中没有这么一个单独的ROM存在。

软件结构要改,因为原来启动程序是整个光通信模块中的软件系统的一部分,并不是完全独立的,现在要独立出来,这样一来,启动程序和控制管理程序之间就存在一个控制权转移的问题,这就要改软件系统的结构了,而软件系统最怕的就是改结构。

大家一听Tom这么说,也傻了,因为OFC只有短短的一周时间!

包括AT&T的人明天还要看结果呢!而AT&T是通信行业内最重要的客户。

所以,如果不能在最短的时间内解决问题——最好是今晚就解决,否则这次OFC等于白来了!

“只需修改软件的框架,而硬件则不用改,只需把其中的一片32KB固态存储器改成32KB的ROM就行了,因为两片32KB的固态存储器我只用了其中的一片,还有一片完全空着没用。”我听Tom问到是不是要改硬件设计,就摇摇头说只需改软件,硬件可以不用改。

原来,每块光通信模块都有64KB的存储空间,由两片32KB的固态存储器构成。

由于我当年是从只有4KB存储空间四位微处理器起步的,因此已经习惯了尽可能地优化和压缩代码,所以64KB的存储空间我只用了其中的20KB的空间。

换句话说,还有一片32KB的固态存储器完全空着,因此只需用一片32KB的ROM来简单替代就行,因为固态存储器和ROM的管脚排列是一样的。

Tom一听硬件不用改,只需改软件,不禁转忧为喜,因为如果要改硬件,那铁定明天是完成不了的,而如果只改软件,那就还有可能,于是他看了一下手表,对琳达说道:

“OK!琳达,你马上打电话通知Robinson,让他马上去仓库,拿上几片32KB的ROM,连夜开车送来OFC!”

上一章目录+书架下一章