Ning's profile逆水行舟PhotosBlogLists Tools Help

Ning Ling

Interests
随着年龄的增长,才慢慢领悟到前人的哲理。 存在的一定有它的原因

逆水行舟

January 02

Windows CE的历史--前言

 

艰难的起步

Microsoft在1996年11月发布了Windows 95的缩小版,Windows CE 1.0(有些评论指CE代表的是Compact Edition,也有人说是Consumer Electronics,不过Microsoft都否认)。他一开始的设计目标是简单易用以及用户熟悉的体验,特别是对于Windows 95的用户而言。

然而,在讨论Windows CE发展之前,我们必须先回到1992年的夏天。其实微软在1990年就开始对现在许多Windows CE里面的技术展开了研究工作。当时这些研究的初衷是为了创造出一个移动型的Windows设备。在1992年,微软宣布了移动型Windows的计划。

当时微软启动了WinPad项目,这个项目里面,微软希望能够可以转变用户和Windows交互的方式。当时的想法是想通过改变我们现在熟悉的平台到一个完全不一样的平台,从而激发更多的创新。微软的目标是通过改进Win16的代码,使之能够充分发挥新的x86(32位)CPU的功能,从而促成刚才所提到的改变。到了1994年,微软已经得到了全球最大的OEM厂商里面的7家投入到WinPad的项目中,其中包括了当时的Compaq(现在已经被HP收购)、Motorola、NEC和Sharp。这几家后来基本上占领了Handheld PC的市场。

不幸的是,WinPad对于当时来说是太超前了,里面包含了一些太过于超前的技术,譬如手写识别。但是1994年的硬件水平并不足以支持运行这些代码。当时的32位CPU才刚刚开始商业上的起步,无论是CPU还是内存的架构都不足以承受这些相对先进的技术所造成的负载。更糟糕的是,1994年的电池技术不便宜,并且功能也不够丰富,续航时间也不长。微软经过了OEM厂商几轮的讨论,最后不得不在1994年秋天放弃WinPad项目。

然而,几乎是同时,另外一个代号为Pulsar的项目在Redmond悄悄地开始了。这个项目的目标是创建一个无线的,通用的消费者产品。这种产品的功能丰富,但是使用简单。人机界面只有少数的输入功能(譬如只有几个按钮),而机器本身则是和x86完全不一样的架构。对于Microsoft而言,这种想法有着美好的前景。因为如果有这种产品,就可以帮助Microsoft从复杂的PC软件市场中抽离出来,从而可以让Microsoft集中力量在简化技术的入门门槛。这一点,无论是Bill Gates本身还是微软内部的智囊团,都认为是有光明前景的。不幸的是,同样是因为硬件发展不足的原因,使得Microsoft被迫放弃了这个项目的研究。

虽然放弃了,但是,微软意识到,上述的想法对于创造一个移动设备的梦想而言是正确的。这种意识,被后来Apple和Psion在Mobile Device市场上面的成功不断的加强。不幸的是,90年代前期的消费者市场还是没有对这种技术准备好,特别是Microsoft所梦想的市场。面对这块新生的市场,规模比较小,玩家比较多,而客户的兴趣尚处于培育阶段,微软不得不实行等待政策,等待技术和市场成熟的时候再采取行动。

随着1994年12月份WinPad项目组的解散,WinPad的团队和Pulsar的团队合二为一,成立了统一的一个产品组:Pegasus。

July 30

Why and Why NOT

When I drove to Shenzhen today, I listened carefully about the words from Michael Jackson´s History. The last words of the song is a narration from quoting of George Bernard Shaw. ¨Some men see things as they are and say why, I dream things that never were and say why NOT¨. The quote impress me a lot. Innovations all comes from the ¨Why NOT¨, NOT just asking ¨Why¨.
In my pre-sales life, I always see things as Why. Why Linux get such innovation, such as Beryl, Ubuntu. Why Microsoft is making progress slowly. But I did NOT see Why NOT Linux. Not until we do know the reasons for Why NOT, we can NOT understand and change the mind set of all customers. So we have to learn and get deep study on Linux. Not until then, we can understand the power of open source and the potential of this new business model hiding beneath.
A great company should always ask itself Why NOT. If we stop asking that, we will be at the same place as IBM several decades before and lose our growing opportunity.
June 05

CE 6.0中断处理

尚未整理之资料,仅供参考。如需转载,请通知本人。

ARM的中断处理过程

Kernel代码工作

ExVector.s:中断向量定义,里面定义的是armtrap.s的函数地址

Armtrap.s:中断处理定义,最重要是里面的IRQHandler函数,而其中最重要的是CALL OEMInterruptHandler

Mdarm.c:中断向量加载

