Windows Embedded CE 6.0 Fundamentals书评

- 嵌入式

最近几年,Windows CE的发展可谓顺风顺水,Windows CE操作系统和Windows Mobile平台两线都全面开花,同时,由于微软产品组的不懈努力,我们可以看到Windows CE作为一个通用嵌入式操作系统,越来越成熟了。但是,与之截然相反的是在美国的图书出版市场,却很少能够看到Windows CE开发方面的专业书籍。记得几年前有一本叫做Building Powerful Platform using Windows CE的书籍,可能是许多开发人员的入门书。但是那本书的内容已经严重过时了。介绍的是Windows CE 3.0时代的内容,许多内容与最新的Windows CE 6相比,已经谬以千里了。也正是由于这个空白,笔者在06年曾经编写了一本基于Windows CE 5.0的教材,那个时候,居然就有美国的出版商抛出绣球,要我把书籍翻译成英文出版。无奈担心自己的Chinglish丢人现眼,最终才没有答应。

摆在我手边的是一本名为《Windows Embedded CE 6.0 Fundamentals》的英文书籍 …

more ...

学院声明了,个人也声明一下吧

  • 嵌入式
  • 软件

学院针对某事件做了声明,如下: 个人也声明一下吧: 声 明 近年来,社会上有个别机构和个人,非法冒用俺个人的名义办嵌入式培训班。为此,俺个人声明如下: 俺是同济大学软件学院的教职工,从事软件工程专业本科课程教育和研究生课程教育。目前俺个人上课情况如下:《Windows CE嵌入式系统》课程及实验,本科生,研究生。《面向对象程序设计》课程,研究生。《大型数据库设计与应用》课程,研究生。 除上述之外,目前俺从未授权任何机构和个人办培训班。如有发现有人号称是俺在办培训班,请直接扭送“城管”大队处理。 就是俺 2008年7月17日 呵呵,这么写,也不知道有没有法律效力。俺自认是个默默无闻比较低调的人,可能是因为在网上写了些东西吧。居然在几个培训网站上发现了俺的名字,不知道是不是该荣幸一把,俺的名字居然有广告价值了。 最搞笑的是,某个企业的BBS上的WinCE讨论板块上,居然标明版主是omale,可怜我根本没去过那个网站。估计是他们自己申请了一个omale的ID,然后又把这个ID设为版主了,很好很强大啊。哎 …

more ...

连载6:从学生到教师

  • 嵌入式
  • 程序员
  • 软件

“林间新绿一重重,小蕾深藏数点红”——初次登上讲台 虽然我07年6月才正式到学院工作,但是初次登上学院的讲台却是在三年前。记得是在04年夏天吧。微软与同济大学联合成立了移动与嵌入式中心,并且希望资助我们学院开设Windows Embedded系列课程。但是Windows Embedded的课程老师很难找,因为整个国内的Windows Embedded都刚刚处于起步阶段。而恰巧我在做的汽车学院的项目用到了Windows CE项目,所以万老师希望我能够把这门课程开设起来。 04年9月刚开学,万老师就让我到嘉定校区,跟我商量上Windows CE课程的事情。其实之前给03级做过助教,讲东西倒不是第一次。不过要讲一门课程,却远远不是做个讲座那么简单。记得万老师告诉我希望能讲一些系统底层的知识,同时说讲课要抑扬顿挫,这样才能吸引人。为了帮着课程造声势,万老师还写过一篇谈嵌入式学习的文章,贴在tongji.net的bbs上。由于这篇文章分析的鞭辟入里,被各大嵌入式网站和论坛广泛转载,记得当时在最大的程序员社区csdn首页,这篇文章被命名为“同济大学院长论嵌入式学习”。名震一时,堪称经典中的经典。几年过去了,现在再看看这篇文章,依然有指导意义。 《Windows CE嵌入式系统》第一次开课是在02级本科生中。记得当时选课的有100多个人吧。现在回想一下,当时的这门课真有些误人子弟的味道 …

more ...

连载5:从学生到教师

  • 嵌入式
  • 程序员
  • 软件

