Windows Embedded征文比赛

马宁的嵌入式开发研究

Windows Mobile, Windows Embedded
posts - 46, comments - 228, trackbacks - 11, articles - 0

2008年5月30日

 IE的安全限制
       好了,让我们回过头来说Silverlight TV的那个安全限制吧,还是要强调一下,并不是所有的Silverlight都会遇到这个问题,只是Silverlight TV调用了ActiveX组件,才会遇到这个问题。

       这个安全提示在我们平时使用IE时也经常会遇到,点一下也就没事了,毕竟为了安全着想嘛。不过如果将这个Silverlight组件作为Shell,每次启动之后,都是一个黑屏,需要人工点一下之后才能正常运行,用户体验似乎不够友好。

       于是,我们就需要更改一些IE的高级安全设置来解决这个问题了。如果熟悉IE的朋友,可能很快就知道问题出在哪里了,不过我是在同事的帮助下花了两天才找到问题根源的。问题的原因在于:


       对的,就是在IE的Internet Options对话框里,安全选项(Security)中“Allow active content to run in files on My computer”的选项默认是不选的。选上这个设置之后,运行Silverlight TV时就不会有安全提示出现了。

       IE的问题解决了,可是到了Windows Embedded Standard里又有问题了。IE的Advanced设置在WES IE组件的设置里是没有的。所以,我们只能通过修改注册表这一条路了。

       总之,经过了千难万险,我们知道了“Allow active content to run in files on My computer”对应:

       HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN

       中的“iexplore.exe”项,而且非常特别的是,该项为0,表示选中该选项;为1时,则表示未选中该项。大家开发时一定注意。

       总之,我们了解了这个设置对应的注册表项后,接下来就是在组件中添加相应的注册表项就可以了。这个工作在前边已经做过了。

posted @ 2008-08-11 11:08 马宁 阅读(1008) | 评论 (1)编辑

导入组件数据库
       将组建导入组件数据库的工作相对简单,只需要打开Component Database Manager,然后在Database属性页中,点击Import按钮。在弹出的Import SLD对话框中,首先选择SDL file,也就是我们刚才通过Component Designer编辑好的组件,然后点击Import按钮就可以了。

 

       因为导入的文件有些多,所以可能会延时几秒钟,等看到文件被成功导入的提示后,就可以关闭Component Database Manager,打开Target Designer来设计我们的操作系统了。

        创建Silverlight播放器

       在已经创建过一个Target Image之后,我们创建一个以Silverlight为Shell的Image看起来也不是那么复杂。还是让我们回到Target Designer中吧。首先创建一个新的Configuration。

       然后添加下面的这些组件:

       1, Software àTest & Deployment à Virtual PC 2004 Helper Macro

       2, SoftwareàSystemàSecurityàInfrastructureàWindows Logon (Standard)

       3, Software à System àUser Interface àShells à MyShell(这个就是你创建的Shell组件)

       4, Software à Test & Deployment à Runtime Quick Start Helper Macro


       我们打开Runtime Quick Start Helper Macro节点,选中Setting,然后在右边的属性窗口中,不选中Explorer shell。如果不去掉Explorer shell,它将在依赖检查时与我们创建的MyShell发生冲突。

       好了,在完成这一步后,按F5进行依赖检查。在依赖检查完成后,我们还需要设置一下显示器的分辨率,在中间区域被添加的组件中找到“S3 Trio64V+”显卡驱动组件,选中其Setting。在右边的设置窗口中,将Screen resolution选择为“1024 by 768 pixels”。


       好了,完成这一步之后,我们可以放心大胆地F7,编译Windows Embedded Standard的Image,然后将其部署到另外的VPC中去。

       在经历了FBA之后,我们会看到系统启动后,直接进入了Silverlight的显示界面:

       COOL吧?至少我觉得挺酷的。

posted @ 2008-08-11 10:40 马宁 阅读(905) | 评论 (0)编辑

