1.问:我的activesync能连接上wince,在移动设备中有显示wince的内容,也能复制文件到wince,但是evc不能与wince通信. 感觉很奇怪,不知道是什么原因引起的,大家指点一下了.搞了一天都没有找到什么原因.。
答:由于没有看到你的实际运行环境,所以只能按照以下步骤来排查:
通常我们在evc下调试wince或应用程序有以下三种连接方式:
(1): kitl + cesh server
(2) activesync + activesync
使用这种方式调试的时候,首先需要注意保证开发机和目标机上的activesync版本是一致的。其次确认你的wince系统支持activesync组件。这项功能是在构建wince的时候添加的。连接的绝提设置方法是:在tools下打开configure platform manager,选择你对应的sdk,然后点击properties选项,打开device properties对话框,transport:选择tcp/ip transports for windows ce,
startup选择microsoft activesync,先test一下,如果正常会提示ok。另外注意tcp/ip...的configure中的hostip要选择configure automatically over serial。
(3)tcp/ip + manual server
其中最理想的是最后一种。脱离开发环境,速度快,并且不占用任意端口功能。需要注意的是调试前最好安装工程需要的sdk。
另外,不知道你是不是自己修改了wince下相关的驱动?这也可能导致不能正常的连接到wince。
2.问:公司找的外包软件公司需要direct3d功能,对此不了解,所以有几个问题:
(1)外包公司一直提到direct3d.dll,而wince5.0中有d3dm.dll,两者之间的关系是类似于mdd与pdd之间的关系还是同等关系?
(2)看他们软件介绍是需要pocket pc\windows mobile 5,那么wince5.0上能够实现吗?
(3)wince5.0中的direct3d mobile组件是要添加的吧?direct3d mobile reference driver组件是参考驱动吗?我在定制的工程中加了这两个组件,并没有产生direct3d.dll,只有d3dm.dll
(4)除此之外是否我的bsp中display的驱动还要支持direct3d.dll?
答:wince5.0能够支持direct6.0的所有功能,而目前最新的wince6.0 r2版本能够支持direct6.0的所有功能和direct9.0的部分功能(即二维图像部分)。在2009年即将发布的r3版本中将会集成最新的arclmy,就是类似于silverlight的效果,开发过程也大大的简化。
pocket pc\windows mobile 5是基于wince的定制版本,如果需要在wince中添加direct3d的功能,是需要把direct3d相关的组件添加到你的wince中去的。如果你的硬件平台能够支持direct3d加速,那么最好把direct3d的支持添加到你的bsp中。
3.问:我需要给服务请求的密码进行md5加密,该怎么办呢,好像sdk没有提供类似的加密函数吧。
答:sdk中可能确实不会提供md5加密的函数,不过你可以在网上找一份pc的代码,移植到evc下就可以了。也可以将移植好的md5加密的函数整合到你的sdk中,根据需要而定。
4.问:wince上的电子书程序如何写?请给一些思路或链接?
答:可以采用一些现成的第三方控件来完成电子书的主体显示,这样可以不用关心文档格式。也可以自己来编写代码,基本和pc机上一样,建立自己的程序,计算文字的宽高,在view中绘制,需要注意的就是翻页的计算和页面的刷新。
在网上搜一下可以找到很多这样的源码以供学习,例如:
http://www.pudn.com/downloads29/sourcecode/comm/windows_mobile/detail92513.html
5.问:wince5.0的bsp(不是由4.2升级成5.0),240*320的屏,请问要把分辨率改为480*640的话,需要修改哪些文件,哪些参数呢?
答:修改下s3c2440a_lcd.h、initdisplay()函数和s3c2440disp.cpp, 就可以实现轻松实现各种尺寸屏的切换。主要就是修改init.c文件中的initdisplay()函数:但是需要根据你的lcd芯片手册来配置相应的参数。
6.问:s3c6410+wince6.0的系统大家有没遇到这样的情况----系统跑起来后几分钟/十几分钟后挂掉(死了),串口也没有什么报错消息输出!
答:首先可以在每个可能出问题的驱动中输出调式信息,检查原因。另外就是重新编译每个debug版本的驱动看看。有没有错误信息输出。
在网上看到以前有过这种情况,是有中断不停的产生就会造成这种情况。如果是系统崩溃,异常一般会输出信息的。 现在没有错误信息,极有可能是这种情况。
建议采取排除法,逐一把驱动卸载,看是哪个驱动出了问题。
问:现在项目中需要获得真机的手机型号,可是找遍了api都没找到能获得手机型号的api。上网搜索也没得到相关的解决办法。但感觉这个功能该是有api支持的。
答:如果是山寨机可能会不行,如果ome厂商没有按约束规定写,你也不能获取到. 如果hkey_local_machine\security\internet explorer\user agent\custombase和手机中。设置—系统—设备信息-“特性识别”是一致的,你通过过注册表就可以读出来。
问:条件有限,只能在一台机子上装ce5和ce6的开发环境。并且由于种种原因,已经装好了ce6,此时再装ce5会不会有什么问题? 如果真的会有问题的话,怎么做可以避免掉这些问题呢?
答:ce5 和 ce6 有很大区别建议不要装在一起,可以用虚拟机来安装两个不同的版本。如果一定要装在同一台机器上的话,也是可以的。ce5开发工具使用的是platform builder,而ce6则是整合在visual studio 2005开发环境下的,注意,2008不行。安装的顺序:
1.安装ce5,platform builder 5.0
2.安装visual studio 2005
3.安装visual studio 2005 service pack 1
4.安装ce6,platform builder 6.0
5.安装ce6的sp1,platform builder 6.0 service pack 1
6.vs2005 update for vista
安装完成后可能会出现ce6和ce5在platform builder的connectivity options上的冲突问题,大家可以参考我博客中的文章来解决这个问题:http://lzg-ad.blog.sohu.com/118092446.html
问:我的用户态驱动和内核态isr要对i/o设备协同操作才能完成, 但我的io设备是这样工作的:
io设备只有一个地址,内部有16个寄存器,
要对设备中的寄存器读写时, 要先往io 端口中写寄存器号,再在这个端口读写,(有点像对coms的操作)
这就要保证一个读写操作要两次io,并且一定要成对出现,就是这两个操作要是原子的,不可拆分;
如果ist正刚往端口中写了寄存器号,还没来得及写数据,这时中断来了,isr也要操作设备,那不是乱了,
这种问题怎么解决呢?有没有什么信号量、互斥量什么的可以用?
答:看看isr 和 ist的协助方式,就知道如何解决这种问题,在网上也有人已经回答了这个问题:
1. ist 在操作时, 通常还没 call interruptdone(dwsysintr);, 故 isr 不会产生中断, 就没有这个问题了.
2. isr 先把 index register 读出後保存後再修改, 离开前再改回原值.
3. 将 ist 要读的值全部放在 isr 内读完, 再用 share memory 的方式, 送给 ist.
工程师生活:打造一款自己的示波器时钟
简约但是不简单-用于光纤预制棒制备的套管法
台湾精锐APEX精密行星减速机与普通减速机有什么区别
小米自爆小米MIX2消息,全面屏+骁龙835?
KiCad在原理图这部分如何使用?
Windows嵌入式疑难问题解答
负载使电动机过热的原因有哪些
水环保网关在湿地保护有什么作用?
库克:先推红色iPhone7/7lus,再换壳各种颜色,反正国人有钱
医疗智能语音识别系统的研发与应用
怎么给单片机加密? 单片机加密有哪些方法?
AMD官方消息:预计下半年会上市RX 6800和RX 6800XT显卡
新年新精彩!给这些优秀LED显示工程无限点赞
“谷歌助手”把人工智能带给大众
AMB300系列母线槽红外测温解决方案
畅想机器人的未来,我们与它们又会如何?
一款型号为TA-1335的诺基亚新机正式入网
电动汽车为什么不用变速箱来进行转速控制
诺基亚8最新消息:诺基亚8嘲讽三星S8:优化3D音频体验 3800mAh大电池
博客平台WordPress宣布支持WebVR 月活用户超4亿