“青山一道同云雨,明月何曾是两乡”——读书、毕业与就业 短暂的两年在软院的学习时间很快就结束了。04年6月,首届软件学院毕业典礼在沪西的会议中心隆重举行,学院邀请了所有毕业生的家长一起出席。从万老师的报告中我们得知,首届毕业生取得了就业率100%的成绩,并且平均月薪比其它专业要高出很多。周兴铭院士为我们每个人颁发了学位证书并且合影留念,这后来也成了我们毕业典礼的传统。 我们毕业之后,软件学院也从沪西校区搬到了嘉定校区。天佑楼,这座曾经见证了软件学院初期创业艰难困苦并逐步走向辉煌的建筑,也被挪作它用了。没有了软院学子的彻夜挑灯陪伴,你是否会觉得茕茕孑立呢?如果今天你到位于真南路的同济沪西校区去,依然可以看到天佑楼下矗立的“同济大学软件学院”牌碑。或许只有她,还在默默向来往的人群,讲述当年她所见证的,发生在这里的一幕幕无法被时间抹去的回忆。 毕业后,我作为保送直读的研究生,选择了继续深造。由于当年软件学院还无法接受工学硕士保送,我们一届七个人,被迫去了电信学院计算机系,攻读计算机软件与理论方向的硕士。师从陈榕老师。 陈榕老师毕业于伊利诺大学,1992年毕业后一直在美国Microsoft工作。见证了Windows操作系统、IE浏览器、.NET平台和最初的Windows CE等划时代产品的诞生。并且亲自参与了IE浏览器,COM和COM+技术以及.NET的设计和开发 …

more ...

连载4:从学生到教师

  • 嵌入式
  • 软件

“十年磨一剑,霜刃未曾试”——实习、走向社会与第一个项目 实习是我们接触社会的第一扇窗户,现在学院已经有完善的实习办公室,并且与各企业建立了实习基地,同学们的实习衣食无忧,不可谓不厚道,现在一起看看我们当年的情况。2003年,我们刚刚进入学院学习了不到一年,就有公司来学院招实习生了,那时候的我们,最大的问题是自信心问题,因为没有前面的参考,我们不知道自己走出去后可以做什么,也不知道自己的价值有多少。只能自己摸索。 第一个到学院来招实习生的是一个名不见经传的小公司:科投同济。公司没名气,又没实习薪水,改到今天,估计一个人都招不到。但是在当年,却吸引了我们班一多半的同学投了简历。后来万老师说我们太自降身价(其实当时根本不知道自己的身价)了,阻止我们继续投简历,否则估计很有可能会成为全民运动,所有同学都会投那家公司。后来学院招实习生的也多是一些中小公司,例如复旦金仕达,普元软件等,五百强公司少之又少。破屋偏逢连夜雨,我们实习的那年,正好还碰上非典肆虐,还发生过所有学生被实习单位集体遣返的事件。因此,我们那届的绝大多数的精英,都到了中小公司实习,并且就业。当然,是金子在哪里都会发光的,到现在 …

more ...

第一次讲Webcast

上周我在美罗大厦讲了一次webcast,内容是

Windows CE下的开发概述

这是一个基础课程,基本上都是一些概述性内容,技术要求比较低。链接地址如下:

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032358691&CountryCode=US

现在去了,注册一下还可以下载到ppt和录音。

Webcast是在线讲座,就是在网上通过微软的live meeting来讲。讲的时候对着一个电话夸夸其谈,看不到听众的反应,心里比较虚。

more ...

在boot loader中加入启动画面及插值算法

- 软件

最近有个朋友希望我帮忙给他的一块板子加一个启动画面。板子是用烂了的三星2410处理器。 不同之处就在于他的板子是640 x 480 VGA输出,而不是通常的240 x 320的LCD。

在Windows CE中,通常加入启动画面的方法很土,因为OS没有启动,所以没有什么BitBlt,StretchBlt等方法可以贴图,唯一的方法就是在启动的过程中,直接往显卡的Framebuffer里面写数据。这个工作一般在Boot Loader里面做,如果在OS启动的时候一般就太晚了,如果不加入人为的延时,启动画面刚一显示,就到了OS画面了。做法一般是这样,在Boot Loader里面:

BOOL OEMPlatformInit()
{
…………………………

// Init the Display  
InitDisplay();

…………………………
}