Kdriver.cNKCallIntChain函数:把IRQ转换为SysIntr,值得留意的是pIntChainTable[],是IRQ所对应的ISR处理程序的入口,其中最主要的是其成员函数pfnHandlerpfnHandler的填充,是在HookIntChain里面,这个函数是ISR在初始化的时候调用的。在这个函数里面,如果pIntChainTable为空,则返回SYSINTR_CHAIN,如果pIntChainTable[]不为空,则调用pfnHandler得到一个sysintr值,然后返回之。

 

OEM定义工作:

Oalintr.cOEMInterruptHandler函数,通过查询硬件的中断寄存器,得到硬件IRQ号。对于EINT04-23的中断,通过EINTMASK寄存器,得到相对应的系统IRQ。注意,这里的IRQCE定义的IRQ,是系统硬件IRQ的扩展。然后调用NKCallIntChain看看这个IRQ是否是一个ChainInterrupt。如果函数返回SYSINTR_CHAIN或者返回一个不合法的sysintr,则通过OALIntrTranslateIrqIRQ转化为sysintr。如果是一个合法的sysintr,则返回该值。

 

单一ISRDevice,主要通过OEMInterruptHandler处理,在OEMInterruptHandler没有定义的IRQ,可以在OAL里面或者驱动的加载里面,通过HookInterrupt函数进行关联。

多个ISRDevice,通常这是总线设备的需求,因为总线设备上面通常串有几个设备。这些总线上的设备,需要有一个ISR判断究竟是哪个设备发出的中断。这个ISR,是一个DLL的程序,设备驱动必须在初始化的时候通过LoadIntChainHandler(文件名,函数名,irq)加载这个DLL程序。LoadIntChainHandler的定义在kdriver.cNKLoadIntChainHandler里面。对于大多数的总线设备,可以利用微软已经写好的giisr.dll来实现。giisr的实现代码在Public\common\oak\drivers下面。

 

对于总线设备,如果利用GIISR的话,原理如下:

总线设备驱动在初始化的时候,通过LoadIntChainHandler加载GIISR,而加载的时候,LoadIntChainHandler会调用GIISRCreateInstance创建一个实例,GIISR会返回一个index值给LoadIntChainHandler,以标示实例,LoadIntChainHandler则会返回一个Handle给驱动,驱动则根据这个Handle存取GIISR。得到这个handle之后,初始化还需要包括从reg表里面读出相关的初始化参数,对GIISR进行赋值,譬如Port AddressMask AddressSysIntr等。

 

驱动程序在初始化的时候:

1、创建一个EventCreateEvent

2、然后用InterruptInitialize函数把sysintr和这个Event相关联

3Kick-off一个ThreadIST

4、这个Thread最终是WaitForSingleObjectEventID

具体的例子,可以参阅USBFN的例子:sc2410pdd.cpp里面,UfnPdd_Start函数;

April 26

Noel Comments

Noel means Christmas song. The movie Noel tells a story about 3 lonely people in Christmas. Rose (Susan Sarandon) is a successful middle age publisher for children books. But she was sad in Christmas because her first baby born and died at that day. She stay lonely for a long time. She just took care of everybody except herself.

In the movie, when Charlie (Robin Williams) asked Rose what she want the most all her life. She said, what I want most is to struggle over tonight. It seems that no matter how independent a woman is, she herself still need a companion. Many women will get their good opportunity slip away from their fingertips when they were young. When it comes to 40, most of them might be regret and feel need for a guy. I think the man is also the same way. 

Lonely people hates holidays. They are even miserable than mistress who at least has some one to miss. When god create human, it just set them miserable by planting natural conflicts into their hearts. Human wants freedom, but afraid of being lonely. But freedom's cost is lonely. No body wants to be died alone.

April 21

胡思乱想之一

好久没有写blog了。其实从去年到现在,在自己笔记本上写的东西也有许多,可是不是没写完,就是觉得写得不够好。连自己都过不去,就别提读者了。那天和一个法国的作家朋友聊起来,其实他的看法和我相近,写作都是依靠灵感的,有感觉的时候就写,没感觉的时候就停,只有用心写的东西,才是最美的。

也许是我一直追求Perfect,虽然我也知道这个世界上没有Perfect这个词。然而你心里面却不断的要求自己追求更完美。就拿那些没完成的文章,自己写的时候,总是觉得有许多的方面没有想透而不敢往下写。譬如家庭,婚姻,爱情。。。 而这些topic,当你思考深入的时候,你不得不去追寻更深层次的东西。可是这些更深层次的东西,往往会带来更深层次的思考,譬如当我读完罗素的文章摘要,往往需要去了解其整个思想体系,包括欲望,社会,道德,才可以得以完全了解其思想的体系,才可以批判性的接受其观点。可惜的是,即使是伟人,在人类几千年的文化沉淀中,也只是很渺小的一部分,更不要提我这种平庸的人了。几千年的知识,不是几年内就能消化和吸收的。

