WinEC7发布!

要相信你自己的眼睛,你没有看错,我也没有写反。不是WinCE7,就是WinEC7。

WinCE这个名字已经作古了,微软为了整合其嵌入式产品线,把WinCE集成到了Windows Embedded家族中,新的名字是Windows Embedded Compact 7,简称WinEC7。改了名字也挺好,至少可以明确的知道EC是什么意思了,以前的CE是什么意思,连微软都说不清楚。

不知道以后的媒体和出版物是否会真的把CE改为EC。WinEC这个名称是否是俺第一个叫的?至少目前搜谷歌和百度关键词WinEC,前几页都不是相关内容,又轻松拿了个“国内一流,国际领先”,yeah。

作为MVP,一直在MS的connect网站上下载code name叫Chelan的这个版本CE(或者应该说EC),由于NDA所限,也不知道什么可以blog,什么不可以blog,所以干脆闷声发大财,我什么都不说,这最好。

微软今天发布了WinEC7的CTP版本,大家都可以去下载,地址是:

http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx

新的feature什么的都介绍的比较到位 …

more ...

Direct 3D移植到Direct 3D Mobile

最近有个项目,要把原本用Direct 3D 8和Direct 3D 9写的程序移植到基于Windows CE的嵌入式设备上去。嵌入式设备上用的Direct X版本与桌面截然不同,名字叫做Direct 3D Mobile(简称D3DM),顾名思义,是从Windows Mobile上挪到Windows CE上的feature之一。其实在D3DM之前,偶记得在遥远的Windows CE .NET 4.2时期,微软曾经在CE上做过桌面dx的支持,那时候api名字什么完全一样,估计后来发现实在不是个好主意,才另起炉灶了。

微软声称Direct 3D Mobile是针对嵌入式设备完全重写过的。其接口与桌面任何一个版本的Direct 3D版本都不大。其实呢,怎么可能重新发明轮子,接口跟桌面Direct X还是有些神似的。基本而言,D3DM其实是介于Dx8和dx9之间的一个接口。总结了一下,具体两者差距如下:

Direct3D Mobile上有,而桌面D3D没有的特性:

  • Support for 16.16 fixed point data …
more ...

一些Android的学习资源

这个五一假期,注定与Android为伴。虽然儿子一直在身边骚扰,还得陪他到楼下玩。但绝大多数时间都在学习Android开发,并因此着迷。在自己的全部三台笔记本上(其实两台是斧头帮的固定资产)都装上了Android开发环境。for Windows的sdk和for mac的sdk都装好了。

最初本人对Android的理解就是Linux + java vm + java app,这个架构跟那个BlackBerry是一样一样的。没什么大不了的,可能就是打个GPhone的头衔,Google的手机,典型富二代来吸引人。随着这几天学习,发现Android的软件架构还真不是那么简单的。它颠覆了很多传统架构的条条框框,很让人对Android的架构着迷。例如把Web中Mesh-up的思路引入到应用开发中,打破了进程,任务之间严格的界限等等,毕竟才接触几天,认识还肤浅,就不详细说了。

天杀的GFW封了Android的开发者网站,每次打开http://developer.android.com都是空白,导致我这几天多次web proxy翻墙。今天,遇到了跟张殊凡小同学一样的经历:

有一天我正在上网查资料,突然弹出来一个网页,很黄很暴力,我赶紧把它加入收藏夹了。这个被加入收藏夹的网站叫做:http://androidappdocs.appspot …

more ...

Android开发学习笔记

买了Android手机,经过了一天的尝鲜期之后,开始学习Android编程开发了。毕竟以后学院的《移动设备开发》这门课将由我来上。没办法,三十岁的老程序员又开始学习编程了。

记录一些学习笔记,持续更新中。

================================================================

Part 1 基础部分

Android分层:Hardware -> Linux Kernel -> Dalvik VM -> Android Libraries -> App

Dalvik不是标准java实现,增加了自有的指令,基于寄存器的虚拟机,很多代码来自Apache Harmony (这个和谐啊)

  • 单个可执行文件:.class -> .dex的文件。
  • 打包后的文件:.jar -> .apk(其实就是zip,这导致android汉化没难度了,连PE文件格式解析器都不用了,直接unzip + notepad就行了)