添加文件、依赖组件、注册表


       接下来我们就要进入创建组件最重要的一环了,添加文件。为什么说重要,因为这里有一个大坑,我在Windows Embedded Standard产品组施卫娟老师的指导下,花了两周的时间才勉强爬出来,可见该坑之深。

       在这里我们使用了一个现成的Demo,SilverlightTV作为我们的目标文件。SilverlightTV中包含很多文件和文件夹。我们要做的第一件事,就是将所有文件拷贝到一个文件夹中。这一点非常重要,因为考虑到效率问题,Windows Embedded Standard组件中的文件只能包括在同一个文件夹中。

       主要提示:如果将包含子目录的文件夹添加到组件中,组件设计器不会报错,而要等到这个组件加入到Target Designer时,才会报文件找不到的错误,并且在构建好的Image文件中,只会包括文件夹,而不会包括其中的文件。

       不过,新的问题就来了,如果我的文件结构是固定的,并且有相互的依赖关系,把所有文件都放到一个文件夹后,程序无法正常运行该怎么办呢?我们自然有办法,不过现在,还是赶紧将所有文件放在一个文件夹中吧,这个文件夹就是添加Repositories时指定的Source Path文件夹。不过千万记清文件原来所在的文件夹,否则下一步就麻烦了。


       做完这步之后,回到Component Designer中,在Files节点单击右键,在菜单中选择Add – Files in Folder,在稍后弹出的对话框中,选择我们放置源文件的文件夹。经过下面的处理过程之后,文件夹中所有的文件都被加入到组件中了


       不过问题是,所有的文件还被放置在同一个目录中,无法正常执行。这时,我们要通过一个比较繁琐的过程来解决这个问题——修改文件的目的文件夹。在右侧的文件列表中,选中某一个文件,双击,打开文件编辑对话框:


       我们打开的是一个wmv文件,我们只需要修改Destination中的目录结构,%24%是一个转义字符,表示C盘,我们不要去动它。根据我们文件的原始位置填写目的文件的所在目录就可以了。这个工作要花费一段时间,需要点耐心。

       接下来,我们要添加组件的Group Memberships,表示组件在组件目录树中所处的位置。我们在“Group Memberships”节点上右键选择“Add Group Membership”命令。在弹出的对话框中,选择SoftwareàSystemàUser InterfaceàShells,然后选择Shell即可。点击OK,关闭对话框。

       接下来为组件添加依赖关系。依赖关系表明该组件依赖于那些组件,当我们添加了该组件到Target Image中时,在依赖检查时,会将其所依赖的组件也添加到Image中。


       我们选择“Component or Group Dependency”,右键菜单中“Add”-“Component Dependency”,会弹出添加组件依赖对话框。

       我们在“Component dependency source”选择Database,即选择组件数据库中的组件。然后找到SoftwareàSystemàNetworking & Communicationsà ApplicationsàInternet Explorer – Hotfix Q321232,并且确认My Component下选择的是“Depends on the selected component”,然后点击Apply按钮,添加依赖关系。

       这时对话框不会关闭,所以我们还需要添加第二个依赖组件,就是大名鼎鼎的


       好了,到这里,我们的组件就基本完成了,哦,还忘了件事,添加注册表。不过请大家注意的是,并不是每个Silverlight组件都需要添加注册表项,是因为SilverlightTV这个组件中调用了ActiveX,IE中会有安全限制,所以我们才通过修改注册表的方式来规避这个问题。关于IE安全限制的问题,我们后边会专门说明,在这里大家只要了解如何为组件添加注册表项就可以了。


       在Component Designer中选择Registry Data,右键菜单中选择添加注册表项。我们可以点击Key name后边的Browse按钮,在注册表中定位要添加的项。我们要添加的项为:

       HKEY_CURRENT_USER\Software\Microsoft\Internet        Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN

       中的“iexplore.exe”项,值为DWORD,设置为0。

       大家一看就知道这个选项是与IE有关的,至于什么关系,我们先卖个关子,稍后再说。先点击OK,关闭注册表编辑对话框。

       好了,到这里我们支持Silverlight的Shell组件终于编辑完成了。好的,赶紧保存一下吧。不过,我们怎么在Target Designer里使用这个组件呢?

       这就要看下一节的了……

posted @ 2008-08-01 11:20 马宁 阅读(1104) | 评论 (1)编辑

 

岗位描述:

负责产品的设计、开发和优化;

 

