<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Windows嵌入式疑難問(wèn)題解答

          Windows嵌入式疑難問(wèn)題解答

          作者: 時(shí)間:2011-05-28 來(lái)源:網(wǎng)絡(luò) 收藏

          1.問(wèn):我的Activesync能連接上WINCE,在移動(dòng)設(shè)備中有顯示W(wǎng)INCE的內(nèi)容,也能復(fù)制文件到WINCE,但是EVC不能與WINCE通信. 感覺(jué)很奇怪,不知道是什么原因引起的,大家指點(diǎn)一下了.搞了一天都沒(méi)有找到什么原因.。
          答:由于沒(méi)有看到你的實(shí)際運(yùn)行環(huán)境,所以只能按照以下步驟來(lái)排查:
          通常我們?cè)贓VC下調(diào)試WinCE或應(yīng)用程序有以下三種連接方式:
          (1): KITL + CESH SERVER
          (2) ActiveSync + ActiveSync
          使用這種方式調(diào)試的時(shí)候,首先需要注意保證開發(fā)機(jī)和目標(biāo)機(jī)上的ActiveSync版本是一致的。其次確認(rèn)你的WinCE系統(tǒng)支持Activesync組件。這項(xiàng)功能是在構(gòu)建WinCE的時(shí)候添加的。連接的絕提設(shè)置方法是:在Tools下打開Configure platform Manager,選擇你對(duì)應(yīng)的SDK,然后點(diǎn)擊Properties選項(xiàng),打開Device Properties對(duì)話框,Transport:選擇TCP/IP Transports for windows Ce,
          startUp選擇Microsoft ActiveSync,先Test一下,如果正常會(huì)提示OK。另外注意TCP/IP...的configure中的HostIp要選擇Configure automatically over serial。
          (3)TCP/IP + MANUAL SERVER
          其中最理想的是最后一種。脫離開發(fā)環(huán)境,速度快,并且不占用任意端口功能。需要注意的是調(diào)試前最好安裝工程需要的SDK。
          另外,不知道你是不是自己修改了WinCE下相關(guān)的驅(qū)動(dòng)?這也可能導(dǎo)致不能正常的連接到WinCE。

          本文引用地址:http://www.ex-cimer.com/article/150691.htm

          2.問(wèn):公司找的外包軟件公司需要direct3d功能,對(duì)此不了解,所以有幾個(gè)問(wèn)題:
          (1)外包公司一直提到direct3d.dll,而WINCE5.0中有d3dm.dll,兩者之間的關(guān)系是類似于MDD與PDD之間的關(guān)系還是同等關(guān)系?
          (2)看他們軟件介紹是需要Pocket PC Mobile 5,那么WINCE5.0上能夠?qū)崿F(xiàn)嗎?
          (3)WINCE5.0中的Direct3D Mobile組件是要添加的吧?Direct3d Mobile Reference Driver組件是參考驅(qū)動(dòng)嗎?我在定制的工程中加了這兩個(gè)組件,并沒(méi)有產(chǎn)生direct3d.dll,只有d3dm.dll
          (4)除此之外是否我的BSP中display的驅(qū)動(dòng)還要支持direct3d.dll?
          答:WinCE5.0能夠支持direct6.0的所有功能,而目前最新的WinCE6.0 R2版本能夠支持direct6.0的所有功能和direct9.0的部分功能(即二維圖像部分)。在2009年即將發(fā)布的R3版本中將會(huì)集成最新的Arclmy,就是類似于Silverlight的效果,開發(fā)過(guò)程也大大的簡(jiǎn)化。
          Pocket PC Mobile 5是基于WinCE的定制版本,如果需要在WinCE中添加Direct3D的功能,是需要把Direct3D相關(guān)的組件添加到你的WinCE中去的。如果你的硬件平臺(tái)能夠支持direct3d加速,那么最好把direct3d的支持添加到你的BSP中。

          3.問(wèn):我需要給服務(wù)請(qǐng)求的密碼進(jìn)行MD5加密,該怎么辦呢,好像SDK沒(méi)有提供類似的加密函數(shù)吧。
          答:SDK中可能確實(shí)不會(huì)提供MD5加密的函數(shù),不過(guò)你可以在網(wǎng)上找一份PC的代碼,移植到EVC下就可以了。也可以將移植好的MD5加密的函數(shù)整合到你的SDK中,根據(jù)需要而定。

          4.問(wèn):WinCE上的電子書程序如何寫?請(qǐng)給一些思路或鏈接?
          答:可以采用一些現(xiàn)成的第三方控件來(lái)完成電子書的主體顯示,這樣可以不用關(guān)心文檔格式。也可以自己來(lái)編寫代碼,基本和PC機(jī)上一樣,建立自己的程序,計(jì)算文字的寬高,在VIEW中繪制,需要注意的就是翻頁(yè)的計(jì)算和頁(yè)面的刷新。
          在網(wǎng)上搜一下可以找到很多這樣的源碼以供學(xué)習(xí),例如:
          http://www.pudn.com/downloads29/sourcecode/comm/windows_mobile/detail92513.html

          5.問(wèn):WINCE5.0的BSP(不是由4.2升級(jí)成5.0),240*320的屏,請(qǐng)問(wèn)要把分辨率改為480*640的話,需要修改哪些文件,哪些參數(shù)呢?
          答:修改下s3c2440a_lcd.h、InitDisplay()函數(shù)和s3c2440disp.cpp, 就可以實(shí)現(xiàn)輕松實(shí)現(xiàn)各種尺寸屏的切換。主要就是修改init.c文件中的InitDisplay()函數(shù):但是需要根據(jù)你的LCD芯片手冊(cè)來(lái)配置相應(yīng)的參數(shù)。

          6.問(wèn):S3C6410+WINCE6.0的系統(tǒng)大家有沒(méi)遇到這樣的情況----系統(tǒng)跑起來(lái)后幾分鐘/十幾分鐘后掛掉(死了),串口也沒(méi)有什么報(bào)錯(cuò)消息輸出!
          答:首先可以在每個(gè)可能出問(wèn)題的驅(qū)動(dòng)中輸出調(diào)式信息,檢查原因。另外就是重新編譯每個(gè)DEBUG版本的驅(qū)動(dòng)看看。有沒(méi)有錯(cuò)誤信息輸出。

          在網(wǎng)上看到以前有過(guò)這種情況,是有中斷不停的產(chǎn)生就會(huì)造成這種情況。如果是系統(tǒng)崩潰,異常一般會(huì)輸出信息的。 現(xiàn)在沒(méi)有錯(cuò)誤信息,極有可能是這種情況。

          建議采取排除法,逐一把驅(qū)動(dòng)卸載,看是哪個(gè)驅(qū)動(dòng)出了問(wèn)題。

          問(wèn):現(xiàn)在項(xiàng)目中需要獲得真機(jī)的手機(jī)型號(hào),可是找遍了API都沒(méi)找到能獲得手機(jī)型號(hào)的API。上網(wǎng)搜索也沒(méi)得到相關(guān)的解決辦法。但感覺(jué)這個(gè)功能該是有API支持的。
          答:如果是山寨機(jī)可能會(huì)不行,如果OME廠商沒(méi)有按約束規(guī)定寫,你也不能獲取到. 如果HKEY_LOCAL_MACHINESecurityInternet ExplorerUser AgentCustomBase和手機(jī)中。設(shè)置—系統(tǒng)—設(shè)備信息-“特性識(shí)別”是一致的,你通過(guò)過(guò)注冊(cè)表就可以讀出來(lái)。

          問(wèn):條件有限,只能在一臺(tái)機(jī)子上裝CE5和CE6的開發(fā)環(huán)境。并且由于種種原因,已經(jīng)裝好了CE6,此時(shí)再裝CE5會(huì)不會(huì)有什么問(wèn)題? 如果真的會(huì)有問(wèn)題的話,怎么做可以避免掉這些問(wèn)題呢?
          答:CE5 和 CE6 有很大區(qū)別建議不要裝在一起,可以用虛擬機(jī)來(lái)安裝兩個(gè)不同的版本。如果一定要裝在同一臺(tái)機(jī)器上的話,也是可以的。CE5開發(fā)工具使用的是Platform Builder,而CE6則是整合在Visual Studio 2005開發(fā)環(huán)境下的,注意,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
          安裝完成后可能會(huì)出現(xiàn)CE6和CE5在Platform Builder的Connectivity Options上的沖突問(wèn)題,大家可以參考我博客中的文章來(lái)解決這個(gè)問(wèn)題:http://lzg-ad.blog.sohu.com/118092446.html

          問(wèn):我的用戶態(tài)驅(qū)動(dòng)和內(nèi)核態(tài)ISR要對(duì)I/O設(shè)備協(xié)同操作才能完成, 但我的IO設(shè)備是這樣工作的:
          IO設(shè)備只有一個(gè)地址,內(nèi)部有16個(gè)寄存器,
          要對(duì)設(shè)備中的寄存器讀寫時(shí), 要先往IO 端口中寫寄存器號(hào),再在這個(gè)端口讀寫,(有點(diǎn)像對(duì)COMS的操作)
          這就要保證一個(gè)讀寫操作要兩次IO,并且一定要成對(duì)出現(xiàn),就是這兩個(gè)操作要是原子的,不可拆分;
          如果IST正剛往端口中寫了寄存器號(hào),還沒(méi)來(lái)得及寫數(shù)據(jù),這時(shí)中斷來(lái)了,ISR也要操作設(shè)備,那不是亂了,
          這種問(wèn)題怎么解決呢?有沒(méi)有什么信號(hào)量、互斥量什么的可以用?
          答:看看ISR 和 IST的協(xié)助方式,就知道如何解決這種問(wèn)題,在網(wǎng)上也有人已經(jīng)回答了這個(gè)問(wèn)題:
          1. IST 在操作時(shí), 通常還沒(méi) call InterruptDone(dwSysIntr);, 故 ISR 不會(huì)產(chǎn)生中斷, 就沒(méi)有這個(gè)問(wèn)題了.
          2. ISR 先把 Index Register 讀出後保存後再修改, 離開前再改回原值.
          3. 將 IST 要讀的值全部放在 ISR 內(nèi)讀完, 再用 Share Memory 的方式, 送給 IST.

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();