然后是InitDisplay函数一般如下所示:
static void InitDisplay()
{
int i = 0;
int j = 0;
volatile IOPreg s2410IOP;
volatile LCDreg
s2410LCD;

s2410IOP …
more ...

与Microsoft Redmond Windows Automotive组的人的交流

- 嵌入式

几周前就接到微软MSRA湘雯的通知,说有一个微软Automotive部门的人要来学校沟通。很是期待。偶最早接触嵌入式,接触Windows CE,就是从跟汽车学院一起做上海市科委的重大汽车电子项目开始的。呵呵,没想到当年是在给科技部长同志打工。
上周五,下雨。早上九点左右,一直在办公室等。突然手机响起,一看大惊失色,居然是一个+01打头的美国号码,接听之后正犹豫是说“喂”还是说“Hello”,对方先说话了,原来是MS的人已经到了。赶忙去迎接。原来是来自微软Redmond的女同胞,可以讲中文。
然后是碰头开会,她介绍了微软在Automotive领域的工作,然后我们一起到汽车学院,参观了同济自主知识产权的燃料电池车和电子仪表以及车载信息系统。
这里就顺便介绍一下微软的Automotive产品了。微软在车载领域虽然开始很早,但是在国内一直不为人所知,原因是Windows Automotive以及相关产品国内并没有OEM公司在做。而由于Automotive的专业性,微软的网站上也并不提供相关评估版下载(可能是即使下载了也没有汽车运行吧……)。微软在Redmond大概有一千人的团队在做Automotive。按照他们的话说:目前世界上的主要的汽车厂商,十个手指就可以数过来,所以车载没必要做成非常公众和通用的东东。
目前主要有两个产品:Windows Automotive和Microsoft Auto,至于官网上的Windows Mobile …
more ...

Windows Mobile 5手机使用经历——两天三刷

  • 嵌入式
  • 软件

看了标题不用吃惊。你搞Windows CE的人,怎么才用了两月Windows Mobile?别着急,慢慢道来。这篇文章不是技术贴,只是自己的一些故事。权当休闲看。
其实呢,我用基于Windows CE的手机用的是很早的。我2003年的时候就买了基于Windows CE 4.2的smartphone多普达515,当时花了将近4000大洋。多普达515是国内能找到的第一款smartphone手机了,现在早就停产了。所以自己也算是中国第一批吃螃蟹的人了。正是应了嵌入式系统的一大特性——更新换代慢——我的多普达515安然无恙的运行了4年(期间还经历了一次手机掉到厕所里,寒;还有一次充电器线掉到水里短路烧掉,还好有备用)。终于,4月15号彻底不工作了。现象是每次系统boot起来进入主界面之后大概10秒钟之后,键盘就不再响应任何操作了,只能拔电池。怀疑是GWES挂了。经过了一次恢复出厂设置,问题依然存在。后来经过我反复拔电池reboot,终于导致手机彻底歇菜。连boot都boot不起来了。肯定是硬件的损害。虽然对偶的515还有深深的感情,但是现在的smartphone早就步入了6.0时代,我还在使用4.2时代的产品,实在落伍。干脆一咬牙,换 …
more ...

Windows CE、Windows Mobile升级的杂谈

向下兼容估计是所有做产品的公司不大不小的痛。为了保住以前的老客户不抱怨自己的东西被淘汰。东西又要一直往下做来忽悠新客户。向下兼容是最好的选择。
今天我们说的还是微软的Windows CE和Windows Mobile。
Windows CE自从诞生之日起,总共经历了两次大的内核重写。第一次是Windows CE 3.0,为了增强系统的实时性,为了使系统更加模块化,Windows CE的内核经过了重新改写。那个时候估计我还在会计系做帐呢。所以没有赶上。这第二次内核重写,就是去年发布的Windows CE 6.0。Windows CE 6为了解决以前版本32/32的限制,把内核重新编写过。新的内核支持32K个进程(理论值,至于这个理论是如何得出来的呢?因为kernel有个handle table,一共65563项,而每个进程要在handle table里面占两项,所以65536/2就得出来了),还有更好的内存保护……更详细介绍请参看本人的其它文章。呵呵。
底层的OS升级肯定会导致上层一系列的连锁反映。今天要说的两个反映一个是其上层解决方案Windows Mobile,另外一个是第三方BSP该如何改动。
Windows Mobile无疑是Windows CE可以占领市场的最大推动力 …
more ...