任职要求:

1.       计算机相关专业大学本科以上学历,具有扎实的计算机基础理论知识

2.       具备强烈的进取心、求知欲及团队合作精神,有较强的沟通及协调能力

3.       熟悉MVC体系结构,对架构的设计有一定了解

4.       精通PHP语言,熟练掌握PerlC/C++Java.NET开发

5.       熟悉CGI标准和HTTP等互联网协议

6.       熟悉Unix/Linux操作系统和开发环境,能够熟练配置Apache服务器

7.       三年以上业界工作经验,有完整PHP项目开发经验,具有大型互联网应用开发经验者优先

8.       熟悉HTMLDHTMLJavaScript脚本语言

9.       熟练掌握C/C++/Perl/Java/C#语言者优先

10.   熟悉SQL语言,对mysql/MS SQL/Oracle其中一种数据库管理系统熟练掌握,对mysql数据库精通者优先

 

公司介绍:

为加快发展和研发新型的互联网应用,赶集网(www.ganji.com),作为中国第一大分类信息互联网服务提供商和google战略合作伙伴,我们资金实力雄厚,发展空间广泛。我们正在招贤纳士,诚邀优秀的人才加盟。在这里,你能找到你的定位,你能发挥你的才能,你更能够获得与你价值对等的收益!

 

 简历发至:luojian(at)staff.ganji.com

友情提示:简历请详细写项目经验,你在项目中扮演什么角色,完成哪部分,能用数字佐证你的贡献和实力就最好了。

posted @ 2008-07-16 16:47 马宁 阅读(339) | 评论 (0)编辑

     摘要: 为了促进Windows Embedded技术的发展,鼓励原创作者更多分享自己的宝贵经验。微软(中国)平台及开发合作部和嵌入式产品市场部与博客园、天极网、IT168、winbile和嵌入式在线共同举办了本次Windows Embedded征文比赛。比赛方式1, 比赛内容:分为技术文章和非技术文章两大类。技术文章涉及的范围:Windows Embedded CE、Windows Embedded St... 阅读全文

posted @ 2008-07-14 14:09 马宁 阅读(91) | 评论 (1)编辑

     摘要: 开始创建Silverlight的组件Silverlight在嵌入式领域发挥的作用绝对不仅仅只有增加Web的用户体验而已。很多嵌入式设备需要丰富多彩的用户交互界面,比如ATM、自动售货机、自助查询终端、***(喔)……Windows Embedded Standard的主要应用领域恰好在这几个方面,所以Silverlight对于来说Windows Embedded Stand... 阅读全文

posted @ 2008-07-04 11:23 马宁 阅读(1189) | 评论 (2)编辑

     摘要: 支持Silverlight的Windows Embedded Standard好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了。在开始菜单中找到“Microsoft Windows Embedded Studio”,启动其中的Target Designer。然后再Target Designer的File菜单中选择Ne... 阅读全文

posted @ 2008-07-03 12:13 马宁 阅读(1090) | 评论 (1)编辑

     摘要: Windows Embedded Standard,微软又创造了一个新名词。与此同时,XP Embedded,成为了一个历史名词。微软在年初推出了新的Windows Embedded产品线命名规则:Windows CE改名为Windows Embedded Compact,而XP Embedded改名为Windows Embedded Standard,WEPOS改名为Windows Embedd... 阅读全文

posted @ 2008-06-25 15:16 马宁 阅读(1525) | 评论 (11)编辑

     摘要: 上篇文章:http://www.cnblogs.com/aawolf/archive/2008/06/23/1228203.html下载Image下载Image的过程与Digi开发板类似,在Image编译成功后,我们打开Platform Builder的Target菜单,选择Connectivity Options。我们可以使用CE Device作为下载的Target Device,为了之后的部署... 阅读全文

posted @ 2008-06-24 11:09 马宁 阅读(1217) | 评论 (4)编辑

 

设置Boot-loader

上篇文章:

http://www.cnblogs.com/aawolf/archive/2008/06/05/1214281.html

 