Android Libraries都以android namespace开头,包括view, app, util, widget, webkit等。

Android支持多任务,系统同时可以运行6个任务,超过6个将会被杀死 …

more ...

Android手机HTC Legend入手

前几天手机被儿子给摔差不多要散架了。今天上午一时冲动,到老丁那里自摸3K RMB把HTC Legend请回家。作为一个微软公司及其Windows CE的坚定支持者,顶住了Apple请到美国参加WWDC加旧金山游玩的诱惑没有用iPhone,顶住了Blackberry到加拿大滑铁卢大学边上的总部参观的诱惑没有用黑莓,顶住了Symbian公司请到京城郊外某皇家度假村吃喝玩乐的诱惑没有用Symbian。这次在谷歌给学院捐赠13.6W RMB用来建立Android实验室的诱惑下,终于劈腿了。这也验证了一句话,叫做“没有拆不散的家庭,只有不努力的小三”。

玩了几个小时,发现Android还真的不是一般的烂啊,居然开始菜单里面的很多自带程序都不能用:

什么是youtube, 什么是picasa,什么是flicker,什么是twitter,什么是facebook,什么是wikipedia,这些图标的程序统统404 not found打不开。杯具啊。谷歌你做了些啥啊,天朝人民纷纷表示情绪不稳定。

Update: 发现了更大的悲剧,Android Market和Google账户同步原来也会间歇性打不开。据说要破解root帐号然后改hosts文件才可以用。谷歌你干嘛吃的,出场的时候不把hosts文件弄好。情绪再次不稳定。

Update Again:发现了悲剧中的悲剧,原来谷歌的Android SDK不对中国人民开放。中国人民一旦访问http://developer.android.com …

more ...

Intel IDF 2010会议侧记

2010年4月13日,我在北京参加了Intel IDF 2010会议,所谓IDF是Intel Developer Forum的简称。但是中文却不知道为什么被翻译成了Intel信息技术峰会。可能在国内一说“开发者”就掉价了,政府领导跟单位领导们都不来了。

大会在国家会议中心举行,这个地方还是比较牛x的,紧邻鸟巢、水立方,在会场一抬头就可以看到边上的鸟巢。早上9点钟会议正式开始,结果上来估计是为了烘托“和谐社会花似锦,科学发展势如涛”的氛围,请了杂技团表演了15分钟的杂技。这在本人参加的各种技术峰会中可谓闻所未闻,见所未见。充分体现了我泱泱大国,和谐盛世,一派歌舞升平的社会风貌。接下来,在一片背景音乐及聚光灯下,终于boss登场。结果,这,这,这不是mop上的“70后高端白领”么?mopper肯定都不陌生,连我这个不怎么上mop的人都知道了。怎么把他给请来了,难道为了体现Intel作为IT企业与时俱进的作风,要来个娱乐至死。找过气70后白领来撑腰,还不如找凤姐春哥阿。

原来这位所谓70后高端白领是Intel的中国总裁,上来抛砖引玉来了。唉,在mop上火了一把,不知道这人平常上班的时候,手下是怎么看的 …

more ...

另起炉灶的Windows Phone 7

  • 微软
  • 软件

作为MVP,在MIX会议还没有召开之前,就第一时间知道了微软MIX会议的内容。以及Windows Phone 7系列的最新消息。虽然之前在iPhone, Android等后起之秀的群起而攻之下,谣言四起,当事实真的来临时,不免还是唏嘘不已。

软件新版本发布中,“推倒重来,另起炉灶”和“缝缝补补又三年”是两种最常见的模式。对微软这种大公司,软件版本动辄就可以做到10以上,推倒重来的案例还真的不是很多。Windows NT这么多年了,还依然在不断发布;Office也是与以前的版本一脉相承;Visual Studio等也是一样。这次的Windows Phone 7是个例外。