也许这是我本身的缺陷,追求完美也许最后只有精神分裂,譬如尼采。也许是需要反省自己在完美和谬误之间的尺度把握的问题了,毕竟人并不是上帝。

December 04

Dream Maker

 

Every girl have a dream.

Dreaming of a white horse prince.

Bring her flowers, bring her ring, bring her a life she can count on.

 

Every boy also have a dream.

Dreaming a white snow princess.

Beautiful, elegant, and giving him the power to protect her from the danger.

 

Some boys are dream makers.

They are well educated.

They are very gentleman

They will die for their family

 

But what girls expected is NOT just that.

Girls need love.

They need boys fully fall in love with her.

To love her, NOT just her body,

But her soul.

NOT only goodness, but also badness.

Love means that you should be blindly accept her everything.

 

Love don't take logic

Love just blind

Love will be consisted of courage and gentle lie.

 

Unfortunately, dream makers just don't know that.

They looks like good lovers

But their hearts are empty

They just making dreams for themselves, no matter who they are loving

 

Maybe one day, when the dreams woken

They are still lonely.

Reviewing from the past,

They will regret how many good girls are slipping away from them.

 

ONLY then, and NOT until then, they will be man

NOT just a boy.

But hopes that time will come earlier,

NOT until they will go to be nailed in a coffin

And with a gravestone saying, I was missing something important in my life.

October 31

路的选择

 

几个月前从深圳龙华开回广州,因为看到来时候对面的路很拥挤,所以决定在大浪上高速。大浪在机荷高速旁边,往东接梅观高速,往西接广深高速。因为广深高速从宝安机场到长安之间经常会发生事故而拥堵,所以我不打算从那里走,希望能够取道常虎高速,绕开拥挤路段。在高速公路的入口,面临着两个选择,一个是机荷高速->梅观高速->常虎高速->广深高速,是我非常熟悉的路,不过得往东走四十多公里的冤枉路;另外一个选择是龙大高速->常虎高速->广深高速,是我没有走过的路,并且我只是依稀记得好像常虎高速有路牌指向龙大高速的,只是因为方向上是和梅观高速平行,所以我确定应该可以cut常虎,比较有吸引力。在路口斗争了一会儿,我决定走新路。

结果在龙大高速入口处,当我咨询收费员是否可以cut到常虎高速,他告诉我不可以,本来想掉头回到机荷高速的,可是掉头的位置却在第一个出口处才有,这意味着我得再浪费多15公里的时间。我过了收费站考虑良久,想到龙大的方向是对的,而且重点是东莞,即使不能够cut到常虎高速,也一定能够有路去到广深,最多不是高速公路而已啦。

于是没有掉头,一直开下去,最后,终于看到了“常虎高速”的路牌,很可惜,入口那段没有修好,在牌子前面,龙大就结束了,还有4公里就到常虎了!我只好下来,转到107,如果遇到路口就往西北方向走。走了20分钟,终于见到广深的长安入口了。

到了广州,算了一下时间,其实和全程高速也差不多,从大浪到广州天河北,这样走也就是1个半小时(时速90-100)。

 

在广深回来的路上,我一直在想,其实人生也经常会碰到同样的问题,工作,感情,生活都有许多的选择,有些选择是确定的,但是就是有你自己觉得不满意的地方;有些选择看起来很Perfect,但是却隐含了许多风险是没有经历过的你无法预知的。选择了不可预知的路,过程中会不断地有使你失望的地方,然而,只要你的目标明确,方向正确,总是可以到达终点的。并且有时候,结果(譬如所花的时间)也是一样的,只是你在未确定的时候,感受不到而已。而决定走未确定的路,走过了,你就多了许多的知识(譬如现在我就知道龙大高速和常虎高速是有接口的,只是暂时没有修好而已),这些知识在你今后的历程中,会发挥很大的作用(譬如一段时间后,我如果再到龙华,就可以很有信心的选择龙大->常虎)。

人生的路最关键是目标明确,否则就根本谈不上方向是否正确。不幸的是许多人往往要过了很久才认识到自己的目标,然而却经历了许许多多的弯路。目标明确,可以使你把更多的时间集中在某一个方向上面,从而可以比旁人有更多这方面的积累,更容易成功。

去往目标的路是人走出来的,每一个人都有自己不同的道路,每一段经历不管是好还是坏,也总是你人生一部分。我们没有必要抱怨命运如何不公,只需要乐观看待每一份经历,从每一种经历中学习,就是人生最大的乐趣。

这个世界上,无论是富人还是穷人,起初和结尾都是一样,只是中间的经历不同而已。作为在这个历程里面的主角,如果不会欣赏自己的这段经历,那么就不会享受到人生的乐趣。

 
There are no photo albums.