编译成功后,我们就要将NK.bin文件下载到开发板上了。下载镜像文件需要boot-loaderEBoot的支持,与Digi开发板相同,革新开发板也将boot-loaderEboot烧写到了NAND Flash中,我们只需要通过超级终端来完成boot-loader的设置和Eboot的启动即可。

首先,需要将我们的开发板和PC机通过串口线连接起来,确定你连接的是哪个串口。然后打开超级终端(Vista下是没有超级终端的,我们的解决方法是从XP底下拷一个过来),创建新的连接,选择COM口,然后设置波特率为:115200,剩下的按下图设置即可:

设置完成后,我们就可以打开开发板的电源,超级终端上应该有相应的输出,如下图:

如果我们不理它,开发板会启动NAND Flash上的操作系统,这个是由SW1开关来决定的。为了进入boot-loader的菜单,我们要在5秒内按空格键,会进入菜单的选择列表中。

如果没有设置IP地址,我们要设置IP地址、子网掩码和MAC地址,这些在革新开发板附带的文档中都有详细说明,我们在这里略提即可。这些内容是和革新开发板具体相关的,每个板子都有自己的控制方式,所以要区别对待不同的开发板。

设置完成后,我们直接按D键,进入Eboot的下载状态即可。Eboot会向网段内广播BOOTME的消息,供Platform Builder来接收。

下面我们回到Platform Builder中……

posted @ 2008-06-23 14:59 马宁 阅读(1199) | 评论 (1)编辑

 

添加Catalog Item

上篇文章:

http://www.cnblogs.com/aawolf/archive/2008/06/03/1212696.html

 

在完成向导之后,我们不再演示Bib,DatReg文件编辑器的使用,而是直接进入添加Catalog Item的编辑。需要指出的是,我第一次做的时候是直接编译了OS Design,结果产生了错误,如下:

这个错误告诉我们BSP中缺少ohci2.dll的组件。经过确认这是革新BSP中的一个小BUG,后续版本的BSP中应该已经修改了这个BUG。但是,我们的BSP仍旧有这个问题,我们听从了革新的解决办法,添加USB鼠标的驱动:

                          

我首先添加的还是游戏,在Core OS – CEBASE – Games下,添加FreecellSolitaire两个游戏。然后我们要添加USB Mouse的驱动。说实话,我也不知道驱动的具体位置,在Catalog Items View顶端的搜索框中,写入Mouse,然后会找到USB HID Mouse的驱动,我们可以选择添加USB键盘和USB鼠标的驱动,也可以直接添加USB鼠标的驱动。如上图。

OK,做完这一步后,我们可以重新编译OS Design。在十几分钟后(这个依赖于你机器的性能),我们就可以正常编译成功了。

 

下篇文章:

http://www.cnblogs.com/aawolf/archive/2008/06/23/1228203.html


posted @ 2008-06-05 13:14 马宁 阅读(1714) | 评论 (1)编辑

  上篇文章:
  http://www.cnblogs.com/aawolf/archive/2008/05/30/1210738.html


创建平台

Windows CE 6.0 R2的开发平台基于Visual Studio 2005。打开Visual Studio 2005后,创建新工程,在Platform Builder选项中选择创建新的OS Design,启动平台定制的向导。我们忽略向导的欢迎界面,第二个界面为选择BSP的界面:

之前安装了DigiBSP,在我们部署了革新2410DBSP之后,我们发现在列表中多了一项“GX2410D:ARMV4I”的选项,这就是革新2410D开发板的BSP选项。我们选择这项后,继续Next

接下来选择设计模板,革新的开发人员建议我们使用“PDA Device”,本着“听人劝吃饱饭”的原则,我们选择这项,因为是对开发板的测试,其他模板可以今后测试。Next

然后选择Mobile Handheld模板,这一项是移动手持设备,相对而言显示屏比较小,比较适合便携,说白了就是PDA。而Enterprise Web Pad是类似Tablet PC的东东。Next

接下来选择应用程序,我们添加了Windows MessengerWindows Media Audio/MP3。之后可以添加音频文件,然后就可以播放了。考虑到编译时间问题,我们去掉了.NET CF 2.0的选项。Next

在网络连接的配置中,我们去掉BluetoothIrDA,添加上图的时候才发现,802.11的选项没有去掉,其实也应该去掉的。其余保持原设置即可。Next