从Stinger起,我就一直关注微软在手机领域的作为,并且从那时起就认定这必定是未来发展的方向,将近10年过去了。这十年中见证了无数的足迹,Pocket PC, Pocket PC phone edition, smartphone, Windows Mobile, Windows Mobile Classic/Standard/Professional …

more ...

Windows CE,你妈吗喊你在多核上玩玩

  • 嵌入式
  • 软件

众所周知,CE的内核是完全重新写的,与9x根nt没有任何关系,这给CE带来了较好的实时性及灵活性。从诞生之日起,CE的内核改过两次,第一次是3.0,极大的增强了实时性,第二次是6.0,去除了内存/应用32 / 32的限制。如此看来,貌似已经比较完美了。从6.0发布以来,我一直乐观的觉得6.0的内核应该可以至少再顶三个版本了,下次更新内核大概要到CE 9.0了(猴年马月….)。但是计划不如变化快,信息产业瞬息万变,很多预言都会被证明是很可笑的。我的这个“预言”也不例外(对在08年TechEd上听我演讲的听众说声抱歉,当时我还极力鼓吹多余的Kernel feature都是没必要的)。短短几年时间,如果现在你再问我新版本的CE要不要改内核。我会一口咬定,改,最好马上改。

个人观点,欠改的地方有两个,内存映射和SMP支持。

首先说内存映射。CE从诞生之日起就在Kernel的3GB起始处映射了2个512MB的虚拟地址。一个是有cache的,一个是没cache的。这使得CE最大的物理内存就只有512MB,512已经是理论极限了,再多了就不认了 …

more ...

【转贴】WINCE下调试驱动的一般方法

本人一般是不转贴的,(除了万院长的那篇经典中的经典)。今天无意中看到一篇文章,不禁回忆起自己当年在CE下摸索写驱动的时光。对于初接触嵌入式开发的人来说,一些基本方法和思路的确是需要“洗脑”的。

这篇文章不难看出是作者的经验总结,虽然有些内容不完全赞同,但是还是保持原汁原味吧。对处于探索阶段的同学肯定会有帮助。

原文地址:http://blog.csdn.net/xqhrs232/archive/2009/11/27/4888577.aspx


1。向串口打印消息———-//只能打印一般的消息,实时性要求高的地方建议不要去打印消息,因为串口打印很慢,即使要打印也尽量少打印或者有选择地打印–比如100次才打印一次

//串口打印也可以大致分析各个线程间有没存在对同一个资源访问的互锁什么的

2。写LOGO文件——-写文件应该比串口打印来的快,写LOGO也适合于分析数据量很大的场合

3。灵活使用static 变量—–//static变量有记忆的功能,可以用这一点来诊断程序的可靠性—特别是中断接收什么的—-记忆个几十K数据再写到LOGO文件是不错的调试方法

4。写驱动的时候往往要求正确延时什么的—–//所以正确地实现US/MS的延时很重要

//WINCE 微秒级延时函数

void …

more ...

.net Micro Framework拥抱开源

  • 嵌入式
  • 程序员

首先引新浪:

————————————–

11月16日消息,据国外媒体报道,微软今日在洛杉矶微软专业开发者大会(PDC)上发布了.NET Micro Framework 4.0版本,这款产品是开源的,基于Apache 2.0许可发布,并将广泛使用到嵌入式领域。

  在.NET Micro Framework的环境下,开发和执行环境资源限制的设备,最初是由微软内部的业务加速器启动,但最近移到开发部,以便更密切地与微软的发展努力的方向一致。

  这样可使.NET Micro Framework成为一个无缝的体验,使开发人员为一个单一的解决方案的广度编程模型和工具链,从小型智能设备,服务器和云。

  其中包括几乎所有的产品的源代码,包括.NET Micro Framework和CLR代码本身,开发人员都可以访问基类库那些实施了。

  不过嵌入式领域的程序员们无需高兴的太早,完整的代码并没有提供,例如关键的来自第三方EBSNet的TCP/IP协议栈以及密码系统库都无法被释放。至于Cyptography库,目前并不包括在源代码内,微软表示,因为它们的使用超出了.NET Micro Framework的范围 …

more ...