OK,终于走完了向导,看起来比当初Digi的向导要简单好多。下面我们进入IDE开发环境。噢,记得,最后还有一个安全警告:


 

下篇文章:

http://www.cnblogs.com/aawolf/archive/2008/06/05/1214281.html

posted @ 2008-06-03 11:08 马宁 阅读(1614) | 评论 (2)编辑

     摘要: 经历了九个月的时间,“Windows Embedded从入门到精通”系列课程终于到了收官阶段。尽管很俗套,还是要感谢参与了这个系列课程的所有讲师,没有他们认真而执着的工作,就不会有如此高质量的课程系列。在做这个系列课程之前,我们对于Windows Embedded的讲师资源几乎一无所知,于是我们从MVP开始,然后到微软内部的技术专家,再到大学老师、公司内的技术专家,慢慢的开... 阅读全文

posted @ 2008-06-02 11:15 马宁 阅读(2095) | 评论 (2)编辑

在国际儿童节,接到了Windows Embedded Standard产品组施老师的邮件。当然,她不是祝我节日快乐(失败啊,今年连5.4都是最后一年了,还敢到6.1添乱?),而是告诉我Windows Embedded StandardCTP(社区预览版)发布了。

Windows Embedded Standard,原名Windows XP Embedded,籍贯:华盛顿州雷德蒙市……需要说明的是,这次Windows Embedded Standard只是CTP版本的发布,大家先拿来玩玩就好了,正式RTM可能还有一段时间,尝尝鲜就好。这次Windows Embedded Standard中包括了SilverlightIE 7Windows Media Player 11Remote Desktop Protocol 6.1.NET Framework 3.0Wi-Fi Protected Access 2等组件。实在是软件开发、居家旅行、杀人越货之必备良药……

只需要在下列地址中,使用Live ID做一个简单的注册,下载项目中选择Windows Embedded StandardISO文件即可。下载地址:

https://connect.microsoft.com/windowsembedded

另外,在美国时间的63日,还有一个Windows Embedded Standard的在线发布会,大家有兴趣也可以去听一下:

Windows Embedded Standard Launch Event

Windows Embedded产品组的BLOG是:

http://blogs.msdn.com/embedded/default.aspx

 

稍后有更多关于Windows Embedded Standard的最新消息,我将为您做后续报道。

posted @ 2008-06-02 10:44 马宁 阅读(277) | 评论 (0)编辑

上一篇文章:
http://www.cnblogs.com/aawolf/archive/2008/05/29/1209854.html

导入BSP

革新2410D开发板附带了电源、串口线、直连网线、方口USB线,以及烧写Boot-loader所用的JTGA和并口线。为了能够正常使用,我们需要首先将开发环境配置好,Windows CE 6.0开发环境的具体配置,请参考《Windows Embedded CE 6.0开发初体验》

http://www.cnblogs.com/aawolf/archive/2007/12/01/979449.html

我们需要将串口线连接到URAT1接口(COM1接口),在革新2419D开发板上,COM1是用来输出Windows CE调试信息的;然后将SW1开关切换到左边(靠近LCD屏排线的一侧),因为Windows CE要使用SMC卡作为存储介质。设置完成后,连接LCD屏、电源线、串口线和网线后,我们的开发环境就基本就绪了。

在开发板的附带CD中包括了革新2410D开发板的BSP,为革新2410D定制系统前,必须先将BSP导入到Windows CE 6.0 R2的开发环境中。有些厂家制作的安装包来部署BSP,而革新的部署相对简单。

在附带光盘的BSP目录下,找到2410D.rar文件,解压。Windows CE 6.0 R2 BSP文件都被保存到C:\WINCE600\PLATFORM下,所以,我们将解压之后的BSP目录拷贝到C:\WINCE600\PLATFORM下即可。

这样,BSP的导入就完成了,我们就可以进入Platform Builder,来开发一个Windows CE的平台了。

 

下篇文章:

http://www.cnblogs.com/aawolf/archive/2008/06/03/1212696.html

posted @ 2008-05-30 15:08 马宁 阅读(1416) | 评论 (3)编辑

Windows Embedded征文比赛