亚洲美女视频一区,亚州国产,亚洲国产成人久久精品动漫http://www.bjzhda.cnzh-cn曙海教育集團(tuán)論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團(tuán)論壇愛特梅爾推出SAM9G45-EK評(píng)測工具包加速基于400MHz ARM9之嵌入式微處理器的應(yīng)用開發(fā)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=2796&Page=1wangxinxin2010-12-22 14:00:14Atmel? Corporation)宣布推出SAM9G45-EK評(píng)測工具包,支持基于愛特梅爾400 MHz ARM926? 之嵌入式微處理器(MPU)并帶有DDR2存儲(chǔ)器的應(yīng)用開發(fā)。SAM9G45提供帶有片上物理層、兼容 EHCI的 480 Mbps HS USB,以太網(wǎng)和用于高速連接的SDIO,加上實(shí)現(xiàn)智能用戶界面(iUI)的LCD和觸控功能,以及設(shè)置在附有雙EBI的高數(shù)據(jù)帶寬架構(gòu)上的可編程1.8或3.3V I/O供電電壓。

  該評(píng)測板可用于評(píng)測SAM9G45的雙外部總線架構(gòu)的性能優(yōu)勢(shì)。它帶有兩個(gè)獨(dú)立的128 MB的第二代雙倍數(shù)據(jù)速率DRAM (DDR2)存儲(chǔ)器組,每個(gè)存儲(chǔ)器組連接一個(gè)外部總線接口。板上閃存包括2 GB的NAND閃存和32 Mb (2Mb x 16)的閃存,可用于存儲(chǔ)應(yīng)用數(shù)據(jù),或在系統(tǒng)啟動(dòng)時(shí)存儲(chǔ)已上載到DDR2存儲(chǔ)器中的固件信息。

  板上外設(shè)則包括一個(gè)高速(HS) USB主/設(shè)備端口、第二個(gè)HS USB主端口、一個(gè)以太網(wǎng)10/100接口、兩個(gè)高速SDCard/SDIO/MMC插槽、一個(gè)帶電阻觸摸屏背光照明功能的24位彩色WQVGA LCD TFT顯示器、復(fù)合視頻輸出、相機(jī)接口以及一個(gè)備份電池

  SAM9G45評(píng)測板具有雙啟動(dòng)功能,支持Linux? 和 Microsoft? Windows?CE,并帶有預(yù)先編程的演示程序,展示在Linux 和 WinCE系統(tǒng)下的基本編程功能。愛特梅爾并為這兩種操作系統(tǒng)提供免費(fèi)的完整的板級(jí)支持包(BSP)。

圖片點(diǎn)擊可在新窗口打開查看

  Linux支持

  愛特梅爾在其AT91SAM Linux門戶網(wǎng)站www.linux4sam.org上免費(fèi)提供Linux v2.6.27操作系統(tǒng),這個(gè)Linux軟件包備有完整的Linux v2.6.27內(nèi)核、用于AT91SAM9G45評(píng)測工具包的Linux補(bǔ)丁、設(shè)備驅(qū)動(dòng)程序、預(yù)建演示程序和基于開放嵌入式(Open Embedded)構(gòu)建環(huán)境的?ngstrom 工具。AT91SAM Linux入門網(wǎng)站是面向廣泛且不斷擴(kuò)大之社群的網(wǎng)關(guān),為愛特梅爾全部基于ARM9?的嵌入式32位微處理器系列提供Linux自我支持。

  Windows CE支持

  支持Windows嵌入式BSP的AT91SAM9G45工具包功能齊全,為工程師提供了在愛特梅爾基于ARM9之產(chǎn)品中部署微軟嵌入式技術(shù)所需的一切工具。該產(chǎn)品可從網(wǎng)站下載。此外還有廣泛的文檔提供,包括一個(gè)使用就緒(ready-to-run)的演示程序,用于解釋如何使用和定制BSP源代碼以及如何基于Windows BSP進(jìn)行應(yīng)用構(gòu)建。

  世界范圍的廣泛第三方生態(tài)系統(tǒng)

  領(lǐng)先的第三方嵌入式軟件供應(yīng)商可以提供大量中間件、開發(fā)工具和RTOS,支持SAM9G45作為愛特梅爾AT91SAM微控制器世界范圍生態(tài)系統(tǒng)的一部分,這些公司包括:

  Mentor Graphics 公司

  Mentor Graphics公司嵌入式系統(tǒng)部門總經(jīng)理Glenn Perry表示:“我們與愛特梅爾建立了長期穩(wěn)固的合作關(guān)系,客戶能夠使用我們的Nucleus RTOS 和 Nucleus Graphics用戶界面,來實(shí)現(xiàn)最佳的性能。通過采用SAM9G45電路板和Mentor Graphics開發(fā)工具及軟件IP,嵌入式開發(fā)人員無需通過硬件加速,便可以在最短時(shí)間內(nèi)為其設(shè)備創(chuàng)建先進(jìn)的2D和3D圖形用戶界面。”

  Micrium公司

  Micrium 公司副總裁Christian Legare表示:“SAM9G45是第一款帶有真正的EHCI兼容USB高速控制器的嵌入式微處理器。為了實(shí)現(xiàn)軟件可移植性,英特爾針對(duì)高速USB主控制器硬件的實(shí)現(xiàn)方案,定義了寄存器級(jí)接口和存儲(chǔ)器數(shù)據(jù)結(jié)構(gòu)的EHCI標(biāo)準(zhǔn)。我們的高速USB控制器驅(qū)動(dòng)程序和USB堆棧也有一個(gè)類似的嵌入式硬件,能夠以PC級(jí)速度運(yùn)行。Micrium的中間件和功能強(qiáng)大的基于ARM9處理器非常適合那些尋求占用較少資源的實(shí)時(shí)操作系統(tǒng)(RTOS),而不需要大容量存儲(chǔ)器和高性能操作系統(tǒng)的替代方案的客戶。”

  QNX公司

  QNX軟件系統(tǒng)公司業(yè)務(wù)聯(lián)盟經(jīng)理Kroy Chang-Zeviar 表示:“在QNX開發(fā)者社群門戶網(wǎng)站Foundry27.com上,QNX專為愛特梅爾基于ARM 9之處理器而開發(fā)的板級(jí)支持包已成為最受歡迎的下載產(chǎn)品之一。愛特梅爾的SAM9G45-EK整合了硬實(shí)時(shí)性能、2D/3D加速圖形、Flash Lite HMI和QNX? Neutrino?操作系統(tǒng)的超級(jí)可靠性等優(yōu)勢(shì),可為自動(dòng)化系統(tǒng)、HVAC控制、媒體設(shè)備及其它任務(wù)關(guān)鍵性應(yīng)用的原型構(gòu)建與設(shè)計(jì)提供理想的快捷方式。”

  Fluffy Spider Technologies公司

  Fluffy Spider Technologies公司首席執(zhí)行官Robi Karp評(píng)論道:“愛特梅爾的SAM9G45 eMPU為智能設(shè)備制造商和應(yīng)用開發(fā)商提供了一個(gè)功能豐富的高成本效益平臺(tái)。通過支持SAM9G45,我們的FancyPants多媒體和圖形引擎可幫助OEM廠商實(shí)現(xiàn)硅片增值,并利用專業(yè)的、引人注目的富媒體(media-rich)用戶界面實(shí)現(xiàn)產(chǎn)品的差異化。”

  Timesys 公司

  Timesys公司業(yè)務(wù)發(fā)展副總裁Charlie Ashton表示:“我們的軟件開發(fā)框架LinuxLink一直廣為利用愛特梅爾處理器設(shè)計(jì)基于Linux的嵌入式產(chǎn)品的客戶所采納。我們針對(duì)最新推出的AT91SAM9G45處理器和參考板而開發(fā)的LinuxLink訂閱服務(wù),可提供預(yù)先匯編的起始點(diǎn),助力愛特梅爾客戶快速啟動(dòng)Linux產(chǎn)品開發(fā)。這項(xiàng)訂閱服務(wù)是通過Linux內(nèi)核和根文件系統(tǒng)而定制化,幫助客戶在其產(chǎn)品中采用Linux,然后進(jìn)行最終的系統(tǒng)集成。有了LinuxLink,SAM9G45客戶能夠以更低的開發(fā)成本更快地將產(chǎn)品推向市場。此外,Timesys在客戶開發(fā)的每個(gè)階段均提供專業(yè)工程技術(shù)支持。”

  Adeneo Embedded公司

  Adeneo Embedded 公司首席執(zhí)行官Yannick Chammings表示:“Adeneo Embedded為OEM廠商提供Windows Embedded CE的培訓(xùn)、系統(tǒng)開發(fā)支持和BSP維護(hù),使他們基于SAM9G45之設(shè)計(jì)能繼續(xù)保持優(yōu)勢(shì)。Adeneo Embedded和愛特梅爾正聯(lián)手在美國和歐洲進(jìn)行針對(duì)AT91SAM9 系列的Windows Embedded CE培訓(xùn)。這個(gè)為期一周的培訓(xùn)基于標(biāo)準(zhǔn)微軟課程,將幫助參與人員掌握帶有Windows Embedded BSP的AT91SAM9評(píng)測工具包的使用方法,以及定制和開發(fā)應(yīng)用的專業(yè)能力。”

]]>
突破硬件束縛wince 內(nèi)存管理http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=2795&Page=1wangxinxin2010-12-22 13:50:522002年10月 , 一種名為“VeriChip”的芯片突然在美國市場上銷售 。 將其植入皮下 , 不管是用金融卡提款 , 還是用信用卡消費(fèi) , 只需在現(xiàn)場讓刷卡機(jī)“刷自己” , 取得VeriChip的鑒別碼后就能完成交易 。 但是由于產(chǎn)品功能過于單一且必須冒著被致惡性腫瘤的風(fēng)險(xiǎn) , 項(xiàng)目最終不了了之 。

“VeriChip”的芯片假如能獲得更大的軟件支持 , 提供更多“以人為本”的也許 , 即使基于“人體芯片”爭吵的暴風(fēng)眼 , 或許也不致“幾年游說 , 僅2000人植入”的結(jié)果 。 “芯片的性能除了取決于芯片本身 , 也取決于軟件對(duì)它的支持 。 ” 飛思卡爾的開源研發(fā)經(jīng)理?xiàng)钚佬勒f 。

拋開人體載體這一敏感話題 , IC嵌入式軟件開發(fā)如今已經(jīng)應(yīng)用到許多領(lǐng)域中 , 包含航空航天事業(yè)中的載人飛船;銀行中的一些服務(wù)設(shè)備;汽車中的車載信息娛樂系統(tǒng)或是家庭家電設(shè)備等 。 這意味著客戶對(duì)于IC嵌入式軟件開發(fā)的復(fù)雜性要求日益提高 , IC嵌入式軟件開發(fā)工程師扮演著越來越重要的角色 。

入職專業(yè)匹配度要高 軟性技能需團(tuán)隊(duì)意識(shí)強(qiáng)

米萊iT科技網(wǎng)

大多企業(yè)將應(yīng)聘標(biāo)準(zhǔn)設(shè)定在電腦/電子通信/自動(dòng)控制專業(yè)本科以上學(xué)歷 , 部分民營/私營稍有降低標(biāo)準(zhǔn) , 為專科學(xué)歷 。 依據(jù)公司開發(fā)項(xiàng)目的需求IC嵌入軟件開發(fā)工程師還需要精通UcOS、VxWorks、WinCE、Linux等通用產(chǎn)品其中一項(xiàng)或多項(xiàng)開發(fā)平臺(tái) 。 鑒于Linux源代碼的開放化 , 使開發(fā)者能依據(jù)自己的需要進(jìn)行裁剪 , 受到了開發(fā)者和企業(yè)的青睞 。 “精通Linux嵌入式操做系統(tǒng)”會(huì)是非常好的面試敲門磚 , “打擊面”廣 , 卻過于大眾化 。

對(duì)于工做經(jīng)驗(yàn)的要求 , 19%的企業(yè)要求至少一年相關(guān)工做經(jīng)驗(yàn) , 42%的企業(yè)要求擁有三年及以上 , 尤其是在金融風(fēng)險(xiǎn)還未徹底消退的形勢(shì)下 , 企業(yè)招聘仍堅(jiān)持保守政策 , 尤其是高端稀缺型人才 , 只有3%的企業(yè)愿意將機(jī)會(huì)留給應(yīng)屆畢業(yè)生(以上是以2009年12月4日51job關(guān)鍵字“嵌入式軟件開發(fā)工程師”的統(tǒng)計(jì)結(jié)果) 。

在這些嵌入式操做系統(tǒng)中封裝了越來越多的功能 , 除了對(duì)任務(wù)的切換、調(diào)度、通信、同步、互斥、中斷管理、時(shí)鐘管理等 , 還可進(jìn)一步封裝內(nèi)存管理、網(wǎng)絡(luò)通訊協(xié)議、文件管理等功能 , 這些功能可以依據(jù)需要進(jìn)行裁減 。 面對(duì)大量高技術(shù)難度的工做內(nèi)容 , 幾乎所有的企業(yè)都要求應(yīng)聘者具有高責(zé)任心和高團(tuán)隊(duì)合做意識(shí)的軟性技能 。 除此之外 , 對(duì)于不善言辭的IT 男 , “善于溝通”這個(gè)技能可以獲得面試附加分 。

需求穩(wěn)步攀升中放量 薪資一線城市待遇豐厚 www.mylove21.cn

據(jù)前程無憂數(shù)據(jù)庫顯示 , 嵌入式軟件開發(fā)人才的需求量由6月份上升23個(gè)點(diǎn) , 達(dá)759個(gè)每日網(wǎng)上職位發(fā)表數(shù) , 8月與11月成為該行業(yè)的兩個(gè)增長最為迅速的節(jié)點(diǎn) 。 VDC統(tǒng)計(jì)顯示嵌入式軟件的應(yīng)用部分最大的兩個(gè)市場是消費(fèi)類和電信/數(shù)據(jù)應(yīng)用 , 兩者的營業(yè)額相加占有將近半壁江山 。 時(shí)值年關(guān)將近 , 嵌入式軟件開發(fā)人才可有針對(duì)性的尋覓新東家 , 為自己的職業(yè)發(fā)展生涯放手一搏 。

薪資方面 , 依據(jù)前程無憂薪酬數(shù)據(jù)顯示 , 中國北京的本行業(yè)平均年薪超過中國深圳和中國上海等沿海城市 , 中國上海稍有落后 , 但都逼近了9萬年薪的水平 , 中國深圳的行業(yè)平均年薪超過8萬 。 二線城市的薪資則被“腰斬” , 一般維持在4.3―4.8萬的水平 , 但隨著不少國際頂尖半導(dǎo)體公司選擇入住二線城市的技術(shù)開發(fā)區(qū) , 我們有理由相信 , 二線城市薪資發(fā)展擁有較大的上升空間 。

]]>
關(guān)于M8使用WINdows CE操作系統(tǒng)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=2794&Page=1wangxinxin2010-12-22 13:49:45

圖片點(diǎn)擊可在新窗口打開查看
對(duì)業(yè)界而言,Windows CE絕對(duì)算不上新名詞,而且,隨著嵌入式系統(tǒng)及掌上型產(chǎn)品的日益受寵,"Windows CE"在各種場合露面的機(jī)會(huì)亦越來越多。但是,很多人對(duì)Windows CE的認(rèn)識(shí)并非很清晰,甚至存在著一些誤區(qū)。那么,Windows CE到底是什么?微軟為什么要推出Windows CE?Windows CE有哪些特點(diǎn)?我們能用Windows CE干什么?……且聽微軟中國研究開發(fā)中心Windows CE產(chǎn)品部經(jīng)理任健先生對(duì)Windows CE的解說。
(1)Windows CE是什么?
  簡而言之,Windows CE是一個(gè)搶先式多任務(wù)并具有強(qiáng)大通信能力的Win32嵌入式操作
系統(tǒng),是微軟專門為信息設(shè)備、移動(dòng)應(yīng)用、消費(fèi)類電子產(chǎn)品、嵌入式應(yīng)用等非PC領(lǐng)域而從
頭設(shè)計(jì)的戰(zhàn)略性操作系統(tǒng)產(chǎn)品。
Windows CE所支持的編程界面是Win32 API的子集,它支持600多種最常用的Win32 A
PI。它具有專門為實(shí)時(shí)嵌入應(yīng)用而設(shè)計(jì)的、搶先式多任務(wù)的操作系統(tǒng)核心,可以燒入ROM
。操作系統(tǒng)核心只用500KB的ROM和250KB的RAM。目前,Windows CE的最新版本是前不久剛
推出的5.0版。"CE"的來源已無處可查,但是微軟人普遍認(rèn)為,"CE"中的"C"代表了消費(fèi)類 (Consume
r)、袖珍 (Compact) 、通信能力 (Connectivity) 和伴侶(Companion),而"E"則代表了
電子產(chǎn)品 (Electronics)。嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件。工業(yè)控制是它的傳統(tǒng)應(yīng)用領(lǐng)域,在這一
領(lǐng)域里已有一些存在了多年的比較成功的嵌入式操作系統(tǒng)。但近年來,隨著家電信息化的
趨勢(shì)日益明顯,對(duì)嵌入式操作系統(tǒng)提出了許多新的要求,熟悉和友好的用戶界面、統(tǒng)一的
編程界面、強(qiáng)大的通信功能已變得日趨重要。微軟一直致力于把計(jì)算技術(shù)用于改善人們的工作和生活,不斷聽取用戶的需求,并根據(jù)技術(shù)發(fā)展的水平推出相應(yīng)的產(chǎn)品。從DOS到Windows 3.1、Windows 95、Windows NT,直至Windows CE,都是滿足用戶需求的表現(xiàn)。我們希望通過我們和技術(shù)伙伴的努力,能使普通老百姓從計(jì)算技術(shù)中受惠,得以跨入信息時(shí)代或知識(shí)經(jīng)濟(jì)的大門。
(2)為什么要推出Windows CE?
  生活中人們開始使用手機(jī)、PDA以及手持和掌上電腦等來存儲(chǔ)和處理各種重要信息,
這似乎預(yù)示著一場新的革命。
這場革命就是,計(jì)算機(jī)占領(lǐng)了桌面之后,繼續(xù)向小型化和分散化發(fā)展,更廣泛地進(jìn)入人
們工作、生活和娛樂的各個(gè)方面和各個(gè)角落。近年來,這場革命又被Internet的迅猛普及
所推動(dòng),一個(gè)網(wǎng)上世界已經(jīng)出現(xiàn),人們隨時(shí)隨地獲取所需信息,保持與他人接觸的需求愈發(fā)
強(qiáng)烈。
  自微軟創(chuàng)辦之日起,比爾·蓋茨就確立了公司的使命,即創(chuàng)造出能夠鼓舞和豐富人類
生活的個(gè)人計(jì)算機(jī)軟件,無論是在辦公室、在學(xué)校,還是在家里。這就是后來著名的"信息
隨手可得"的夢(mèng)想。今天,微軟已為PC提供了出色的操作系統(tǒng)平臺(tái)(Windows 9x/NT)、高效
率的軟件開發(fā)工具和功能強(qiáng)大且易用的通用軟件,使許多人的工作和生活從中受益。
但是,PC的價(jià)格及使用的復(fù)雜性仍使許多人與此無緣,尤其在中國更是如此。PC文化
仍不是徹底的"庶民文化",目前PC的復(fù)雜性對(duì)于更為普遍的大眾來說仍是一種"精英工具
"。PC已成為人們進(jìn)入網(wǎng)上世界的最后一道門坎。例如中國已在Internet干線、接入、內(nèi)
容提供等諸方面投入巨資,但就因?yàn)檫@"最后一公里"難題,中國的Internet產(chǎn)業(yè)遲遲不能
起飛。
  微軟不想重犯80年代一家著名公司犯下的錯(cuò)誤。當(dāng)年這家公司固守"主機(jī)文化"而錯(cuò)
失了電腦向桌面這一新領(lǐng)域拓展的良機(jī),成為自己引發(fā)的PC革命的旁觀者。因此,微軟在
向個(gè)人桌面和企業(yè)管理領(lǐng)域提供了兩個(gè)方便易用且功能強(qiáng)大的操作系統(tǒng)(Windows 9x/NT
)之后,又從頭設(shè)計(jì)了Windows CE,以面向更為廣大的被稱為移動(dòng)計(jì)算、信息家電等應(yīng)用領(lǐng)
域,我們稱之為"非PC"領(lǐng)域。我們希望在這一新的應(yīng)用領(lǐng)域中仍然能夠扮演操作系統(tǒng)平臺(tái)
、開發(fā)工具和通用軟件供應(yīng)商的傳統(tǒng)角色。
  所以,Windows CE是微軟順應(yīng)計(jì)算技術(shù)小型化、分散化趨勢(shì)的產(chǎn)物,是發(fā)揚(yáng)"庶民文化"傳統(tǒng)

的戰(zhàn)略性產(chǎn)品。微軟已投入并將繼續(xù)投入大量的資源,通過發(fā)揮我們善于運(yùn)用現(xiàn)有
技術(shù)并進(jìn)行技術(shù)創(chuàng)新而滿足市場需求的能力,以及引導(dǎo)、帶動(dòng)相關(guān)產(chǎn)業(yè)的能力和強(qiáng)大的市
場推廣能力,并充分發(fā)揮我們?cè)赑C革命中所積累的豐富經(jīng)驗(yàn)和資源,繼續(xù)成為這場新的革
命的前驅(qū)。
(3)Windows CE的特點(diǎn)
1. 設(shè)計(jì)目標(biāo)和體系結(jié)構(gòu)
Windows CE 是一個(gè)基于Win32、多任務(wù)、具有強(qiáng)大通信能力和圖形功能的操作系統(tǒng)
,是專門為嵌入式應(yīng)用而設(shè)計(jì)的。它使以更低的開發(fā)成本、在更短的時(shí)間內(nèi)進(jìn)入更廣闊的
市場成為可能。其設(shè)計(jì)目標(biāo)為:
*模塊化可伸縮;
*實(shí)時(shí)性能好;
*通信功能強(qiáng)大;
*支持多種 CPU。
2. 支持多種處理器
Windows CE是一個(gè)可移植的操作系統(tǒng)

3. 強(qiáng)大的操作系統(tǒng)內(nèi)核與良好的通信能力
Windows CE具有靈活的電源管理功能,包括睡眠/喚醒模式。使用對(duì)象存儲(chǔ)(ObjectS
tore)技術(shù),包括文件系統(tǒng)、注冊(cè)表及數(shù)據(jù)庫。它具有高性能/效率的操作系統(tǒng)特性,包括
按需換頁、共享存儲(chǔ)、交叉處理同步、支持大容量堆(Heap)等。
Windows CE支持直接的局域網(wǎng)以及撥號(hào)連接,提供與PC、內(nèi)部網(wǎng)以及Internet的連接
,包括用于應(yīng)用級(jí)數(shù)據(jù)傳輸?shù)脑O(shè)備至設(shè)備間的連接。提供各種基本的通信基礎(chǔ)結(jié)構(gòu),包括
:套接字(Socket)、TCP/IP、PPP、IrDA、遠(yuǎn)程訪問、TAPI 以及Unimodem、WinInet、Wi
n32串行、SLIP、NDIS驅(qū)動(dòng)程序,還有對(duì)SMB重定向程序、聯(lián)網(wǎng)以及PC 連接性的支持。同
時(shí),還提供與Windows 95/98/NT的最佳集成和通信。支持廣泛的通信硬件。
4. 豐富的圖形用戶界面
提供基于Microsoft Internet Explorer的Internet瀏覽器。此外,還支持TrueType
字體,提供賞心悅目的顯示及打印效果。
可配置、可擴(kuò)展、通用、精巧的基于Windows模型的控件庫,用于建立類Windows應(yīng)用
的專門圖形用戶界面,可作為嵌入應(yīng)用開發(fā)人員的范例和工作起始點(diǎn)。
支持特定目標(biāo)應(yīng)用的豐富服務(wù),例如手寫體和聲音識(shí)別、動(dòng)態(tài)影像、3D 圖形等。
5. 通用開發(fā)工具和可再用資源
通用開發(fā)工具有:
*Windows CE Embedded Toolkit for Visual C++;
*Windows CE Toolkit for Visual J++;
*Windows CE Toolkit for Visual Basic;
*其他第三方的工具。
目前,世界上有420多萬Win32 開發(fā)人員,其商務(wù)和嵌入式應(yīng)用都使用同一種API,這將
大大方便開發(fā)人員。
發(fā)揮可重定目標(biāo)應(yīng)用代碼庫的作用。目前,已有超過1.7萬種Win32應(yīng)用作為巨大的代
碼庫,OEM廠商可以從中獲得適當(dāng)?shù)募夹g(shù)許可,同時(shí),軟件開發(fā)商們可將其現(xiàn)有的資源快速
移植到Windows CE平臺(tái)上。
Windows CE支持COM的進(jìn)程內(nèi)函數(shù)、部件化的Java VM和Visual Basic腳本,并提供豐
富的、經(jīng)常在嵌入式應(yīng)用中使用的部件化的軟件,包括通信、數(shù)學(xué)/統(tǒng)計(jì)、圖形/圖像、數(shù)
字信號(hào)處理、用戶界面等。
(4)Windows CE的產(chǎn)品線
1. 預(yù)制平臺(tái) (Target Platform)
微軟公司推出和正在推出一系列基于Windows CE的預(yù)制平臺(tái),它們可分為下面兩大類
移動(dòng)式或便攜式產(chǎn)品 如掌上型電腦、手持式電腦以及汽車電腦等。
面向家庭以電視為主要顯示器的產(chǎn)品 如電視瀏覽器、頂置盒和游戲機(jī)等。
我們這里所使用的如手持式電腦這樣的平臺(tái)名稱,指的是軟件平臺(tái),是微軟為該硬件
平臺(tái)所提供的軟件。硬件平臺(tái)通常是由微軟定義、硬件合作伙伴生產(chǎn)的。因此,只要符合
該定義的硬件,就可以運(yùn)行與之相應(yīng)的軟件平臺(tái)。卡西歐和飛利浦生產(chǎn)的掌上型電腦都預(yù)
裝了基于Windows CE 的掌上型電腦軟件平臺(tái),只要是為掌上型電腦開發(fā)的軟件都可以在
上面運(yùn)行。
換句話說,我們也可以把Windows CE內(nèi)核加上掌上型電腦預(yù)制軟件平臺(tái)看作是Windo
ws CE的掌上型電腦版;而把Windows CE內(nèi)核加上手持式電腦預(yù)制軟件平臺(tái)看作是Window
s CE的手持式電腦版。Windows CE的手持式電腦版與Windows 95/98/NT的用戶界面最接
近。
為了幫助軟件開發(fā)人員為這些預(yù)制目標(biāo)平臺(tái)開發(fā)軟件,微軟還提供了相應(yīng)的軟件開發(fā)
工具,例如Windows CE Tool Kit for VC、VB和VJ。軟件開發(fā)人員可以使用它們?cè)赪indo
ws NT上為各種預(yù)制目標(biāo)平臺(tái)開發(fā)應(yīng)用軟件。該工具中包括了現(xiàn)有預(yù)制目標(biāo)平臺(tái)在Windo
ws NT上的仿真模擬器,以便軟件開發(fā)人員在沒有預(yù)制目標(biāo)平臺(tái)硬件產(chǎn)品的情況下對(duì)應(yīng)用
程序進(jìn)行仿真調(diào)試。
2. 專用產(chǎn)品與嵌入式系統(tǒng)開發(fā)工具箱ETK
對(duì)于那些無法在微軟提供的預(yù)制目標(biāo)平臺(tái)上實(shí)現(xiàn)的應(yīng)用,微軟將Windows CE及其輔助
工具以ETK(Embedded Tool Kit)的形式提供給軟硬件開發(fā)商。他們可以用搭積木的方式
開發(fā)自己的軟硬件平臺(tái),以滿足其獨(dú)特的需求。這類產(chǎn)品我們稱之為專用產(chǎn)品(Vertical
Product)。
(5)Windows CE在中國
  近年來,中國的IT、家電、個(gè)人通信設(shè)備等行業(yè)及其市場已取得了長足的進(jìn)步,例如
,在中國家用電器市場中,國內(nèi)品牌已經(jīng)占據(jù)了主導(dǎo)地位,個(gè)人通信設(shè)備迅速增長。據(jù)統(tǒng)計(jì)
數(shù)字顯示,國內(nèi)尋呼機(jī)持有量和手機(jī)持有量均已進(jìn)入了世界前列。中國市場規(guī)模龐大,獨(dú)
具特色,只要把握住其脈搏,便可形成爆發(fā)性的成功,并可能走向并影響世界產(chǎn)業(yè)。例如在
世界上其他國家翹首盼望DVD時(shí),VCD在中國卻異彩紛呈,形成世界上獨(dú)一無二的VCD市場,
并自行制定標(biāo)準(zhǔn),提交國際標(biāo)準(zhǔn)化組織。
  此外,世界范圍的IT、家電、娛樂等傳統(tǒng)行業(yè)的融合趨勢(shì)業(yè)已波及中國。例如,國內(nèi)
PC制造業(yè)者已轉(zhuǎn)向家用電腦、信息家電,學(xué)習(xí)機(jī)市場也在嘗試與家電產(chǎn)品的融合。在國內(nèi)
家電市場趨于成熟和飽和之后,家電廠商便紛紛涌入IT行業(yè),包括PC制造業(yè),也有一些廠商
順應(yīng)了信息家電的潮流,自行或與計(jì)算機(jī)廠商合作開發(fā)信息家電產(chǎn)品。
但由于中國的特殊國情,即經(jīng)濟(jì)水平和教育水平的限制,國內(nèi)計(jì)算機(jī)市場目前仍不能
提供一個(gè)規(guī)模化的用戶群,IT業(yè)仍是一個(gè)幼稚產(chǎn)業(yè),未能形成規(guī)模經(jīng)濟(jì),苦于尋找出路,其
中軟件行業(yè)尤為突出。家電行業(yè)在迅速發(fā)展并成功地滿足了傳統(tǒng)家電市場的需求后,正面
臨生產(chǎn)能力過剩、過度市場競爭等難題,急于尋找新的增長點(diǎn)。
同時(shí),國內(nèi)業(yè)界還有一種強(qiáng)烈的需求,即希望有一種合理的產(chǎn)業(yè)分工模式和技術(shù)標(biāo)準(zhǔn)
化,以避免盲目競爭和重復(fù)性勞動(dòng);希望能站在高起點(diǎn)和世界技術(shù)發(fā)展的前沿,加入世界大
合作,快速推出滿足市場需求的產(chǎn)品。例如學(xué)習(xí)機(jī)在發(fā)展多年后,目前就面臨著技術(shù)提升
的問題。
  在這種情況下,Windows CE為國內(nèi)產(chǎn)業(yè)界所帶來的不僅僅是其操作系統(tǒng)平臺(tái)、開發(fā)工
具和通用軟件所提供的一個(gè)較高的技術(shù)起點(diǎn),還有微軟引導(dǎo)帶動(dòng)相關(guān)產(chǎn)業(yè)的能力以及強(qiáng)大
的市場推動(dòng)能力,這將有助于形成新的規(guī)模化的市場,這種規(guī)模化市場正是中國軟件行業(yè)
、Internet行業(yè)等所急切需要的。同時(shí),還提供了加入全球產(chǎn)業(yè)生態(tài)環(huán)境的機(jī)會(huì),在這里
既有合作又有競爭,中國產(chǎn)業(yè)界完全可發(fā)揮在VCD、學(xué)習(xí)機(jī)市場中所表現(xiàn)出的強(qiáng)大動(dòng)能而
直接走向世界。 ]]>
我的 ARM-WinCE 編程探索之旅(二)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1807&Page=1wangxinxin2010-11-26 10:04:49經(jīng)過多次測試,找到了使用 FPC(Free Pascal Compiler)加 SDL(SImple DirectMedia Layer)進(jìn)行 ARM-WinCE 圖象編程的途徑(最終,建立過程中還是不得不借助于M$的開發(fā)工具eVC)。

1、從 http://www.libsdl.org/download-1.2.php 下載最新的 SDL 1.2.13 源碼,解壓其中 src 和 include 到 c:\,解壓其中 visualce.zip 到 c:\VisualCE。

2、下載并安裝eMbedded Visual C++ 4.0(同時(shí)附帶安裝了Platform SDK),運(yùn)行,打開WorkSpace文件 c:\VisualCE\*.vcw,修改工程配置為 arm4,release,然后 Build SDL.DLL,生成 ARM-WinCE 下用的 SDL.DLL,約220K大小,將 SDL.DLL 拷入 PPC。

3、從 http://www.hu.freepascal.org/lazarus/ 下載并安裝最新的 Lazarus + fpc 2.2.5 win32 -> arm wince。修改 \lazarus\fpc\2.2.5\source\packages\sdl\src\sdl.pas 的源碼,注釋掉連續(xù)的多個(gè) *getenv 和 *putenv 二函數(shù),再用 ppcrossarm.exe 編譯 sdl.pas,得到libimpsdl.a、sdl.o、sdl.ppu三個(gè)文件,覆蓋原 \lazarus\fpc\2.2.5\units\arm-wince\sdl\ 下的文件。

至此,F(xiàn)PC+SDL的WinCE圖形編程環(huán)境構(gòu)建完成。

接下來,將前些日子根據(jù) PGCC 示例用 FPC 改寫的一個(gè)簡單的桌面版 SDL 測試程序,重新用 ppcrossarm.exe 編譯,生成的EXE文件大小為82K,只導(dǎo)入了額外的 SDL.DLL(前面已經(jīng)放入PPC),在PPC上運(yùn)行通過。運(yùn)行時(shí)會(huì)先出現(xiàn) SDL 初始化的控制臺(tái)窗口,顯示一些視頻信息(桌面版的SDL也是如此,類似于dosbox的運(yùn)行),其運(yùn)行結(jié)果是每秒20次在全屏幕上顯示隨機(jī)大小、隨機(jī)顏色的方塊,按任意鍵或觸筆點(diǎn)擊退出。

下面是昨天晚上最后的程序源碼(在事件查詢循環(huán)上好像有點(diǎn)邏輯問題,有時(shí)候退不出程序,待修正):
  1. program Test;
  2. uses windows, sysutils, sdl;

  3. var
  4.         screen: PSDL_Surface;
  5.         event: TSDL_Event;
  6.         draw_count:int64=0;
  7.         done:boolean;
  8.         l,t:integer;

  9. procedure Draw_Box(screen:PSDL_Surface; x,y,w,h:dword; r,g,b:dword);
  10. var
  11.         p:PByte;
  12.         p2:PWord;
  13.         i,j:dword;
  14.         c:dword;
  15. begin
  16.         if SDL_MUSTLOCK(screen) then begin
  17.                 if SDL_LockSurface(screen) < 0 then exit;
  18.         end;

  19.         c := SDL_MapRGB(screen^.format, R, G, B);
  20.         assert (screen^.format^.BytesPerPixel=2);
  21.         p := screen^.pixels + y*screen^.pitch + x*screen^.format^.BytesPerPixel;
  22.         for j:=1 to h do begin
  23.                 p2:=PWord(p);
  24.                 for i:=1 to w do begin
  25.                         p2^:=c;
  26.                         inc(p2);
  27.                 end;
  28.                 inc(p,screen^.pitch);
  29.         end;

  30.         if SDL_MUSTLOCK(screen) then SDL_UnlockSurface(screen);
  31.         SDL_UpdateRect(screen, x, y, w, h);
  32. end;

  33. procedure HandleKey(key: TSDL_KeyboardEvent);
  34. begin
  35.         done:=true;
  36. end;

  37. //main at here
  38. begin
  39.         SDL_Init(SDL_INIT_VIDEO or SDL_INIT_AUDIO);
  40.         screen := SDL_SetVideoMode(320, 240, 16, SDL_HWSurface);
  41.         SDL_WM_SetCaption('My SDL',nil);

  42.         while not done do begin
  43.                 //Set_Pixel(screen,random(320),random(240),random(255),random(255),random(255));
  44.                 l:=random(320-40);
  45.                 t:=random(240-30);

  46.                 Draw_Box(Screen,l,t,random(320-40-l)+41,random(240-30-t)+31,random(255),random(255),random(255));
  47.                 inc(draw_count);
  48.                 while SDL_PollEvent(@event)<>0 do begin
  49.                               case event.type_ of
  50.                               SDL_MouseButtonDown,
  51.                                 SDL_QUITEV, SDL_KEYDOWN,SDL_KEYUP: done := true;
  52.                                       //handleKey(event.key);
  53.                         end;
  54.                 end;
  55.                 SDL_Delay(50);
  56.         end;

  57.         SDL_Quit();
  58. end.
復(fù)制代碼
接下來打算搞點(diǎn)有實(shí)際用處的程序,比如說一個(gè)文本閱讀器,使用24點(diǎn)陣字體;還要嘗試是否能將一些 sdl 輔助庫(比如:SDL_Mixer)編譯成 ARM-WinCE 可用的 DLL。

]]>
關(guān)于WINCE系統(tǒng)的介紹和M8 MyMobile系統(tǒng)的介紹。喜歡技術(shù)歷史的和小白進(jìn)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1806&Page=1wangxinxin2010-11-26 10:03:41關(guān)于M8的系統(tǒng)
    貌似目前M8的Android系統(tǒng)受關(guān)注關(guān)注最多,很多煤油關(guān)注將來自己能否使用新的機(jī)器人系統(tǒng),原本的M8 MyMobile系統(tǒng)倒是很少受關(guān)注,最新發(fā)布的 Windows Embedded CE 6.0 R3或許讓煤油對(duì)將來的MyMobile有了更多期待。不過也看到一些用戶連基本的M8的MyMobile系統(tǒng)也不清楚,不知道什么是WinCE,還跟Windows Mobile混淆對(duì)比新舊,這里就簡單介紹一下M8的MyMobile系統(tǒng),以及其與WinCE的淵源,不過對(duì)此不感興趣的煤油可以無視此系統(tǒng)介紹章節(jié)看軟件安裝介紹了,不是誰使用M8都要搞清楚M8的系統(tǒng)的,有興趣的可以看看了解一下。

WinCE與Windows Mobile
    在介紹M8的MyMobile系統(tǒng)之前,有必要先介紹一下WinCE與Windows Mobile。

圖片點(diǎn)擊可在新窗口打開查看



官方介紹:
    WindowsCE是微軟公司嵌入式、移動(dòng)計(jì)算平臺(tái)的基礎(chǔ),它是一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng),它是精簡的Windows 95,Windows CE的圖形用戶界面相當(dāng)出色。其中CE中的C代表袖珍(Compact)、消費(fèi)(Consumer)、通信能力(Connectivit)和伴侶(Companion);E代表電子產(chǎn)品(Electronics)。
    首先,WinCE是微軟的嵌入式、移動(dòng)平臺(tái)的操作系統(tǒng)基礎(chǔ),在其基礎(chǔ)上可以定制很多定制化操作系統(tǒng)。比如目前主流的Windows Mobile就是基于WinCE 5.0定制的,之前SP2003(Smart Phone 2003)和PPC 2003((PocketPC) 2003)則是基于WinCE 4.2定制的。其實(shí)WinCE不僅僅可以用來做手機(jī)系統(tǒng),還可以用來做其他嵌入式設(shè)備的系統(tǒng)。WinCE可以用來做手機(jī),掌上電腦,但是這不是WinCE唯一的用途,很多設(shè)備都可以用到WinCE,比如數(shù)控機(jī)床,信息家電,等等。

圖片點(diǎn)擊可在新窗口打開查看



       2000年,微軟專門為掌上電腦定制的包含一些特殊的API的Windows CE定制版本,命名為“PocketPC”,最早是“PocketPC2000”,之后升級(jí)為“PocketPC2002”,均為基于WindowsCE3.0的內(nèi)核。PPC是基于WinCe高度定制的系統(tǒng),是微軟因市場需要,統(tǒng)一掌上電腦操作系統(tǒng)的規(guī)格。它在WinCE的基礎(chǔ)上削減了一些功能,定制的專用于掌上電腦操作系統(tǒng)。另外,微軟為了搶占智能手機(jī)(“Smart Phone”)的市場份額,通過收購的技術(shù)借鑒,開發(fā)出一套外觀、風(fēng)格和使用方法同PPC的系統(tǒng)很相似但是內(nèi)核卻并不相同的智能手機(jī)專用的嵌入式操作系統(tǒng),叫做“MicroSoft Smart Phone”。這個(gè)系統(tǒng)的手機(jī)典型特點(diǎn)是大多不支持觸摸屏的。SP(Smart Phone)則是獨(dú)立于 PPC 的操作系統(tǒng),它不但功能更簡化,而且在內(nèi)存使用上和WinCE,PPC都不一樣。

圖片點(diǎn)擊可在新窗口打開查看



        2003年,微軟為了方便,把它所有的用于手持式移動(dòng)計(jì)算設(shè)備上的嵌入式操作系統(tǒng)統(tǒng)稱為“Windows Mobile”,如“Windows Mobile 2003”。但是其中又分為PPC版和SmartPhone版,他們分別和原來的PocketPC和SmartPhone操作系統(tǒng)是對(duì)應(yīng)的。其中PPC版本的Windows Mobile 2003是基于WindowsCE4.2內(nèi)核的。2005年,微軟將SmartPhone和PPC上的兩套系統(tǒng)作了進(jìn)一步的整合,發(fā)布了“Windows Mobile 2005”,劃分標(biāo)準(zhǔn)版和專業(yè)版,分別對(duì)應(yīng)SmartPhne和PPC版本,它們之間的差距在縮小,典型的差別就是是否支持觸摸手寫。目前Windows Mobile已經(jīng)經(jīng)歷了Windows Mobile 6.0、6.1以及最新的6.5的發(fā)展,Windows Mobile6.X 系列都是基于WinCE 5.0的。基于最新WinCE6的Windows Mobile7也在緊張開發(fā)中,不久的將來即將與大家見面。

圖片點(diǎn)擊可在新窗口打開查看



MyMobile
        通過上面的介紹我們了解了WinCE以及Windows Mobile的關(guān)系以及區(qū)別,再回頭看看魅族M8所采用的MyMobile系統(tǒng)。

圖片點(diǎn)擊可在新窗口打開查看



        M8的MyMobile系統(tǒng)同樣是基于微軟Windows CE系統(tǒng)定制的,不過是基于最新的WinCE6.0,由魅族定制。MyMobile最主要的就是要加入通信功能,同時(shí)定制一套更友好,具備更好用戶體驗(yàn)的GUI。大家或許都知道,WinCE原始的GUI非常簡陋,用戶體驗(yàn)很差,而M8也通過定制的GUI實(shí)現(xiàn)了高分辨率顯示下的絢麗界面和超酷觸摸操作。M8采用基于WinCE6的基礎(chǔ)來定制自己的操作系統(tǒng),一方面可以節(jié)省一部分授權(quán)費(fèi)用(使用Windows Mobile要支付一定的授權(quán)費(fèi)用給微軟,而WinCE的授權(quán)很少甚至沒有),另外就是可以定制自己的GUI。作為一款手機(jī)操作系統(tǒng),M8首先就是要加入通話功能,其中涉及聯(lián)系人,接打電話等,而之前Windows Mobile一貫丑陋簡陋的聯(lián)系人管理已經(jīng)讓很多用戶抱怨了,Windows Mobile平臺(tái)的眾多聯(lián)系人管理軟件的出現(xiàn)就可見一斑。為此在定制的通話模塊中M8也人性化的加入了區(qū)號(hào)秀等功能,實(shí)現(xiàn)聯(lián)系人分組(早期的系統(tǒng))等一些列定制化。而M8炫酷的操作界面自然不用說了,配合高分大屏操作,第一眼便吸引了眾多煤油。

圖片點(diǎn)擊可在新窗口打開查看



        另外,正是因?yàn)镸8是基于WinCE定制的,而WinCE本身也不是專為手機(jī)而設(shè)計(jì)的,它是為更通用的嵌入式、移動(dòng)設(shè)備設(shè)計(jì)的,由此也就導(dǎo)致采用WinCE系統(tǒng)開發(fā)的手機(jī)系統(tǒng)可能或多或少都存在信號(hào)問題,即使現(xiàn)在很成熟的Windows Mobile系統(tǒng)在不同的手機(jī)上也常見“信號(hào)門”事件,漏接無信號(hào)也時(shí)有發(fā)生。Radio模塊也是基于WinCE的手機(jī)經(jīng)常要更新的。而M8也遇到了少數(shù)信號(hào)的問題,魅族也是經(jīng)過反饋,調(diào)查,新近推出了信號(hào)增強(qiáng)版M8 SE,基本解決了偶爾的信號(hào)不好的問題。

圖片點(diǎn)擊可在新窗口打開查看 圖片點(diǎn)擊可在新窗口打開查看

]]>
基于WinCE模擬器的應(yīng)用程序調(diào)試http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1805&Page=1wangxinxin2010-11-26 10:01:20 

在這里我假設(shè)你的PC上面什么工具都沒有,也沒錢買。那么你就去微軟的網(wǎng)站上面注冊(cè),然后就可以下載WinCE6.0和VS2005的評(píng)估版了,下載后安裝,然后將你的WinCE6.0升級(jí)到WinCE6.0 R2,具體步驟參見我以前的Blog:如何安裝WinCE6.0。最后還要從微軟的網(wǎng)站上下載ActiveSync并安裝。

 

現(xiàn)在,我認(rèn)為你已經(jīng)完成了WinCE6.0 R2的安裝,你就可以打開VS2005創(chuàng)建一個(gè)WinCE的工程,在選擇BSP的時(shí)候請(qǐng)選擇”Device Emulator: ARMV4I”,在選擇模板的時(shí)候請(qǐng)選擇”PDA Device”,然后選擇”Mobile Handled”,完成后默認(rèn)是Debug模式,切換成Release模式然后編譯,編譯成功以后,需要配置模擬器并最終將編譯好的WinCE下載到模擬器中運(yùn)行,具體步驟參見我以前的Blog:WinCE Emulator使用介紹。

 

首先介紹模擬器上WinCE的配置:

1. 當(dāng)WinCE在模擬器中運(yùn)行以后,選擇Start->Settings->Control Panel,如圖:

 

 

2. 在彈出的控制面板對(duì)話框中選擇Network and Dail-up Connections,然后雙擊Make New Connection,在連接類型中選擇Direct Connection,如圖:

 

 

3. 選擇Next,然后選擇Serial Over DMA,如圖:

 

 

4. 最后選擇Finish就創(chuàng)建了一個(gè)新的連接。創(chuàng)建完成后,重新回到控制面板界面選擇PC Connection,在彈出界面中選擇Change,然后選擇剛剛添加的My Connection,如圖:

 

 

5. 完成后點(diǎn)擊OK按鈕,然后關(guān)閉控制面板,現(xiàn)在模擬器設(shè)備已經(jīng)配置好了。

 

下面介紹ActiveSync的配置:

1. 安裝ActiveSync并運(yùn)行,在菜單中選擇File,然后選擇Connect Settings,按照下圖進(jìn)行設(shè)置:

 

 

2. 設(shè)置完成后選擇OK,在VS2005環(huán)境中選擇Tools,然后選擇Device Emulator Manager,會(huì)彈出一個(gè)應(yīng)用界面,點(diǎn)擊界面上的refresh按鈕刷新,如圖:

 

 

3. 選擇當(dāng)前的仿真設(shè)備,并又擊選擇Cradle,此時(shí)會(huì)看到ActiveSync進(jìn)行連接,如圖:

 

 

在連接成功以后,就可以在ActiveSync中訪問模擬器上運(yùn)行的WinCE中的文件了,此時(shí)基于模擬器的應(yīng)用調(diào)試環(huán)境已經(jīng)基本建立起來。

 

下面創(chuàng)建個(gè)應(yīng)用程序調(diào)試一下:

1. 首先要做的就是基于先前創(chuàng)建的WinCE工程,導(dǎo)出SDK,具體步驟不介紹了,在導(dǎo)出SDK并安裝以后,就可以基于導(dǎo)出的SDK來創(chuàng)建一個(gè)應(yīng)用程序。重新打開一個(gè)VS2005,然后新建一個(gè)項(xiàng)目,具體如圖:

 


 

2. 輸入名稱以后,就Next,在選擇平臺(tái)SDK的時(shí)候,可以只選擇自己訂制的WinCE的SDK,這里我訂制的WinCE的SDK叫EmulatorSDK,如圖:

 


 

3. 然后選擇Next,可以選擇單文檔,多文檔,基于對(duì)話框,你隨便吧,最后點(diǎn)完成。下面就和以前在PC上面編寫VC程序一樣了,簡單點(diǎn),添加個(gè)按鈕,然后彈出一個(gè)MessageBox來,在完成以后,就可以編譯并調(diào)試了,按F5就可以。如果程序編譯沒有錯(cuò)誤,就會(huì)被下載到模擬器上面運(yùn)行,這個(gè)過程需要等一會(huì),然后你就會(huì)在你的模擬器上面看到你剛剛編寫的應(yīng)用程序了,如圖:

 

 

如果你的應(yīng)用程序是Debug模式,那你可以在你的應(yīng)用程序中設(shè)置斷點(diǎn),程序執(zhí)行到后會(huì)停下來,然后可以單步跟蹤,都沒有問題。

 

不知道前面說明白了沒有,總之,只要安裝了VS2005和WinCE6.0 R2之后就可以完全在PC上的模擬器上面調(diào)試WinCE內(nèi)核和應(yīng)用程序,可以自己定制內(nèi)核,導(dǎo)出自己的SDK,并用自己的SDK來編應(yīng)用程序和調(diào)試

]]>
ARM上網(wǎng)本還有市場嗎?兼談ARM(WinCE)上網(wǎng)本的設(shè)計(jì)思路http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1804&Page=1wangxinxin2010-11-26 9:56:40
以下內(nèi)容含腳本,或可能導(dǎo)致頁面不正常的代碼
說明:上面顯示的是代碼內(nèi)容。您可以先檢查過代碼沒問題,或修改之后再運(yùn)行.
]]>
關(guān)于WinCE同步軟件ActiveSync的應(yīng)用接口函數(shù)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1803&Page=1wangxinxin2010-11-26 9:53:22背景:
現(xiàn)在的巡檢系統(tǒng)是自定義通訊協(xié)議來進(jìn)行數(shù)據(jù)傳輸?shù)模捎趨f(xié)議的不可靠導(dǎo)致數(shù)據(jù)傳輸不穩(wěn)定,大數(shù)據(jù)量是容易產(chǎn)生故障。
改進(jìn)分析和設(shè)想:
有兩個(gè)程序,一個(gè)為App1運(yùn)行在PC上,另一個(gè)為App2運(yùn)行在PDA的WinCE上,我想利用ActiveSync來進(jìn)行兩個(gè)應(yīng)用程序的數(shù)據(jù)交換,以下設(shè)想了兩種方式來實(shí)現(xiàn):

設(shè)想1:  App1直接訪問PC上的同步文件夾,然后把ActiceSync設(shè)置為隨時(shí)同步,  這樣下面APP2的數(shù)據(jù)文件更新后,重新連到PC自動(dòng)更新PC的同步文件夾.
不知道這樣是否可以?
技術(shù)問題:
APP1訪問同步文件夾識(shí)別文件;
App1能修改文件;
App1能自動(dòng)啟動(dòng)同步操作;
App1能控制ActiceSync的連接和斷開操作;
APP1能自動(dòng)設(shè)置ActiceSync的配置;

設(shè)想2: 找到ActiveSync的外部應(yīng)用通訊接口函數(shù),然后在App1和App2中調(diào)用這些接口函數(shù)來實(shí)現(xiàn)對(duì)ActiveSync的操作.   這個(gè)方法我找了很久,找到相關(guān)信息!
技術(shù)問題:
App1能自動(dòng)啟動(dòng)同步操作;
App1能控制ActiceSync的連接和斷開操作;
APP1能自動(dòng)設(shè)置ActiceSync的配置;
App1能調(diào)用PC上ActiceSync的外部應(yīng)用通訊接口;(比如象MSCOMM的Write,Read函數(shù))
App2能調(diào)用PDA上ActiceSync的外部應(yīng)用通訊接口;
App1和App2能互相識(shí)別對(duì)方更新的文件;

]]>
讓您知道什么是Series操作系統(tǒng)的手機(jī)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1802&Page=1wangxinxin2010-11-26 9:35:35如何學(xué)編程http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1801&Page=1wangxinxin2010-11-26 9:30:30如何學(xué)編程,這是一個(gè)老話題,是一個(gè)老生常談的話題。百度一下,找到相關(guān)網(wǎng)頁約195,000篇(2009.11.15),除了重復(fù)的文章外,足以知道多少人在問,多少人在談,但是還有多少人迷茫?

  關(guān)于這個(gè)問題自然是仁者見仁,智者見智。如果你在網(wǎng)上百度一下和編程相關(guān)內(nèi)容,一定會(huì)看到:Visual Basic 、Delphi 、C、C++、VC++、匯編語言、Visual Foxpro 、SQL Server、Oracle、DB2、Sybase、Power Builder、Java、J2SE、JavaEE、JavaScript、PHP 、ASP(ASP.NET) 、JSP 、ISAPI 、NSAPI 、CGI、VS2005/VS2008 等等(這些有語言、數(shù)據(jù)庫或者開發(fā)工具)。

  這些不是全部,如果你在網(wǎng)上問該怎么學(xué)呢?有讓你從C語言開始學(xué)的,也有讓你從Pascal開始學(xué)的,也有讓你從VB開始學(xué)的,也有讓你直接學(xué)習(xí)C#的,更有讓直接學(xué)Java的……,網(wǎng)友的熱心反而讓你更是一頭霧水,很難知道誰對(duì)誰錯(cuò)。

  實(shí)際上如果是學(xué)習(xí)一門入門語言,任何一個(gè)都?jí)蛄耍瑓^(qū)別僅在于入門的難與易。但是倘若作為“就業(yè)”之本,僅有一門語言基礎(chǔ)顯然不夠,欲知后事,請(qǐng)接著往下看:

一、學(xué)習(xí)目的與軟件企業(yè)招人要求

  (一)準(zhǔn)備從事軟件開發(fā)職業(yè):無論你是一個(gè)在校大學(xué)生也好,還是一個(gè)已經(jīng)在職但準(zhǔn)備轉(zhuǎn)行也罷。

  1、首先,最好了解一下軟件的開發(fā)模式:C/S模式、B/S模式。

  C/S模式:我們看到的一些客戶關(guān)系管理、進(jìn)銷存軟件、醫(yī)院管理系統(tǒng)。顯著特點(diǎn)需要在電腦上裝一個(gè)軟件才能使用。可以使用語言有:VB、Delphi、PB、VC++等。多用于局域網(wǎng),但也有不少用于互聯(lián)網(wǎng)(典型的有QQ等)。
  
  B/S模式,也稱WEB開發(fā):網(wǎng)上銀行、163與126電子郵件、網(wǎng)上納稅等。只需要瀏覽器就可以了。可以使用語言有:VB Script(ASP)、C#(ASP.NET)、JAVA(JSP)、PHP等。多用于互聯(lián)網(wǎng),但也有不少用于局域網(wǎng)。

  2、其次,你看一下軟件企業(yè)都招什么樣的人。

  除了個(gè)別領(lǐng)域,不難看到目前主要分為兩大陣營:.NET陣營和JavaEE陣營。兩大體系都非常不錯(cuò),不要看網(wǎng)上互相攻擊的那些無聊文章。在后面我會(huì)談到,這只是工具。

  看看用人單位要求:這才是你真正的學(xué)習(xí)導(dǎo)向。

.NET體系

  (1)計(jì)算機(jī)相關(guān)專業(yè)大專或本科學(xué)歷,二年以上.NET開發(fā)工作經(jīng)驗(yàn);

  (2)熟練C#語言、.net平臺(tái),vs2005,vs2008開發(fā)環(huán)境;熟練C/S,B/S結(jié)構(gòu)軟件,有相關(guān)項(xiàng)目經(jīng)驗(yàn)。

  (3)熟練運(yùn)用SQL Server數(shù)據(jù)庫設(shè)計(jì)與開發(fā),熟悉存儲(chǔ)過程及觸發(fā)器,有過大批量數(shù)據(jù)處理與優(yōu)化經(jīng)驗(yàn);

  (4)精通ASP.NET、WebService進(jìn)行相關(guān)的開發(fā),有HTML、XML、JavaScript經(jīng)驗(yàn)者優(yōu)先;

  (5)良好的團(tuán)隊(duì)開發(fā)意識(shí),較強(qiáng)的溝通、學(xué)習(xí)能力,認(rèn)真負(fù)責(zé)的工作態(tài)度。

.JavaEE體系

  (1)計(jì)算機(jī)相關(guān)專業(yè),大專或本科學(xué)歷,具有1年以上相關(guān)工作經(jīng)驗(yàn);               

  (2) 要求精通Java語言,精通JavaEE技術(shù)框架,熟悉SPRING、HIBERNATE、STRUTS、WEBWORK、MVC架構(gòu),熟悉Weblogic,jboss,Tomcat等應(yīng)用服務(wù)器,并可做應(yīng)用部署及調(diào)優(yōu);   

  (3)對(duì)網(wǎng)絡(luò)系統(tǒng)有相當(dāng)?shù)睦斫猓煜racle/SQL-Server/Sybase等數(shù)據(jù)庫,可以熟練的使用PL/SQL語言進(jìn)行存儲(chǔ)過程和函數(shù)等的編寫;                  

  (4)熟悉UML建模技術(shù)優(yōu)先,熟悉現(xiàn)代軟件項(xiàng)目管理優(yōu)先,英語技能較好者優(yōu)先;   

  (5)具有編寫需求說明書、設(shè)計(jì)說明書等軟件開發(fā)相關(guān)文檔的能力;   

  (6)思路清晰,工作規(guī)范,良好的執(zhí)行能力、較強(qiáng)的團(tuán)隊(duì)協(xié)作精神和高度的責(zé)任心;

  (7)2年以上軟件開發(fā)工作經(jīng)驗(yàn)。

.其他

  諸如單片機(jī)、PLC等也很多。

――――――――――――――――――――――――――――――――――――

  不難看出,近年來盡管學(xué)歷一路飆升,但是軟件企業(yè)卻仍然定位是大專或者本科學(xué)歷,但是都要求有項(xiàng)目經(jīng)驗(yàn)(對(duì)此,你將來當(dāng)了老板會(huì)更明白,你也不愿意替別人作嫁衣)。

  選擇一個(gè)體系作為你的目標(biāo)很重要,無論是.NET還是JavaEE都行,千萬不要什么都學(xué),最終卻什么都不懂。

  另:你在網(wǎng)上也許看到很多這樣的建議,學(xué)習(xí)C語言、C++ For Dos(面向?qū)ο蟮乃枷胗肈OS就足夠了)、C For Windows、C++ For Windows(MFC),我是這樣一路學(xué)過來的,更知道其中的艱辛。但是我更堅(jiān)信按照這個(gè)建議,更多人的不到山頂就放棄了。并不是學(xué)美術(shù)的一定都要成為畫家,做廣告設(shè)計(jì)也是挺有意思的一件事。

(二)純粹的編程愛好者

  這個(gè)我沒有太多的發(fā)言權(quán),只要你認(rèn)為怎么適合你都行。

二、關(guān)于文化基礎(chǔ):

  (一)數(shù)學(xué):很多人都談到要有高數(shù)、離散、線性等基礎(chǔ)。但如果你做的只是一個(gè)網(wǎng)站后臺(tái)、普通的管理系統(tǒng),那么也許有高中的數(shù)學(xué)知識(shí)足夠了。

  (二)英語:入門學(xué)習(xí)編程不需要過四、六級(jí),高中英語基礎(chǔ)學(xué)習(xí)編程沒有一點(diǎn)問題。但是還是希望英語你能夠更上一層樓。道理很簡單,原因有二:

  1、如果你英語不好,不可能等你過了六、八級(jí)再學(xué)編程,可以邊學(xué)編程邊學(xué)英語,畢竟英語高手≠編程高手。即使先用拼音作為變量名,先學(xué)會(huì)編程也是好的,但最好能用英文命名。請(qǐng)看一個(gè)表名Yybrdab(拼音首字母),你再看一個(gè)表名Yiyuanbinrendanganbiao(拼音全拼),再看表名PatientFiles(英文縮寫),你有什么看法呢?Yybrdab很難猜,Yiyuanbinrendanganbiao全拼太長了,英文命名PatientFiles是不是更容易理解一些,

  2、畢竟國外在軟件開發(fā)方面比我國先進(jìn)不少,有時(shí)你查閱的是英文資料,如果你的英語好自然會(huì)助你一臂之力。

三、語言是工具、功夫在詩外

  你想一下,一個(gè)知名作家,不會(huì)用電腦而是用普通的鋼筆寫文章、甚至是鉛筆,一個(gè)打字員每分鐘在電腦打一百字以上,那么誰寫的文章好呢?編程語言也一樣,你應(yīng)聘工作時(shí)說:我會(huì)VB、Delphi、JAVA、C#等等,但是什么樣的項(xiàng)目也做不出來,和那個(gè)打字員有什么區(qū)別呢?

  李白的《靜夜思》我們每一個(gè)字都認(rèn)識(shí),是否每一個(gè)人都能寫得一首好詩呢?我們知道一個(gè)演員、一個(gè)作家、一個(gè)詩人必須要具備更多的生活閱歷與歷練才能演出好作品、寫出好文章、寫出好詩,我們程序員又何嘗不是呢?

  當(dāng)然能夠用好工具則能更好的為你服務(wù),作家能夠用電腦寫文章,估計(jì)效率更高一些,你選擇正確的編程語言,至少會(huì)讓你如虎添翼,但千萬不要認(rèn)為你學(xué)的是比較流行的語言而對(duì)別人學(xué)的可能不入時(shí)的語言而不屑一顧,你的道行修得越高才會(huì)知道高手并不是都寫在臉上,你會(huì)有更好的心態(tài)去學(xué)習(xí),明白人外有人,天外有天,自己實(shí)在微不足道。

  知識(shí)是無窮的,但我們生命是有限的,所以我們應(yīng)該在有限的生命里學(xué)習(xí)更有用的知識(shí)應(yīng)用到實(shí)踐中來。學(xué)習(xí)編程是為了更好解決我們工作和生活中的問題,而不是讓你成為紙上談兵的軍事家。

四、如何學(xué)習(xí)?

  就像武術(shù)一樣,門派如此之多,很難一下都告訴你。我也從一個(gè)門派說起吧,就從.NET體系(B/S模式)說吧。

(一)打基礎(chǔ)

    勿在沙丘上建浮雕!
           避免眼高手低,切忌急功近利!


  你可能要學(xué)習(xí)的有以下內(nèi)容:Dreamweaver、HTML/XHTML、CSS、JavaScript、XML、SQL SERVER、VS2005/VS2008與IIS設(shè)置、C#、WebForm(ASP.NET)、Ajax。

  1、Dreamweaver:可能沒有人會(huì)把它和編程聯(lián)系起來,我們更多的認(rèn)為它是做網(wǎng)頁用的(網(wǎng)頁三劍客之一),的確是這樣,之所以我列出來,是希望你如果做B/S模式開發(fā),它做界面有時(shí)比VS2005/VS2008好的多,這可能要引出你可能還要懂點(diǎn)Photoshop。門面也很重要,它會(huì)讓你的程序增色不少,不見得你進(jìn)的公司都會(huì)給你配一個(gè)專業(yè)美工。

  2、HTML/XHTML:超文本標(biāo)記語言/擴(kuò)展超文本標(biāo)記語言,盡管聽起來是個(gè)“語言”,但嚴(yán)格來說,它確實(shí)不是語言,只是一堆標(biāo)簽而已。在瀏覽器上點(diǎn)右鍵,“查看源文件”,里面有不少類似HTML、TABLE、TR、TD等,這些都是HTML的一部分。懂了它你會(huì)更明白將來Javascript腳本語言放在哪。

  3、CSS:層疊樣式表,它常常和HTML、Javascript結(jié)合起來做出更絢麗和大方的界面。

  4、JavaScript:這是客戶端的腳本語言,你可能還不能一下子理解什么是客戶端、什么是服務(wù)器端,這都沒有關(guān)系。你一定見過很多網(wǎng)站顯示今天是:xxxx年xx月xx日,大多數(shù)就是用Javascript做的,曾記得1998年,一個(gè)朋友問我是不是每天晚上要把網(wǎng)頁上傳一遍,我奇怪問他為什么?(他那時(shí)不懂腳本編程),他說日期每天都要變的。也許今天很多人看了都是笑話(但他現(xiàn)在已經(jīng)是高手了)。

  5、 XML:擴(kuò)展標(biāo)記語言,盡管它與HTML名字很相似,但骨子里面的東西卻大不一樣,如果讓我說有什么用還真得想一想怎么給你說,但將來你一定會(huì)明白,它真的很有用。

  6、SQL SERVER:數(shù)據(jù)庫,你去銀行取錢,你的信息存在哪呢?就是在數(shù)據(jù)庫中。所以如果你開發(fā)的是管理系統(tǒng),那么數(shù)據(jù)庫是非常有用的。還有Oracle、DB2,這些你只要懂一個(gè)就行了,它們都是相通的。盡管數(shù)據(jù)庫系統(tǒng)往往是幕后英雄,紅花尚需綠葉襯。

  7、VS2005/VS2008與IIS設(shè)置:前者是搭建C#運(yùn)行的集成環(huán)境IDE,后者則是學(xué)習(xí)ASP.NET的環(huán)境搭建。

  8、C#:這是一門真正的語言,微軟比爾·蓋茨靠basic起家,直到現(xiàn)在.NET框架中都有VB.NET語言,但C#則更是其推薦語言,如果你懂點(diǎn)C++或者Java學(xué)習(xí)一定會(huì)很輕松,沒有也沒有關(guān)系,很重要的語言啊。

  9、Asp.NET:.NET體系不僅可以開發(fā)B/S模式的程序,還可以開發(fā)C/S模式的程序或者手機(jī)WinCE上的程序,當(dāng)然Asp.NET則是指B/S模式開發(fā)。

  10、Ajax:你一定有過在網(wǎng)上注冊(cè)過,發(fā)現(xiàn)有的是在你填入用戶名尚未登錄就提示有重復(fù)的登錄名,而有的直到你提交后才提示,你輸入的東西可能還要重新輸入,這就是前者利用了Ajax的妙用。

  上面列出的十項(xiàng)是不是已經(jīng)嚇住你了,如果你感覺太多了,不妨先學(xué)第6、8、9項(xiàng),其余的放到后面再學(xué)也可以。

  紙上得來終覺淺,絕知此事要躬行。  ——陸游

  學(xué)習(xí)每一門都要理論與實(shí)踐相結(jié)合,不要認(rèn)為這個(gè)簡單那個(gè)簡單,一看都明白,做起來眼高手低,唯有實(shí)踐才能有更深的體會(huì)。看看書做做題,這個(gè)時(shí)候你僅僅學(xué)會(huì)了造句而已,還要參考一些優(yōu)秀的文章和代碼,模仿著寫才能真正的提高。

  大多數(shù)人學(xué)習(xí)主要還是靠自學(xué)的,但學(xué)習(xí)方法還是至關(guān)重要的,有的人喜歡從第一頁一頁頁往后翻,一種可能是堅(jiān)持下來了,最后可能會(huì)“頓悟”,還有一種可能每次都是看前面幾十頁,不信你可以看一下,你的多少本書都是開了個(gè)頭,從側(cè)面看前面黑乎乎的(不是你手臟),而后面卻是嶄新的。最終也未能攻克。放棄了重新?lián)炱鹪俜艞墶?br/>  我推薦一種方法先囫圇吞棗,你想一下你做的第一道菜是如何做出來的(從沒有做飯經(jīng)驗(yàn)的朋友是沒有……),難道是一字不拉地研究了一遍菜譜嗎?NO,這就對(duì)了,計(jì)劃做什么樣的一道菜,然后挑相關(guān)章節(jié)選讀,有些難以讀懂的章節(jié)暫時(shí)跳過去,等以后再回來讀,你應(yīng)該有這種體會(huì),剛開始看時(shí)很難的東西,過一段時(shí)間再看卻變得如此易解。注意我說的是先囫圇吞棗,想成為廚師還是要好好研究菜譜了。但往往是萬事開頭難,等你熟悉了就可以在業(yè)界內(nèi)為解決實(shí)際問題而結(jié)交高手的時(shí)候了。絕不會(huì)像BBS中許多問的傻呆問題了。

  學(xué)而不思則罔,思而不學(xué)則殆。  ——孔子

  你在學(xué)習(xí)任何一門編程語言一定學(xué)過循環(huán)與條件,你會(huì)讓電腦計(jì)算1+2+3+…+100也是會(huì)用循環(huán)了;先給x賦值為9,會(huì)讓電腦判斷x的值大于5輸出“大于”,否則輸出“小于”,也是你會(huì)了。

  但是如果你模擬一下銀行取款的過程:在ATM上可以有機(jī)會(huì)輸入三次密碼,如果密碼正確則可以進(jìn)行取錢操作,密碼錯(cuò)誤提示重新輸入,一旦超過三次則卡被吞掉,相信你的功力已經(jīng)提升了不少,而且感覺編程與現(xiàn)實(shí)并不遙遠(yuǎn)。

(二)仿照真實(shí)項(xiàng)目

  經(jīng)過基礎(chǔ)知識(shí)的修煉,也許你已經(jīng)感覺自己差不多了,滿懷信心的去應(yīng)聘工作,結(jié)果卻碰壁了,問你有項(xiàng)目經(jīng)驗(yàn)嗎?你一臉的委屈:沒有上過班則沒有項(xiàng)目經(jīng)驗(yàn)?沒有項(xiàng)目不能上班?是不是陷入兩難境地?你可能說我在你們這實(shí)習(xí)吧,不要工錢都可以,你會(huì)發(fā)現(xiàn)這個(gè)機(jī)會(huì)對(duì)方一般都不會(huì)給你,別怨天尤人了,求人不如求己!

  實(shí)際上現(xiàn)在網(wǎng)上已經(jīng)有很多試用版,你完全可以比葫蘆畫瓢,你能真正的做一個(gè)項(xiàng)目,對(duì)前面知識(shí)的理解和運(yùn)用一定會(huì)更上一個(gè)臺(tái)階!

(三)提升

  不登高山,不知天之高也;不臨深溪,不知地之厚也。——荀子

  我們看電視,看到高手總是殺人于無形,編程也一樣,經(jīng)過第二階段,這回你可能已經(jīng)躊躇滿志了,呵呵,一不小心又碰壁了,但也許你幸運(yùn)的找到了一份工作,這是軟件企業(yè)急著用人,看你“孺子可教”,收留了你。如果不要你,一點(diǎn)也不奇怪,是別人比你優(yōu)秀!

  比如,添加一個(gè)客戶,你是不是在頁面上畫了幾個(gè)文本框和按鈕,然后再按鈕上寫了個(gè)事件就提交到數(shù)據(jù)庫了,能夠做得出來固然比不會(huì)要好,但是你面向?qū)ο罅藛幔刻嗵嗟娜藢W(xué)的是面向?qū)ο蟮恼Z言,但是寫的卻是面向過程的程序。關(guān)于學(xué)習(xí).NET體系的不妨看一下伍迷先生的《戲說面向?qū)ο蟪绦蛟O(shè)計(jì)C#版》、《大話設(shè)計(jì)模式》,我與伍迷先生不認(rèn)識(shí),沒有替他推銷圖書之意,只是他的創(chuàng)作與我心有戚戚焉,挺適合入門或者進(jìn)階者。然而由于很多面向?qū)ο笠约败浖こ獭㈨?xiàng)目管理、設(shè)計(jì)模式之類的書籍過于深?yuàn)W,或者國內(nèi)有些為了評(píng)高級(jí)職稱而胡拼亂湊的狗屁書籍,讓更多人忘而卻步。

  能不能更上一層樓,那就看你的造化了!

  不經(jīng)歷風(fēng)雨,哪能見彩虹!

五、學(xué)習(xí)編程的捷徑

  我們做任何事情都喜歡找捷徑,世上根本沒有捷徑!實(shí)際上不走彎路就是捷徑!

  我的這篇文章就是力爭讓你避免或少走彎路,也就成為了捷徑。

  當(dāng)然加入我們的QQ群(95472365)也是一個(gè)不錯(cuò)的方法!

  或者到“跟我學(xué)編程”網(wǎng)站轉(zhuǎn)轉(zhuǎn)也許有一個(gè)意外的收獲!

六、成功和失敗的唯一區(qū)別,就是堅(jiān)持與否

  “想起來一件有意思的事情,上大學(xué)時(shí),到了晚上11點(diǎn)就關(guān)燈,我是很喜歡看書,就跑到男廁所去看看技術(shù)方面的書籍,唉想想那時(shí)候的確是苦了一點(diǎn)兒,不過沒有當(dāng)時(shí)的努力,怎么可能就有今天的我呢,雖然比上不足,比下還是蠻有余的,知足常樂,何必跟自己過不去呢。”

  這是從網(wǎng)上看到的一位,與我當(dāng)年頗為相似。不過似乎我比他幸運(yùn)一些,圖書館里面老書居多,平時(shí)省吃儉用買一些書,盡管父親告訴我:孩子,買書只管買,不要為了學(xué)習(xí)舍不得花錢!所以過早的學(xué)習(xí)了C語言、數(shù)據(jù)結(jié)構(gòu)(那時(shí)候教學(xué)語言Pascal幾乎一統(tǒng)天下),有一次去圖書館借一本新書,圖書館管理員認(rèn)為我看不懂,就是不借給我(當(dāng)時(shí)恨透她了,這個(gè)老太太,太可惡了)。我固執(zhí)地說可以看懂,這位老師說明天你來一下,第二天接到了一份試卷,所幸我答的不錯(cuò),后來我借書幾乎不限本數(shù),因?yàn)槔蠋熤罆馁Y源不多,總是借給需要的學(xué)生和老師,那種恨瞬間變?yōu)橐环N感動(dòng)。

  再后來,由于前面打的基礎(chǔ),班主任(輔導(dǎo)員)把我推薦給了我們學(xué)校一名權(quán)威,這是一名我們當(dāng)時(shí)只能仰視的學(xué)者,自己比較愚笨,此后得到導(dǎo)師一年有余的指導(dǎo),平生受益匪淺。自此我也幾乎是在宿舍熄燈后才從教研室回到宿舍,故而在靜謐的晚上經(jīng)常有繁星或明月相伴,工作這么多年則很少看到星星,很懷念大學(xué)那段時(shí)光。

]]>
關(guān)注S3C6410開發(fā)板的Linux2.6.28/winCE6.0系統(tǒng)版本http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1800&Page=1wangxinxin2010-11-26 9:24:49ARMSYS 6410開發(fā)板充分展示了三星S3C6410處理器在視頻媒體編解碼、2D/3D圖形加速、顯示處理和縮放等方面的性能優(yōu)勢(shì),并提供了LCD接口、TVout接口、攝像頭輸入接口、4路串口、1路紅外口、2路SD卡接口、1路CF卡接口、1路10/100M網(wǎng)口、1路USB2.0-OTG,1路USB Host,具有更高的主頻和更豐富外設(shè),能適用于對(duì)性能和處理能力有更高要求的嵌入式系統(tǒng)應(yīng)用場合。

ARMSYS 6410開發(fā)套件由ARMSYS 6410核心板+擴(kuò)展板構(gòu)成,用戶可以自由選配各種尺寸和分辨率的液晶屏、130萬攝像頭、無線網(wǎng)卡等配套模塊。
秉承立宇泰一 貫的精良品質(zhì),充分展現(xiàn)了S3C6410處理器的各項(xiàng)功能,并在設(shè)計(jì)上著重考慮了實(shí)用性和產(chǎn)品化設(shè)計(jì),采用結(jié)構(gòu)輕巧緊湊的一體機(jī)模式,不僅適合開發(fā)和研究的需要,也可以非常容易地集成到用戶系統(tǒng)上。衷心希望ARMSYS6410能帶給每一位用戶優(yōu)越的性能體驗(yàn)!

硬件配置如下:
 
圖片點(diǎn)擊可在新窗口打開查看

1,CPU:三星S3C6410處理器,ARM1176JZF-S內(nèi)核,667MHz系統(tǒng)頻率穩(wěn)定工作;

2,F(xiàn)lash Memory:256MB Nand Flash,可定制128M-2G容量;

3,SDRAM:128M Bytes mDDR內(nèi)存,運(yùn)行速133MHz,可以升級(jí)到256M Bytes DDR內(nèi)存;

4,時(shí)鐘晶振:12MHz系統(tǒng)外部時(shí)鐘源;32.768KHz的RTC時(shí)鐘源;27MHz的TV Encoder時(shí)鐘源;48MHz的USB OTG時(shí)鐘源;

5,核心板接口:采用320針1.27間距,板子尺寸約68mm×42mm;

6,電源:采用獨(dú)立1.2V和3.3V電源芯片提供核心板各路電源。

7,Norflash:1M Bytes NorFlash,采用29LV800DB芯片,可以用來啟動(dòng)系統(tǒng),支持USB下載;

8,8位撥碼開關(guān),用來配置系統(tǒng)啟動(dòng)方式;

9,4路UART接口:可通過2個(gè)8位撥碼開關(guān)選擇輸出TTL電平或RS-232電平;

10,紅外接口,支持IrDA1.1協(xié)議,可以無線地向支持IrDA的設(shè)備無線連接來實(shí)現(xiàn)信息資源的共享;

11,CF卡接口,支持CF3.0規(guī)格CF卡;

12,IDE接口,支持掛接硬盤; 

13,USB HOST,支持USB1.1協(xié)議;

14,USB OTG,支持USB 2.0協(xié)議;

15,JTAG接口,標(biāo)準(zhǔn)20 pin JTAG接口;

16,9個(gè)用戶按鍵,功能上、下、左、右、確定、取消和返回等(用戶也可自定義其功能);

17,復(fù)位按鍵,采用專用的復(fù)位芯片;

18,指示燈:4個(gè)用戶LED指示燈; 2個(gè)電源指示燈;

19,SD/MMC接口:兩個(gè)高速SD/MMC接口,其中一個(gè)可支持8位模式。可以實(shí)現(xiàn)SD Memory功能和SDIO功能;作為SD Memory最大可以支持8GB容量;

20,攝像頭接口:支持ITU-R BT 601/656 8位模式,可以和我公司130萬像素?cái)z像頭連接使用;

21,LCD接口:一個(gè)50針LCD、觸摸屏插針接口,方便連接我公司各種類型的LCD模塊相連接;

22,AC97音頻接口:包括一路音頻輸出、一路音頻輸入和一路麥克風(fēng)輸入;板上帶有兩個(gè)1W喇叭;

23,10/100Mbps以太網(wǎng)接口:采用集成隔離變壓器的RJ45接口;

24,視頻輸出接口:一路TV Out接口、一路S-Video接口;

25,2路高速SPI接口;

26,1路I2C接口;

27,擴(kuò)展接口,引出數(shù)據(jù)、部分地址總線,部分控制總線、I/O信號(hào)線、AD信號(hào)線。


]]>
WINCE驅(qū)動(dòng)開發(fā)之DMA的使用http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1799&Page=1wangxinxin2010-11-26 9:22:53以下是MSDN中的說法:

The Windows CE NDIS implementation does not support direct memory access (DMA). Do not use the NdisSetupDmaTransfer, NdisCompleteDmaTransfer, NdisMRegisterDmaChannel, NdisMDeregisterDmaChannel, NdisMAllocateMapRegisters, NdisMFreeMapRegisters, NdisMReadDmaCounter, and NdisGetSharedDataAlignment functions. 

Use the NdisMAllocateSharedMemory and NdisMFreeSharedMemory functions for PCI bus master DMA transfers. 


具體如何實(shí)現(xiàn)DMA呢?

在microsoft windows CE device driver kit中有一節(jié)是:Implementing DMA for NDIS Miniport Drivers 
專門提到了這個(gè)問題,當(dāng)前ce還沒有自己的DMA機(jī)制,然而開發(fā)人員可以在他們自己的小端口卡驅(qū)動(dòng)程序中實(shí)現(xiàn)相同的功能,但是寫的太簡單了

Implementing DMA for NDIS Miniport Drivers
DMA is important for efficient networking because it enables the layers in 
the networking architecture to share data without first copying that data

two categories of DMA: slave DMA and busmaster DMAB
 
Slave DMA
Slave DMA is appropriate for OEMs because it requires a block of memory that 
is pre-allocated in the device memory map of the Windows CE–based platform. 
Miniport drivers can map that block of physical memory to the driver’virtual
memory space, and then use the VirtualAlloc and VirtualCopy functions to move 
data in and out of that space
 
busmaster DMA 
To receive data, the driver allocates a shared memory block, transfers the 
data to buffers within that block, and uses NDIS functions to indicate that a 
packet has arrived. To send data, the driver uses the LockPages and 
UnlockPages functions to map the virtual memory to device memory, informs the 
NIC of the addresses of the data, and instructs the NIC to send the data. 
This method can be faster for larger data block sizes.

后來發(fā)MAIL給一位曾經(jīng)遇到此問題的朋友,回復(fù)如下:

事實(shí)上在使用DMA是的關(guān)鍵是得到一個(gè)連續(xù)的物理地址空間,然后將該空間的物理地址放入DMA控制器的源地址或者目的地址寄存器中(根據(jù)你使用DMA的方向決定);
然后等待DMA中斷;
由于DMA使用的是物理地址但是在wince中只能使用虛擬地址,所以在DMA中斷產(chǎn)生之后如需分析數(shù)據(jù)請(qǐng)使用虛擬地址;
特別提示參考一下的文章:
 DMA的使用
1、 芯片DMA的使用要點(diǎn):
AK3224芯片的DMA使用中,RAM的地址作為DMA傳輸?shù)哪繕?biāo)地址、源地址,必須要4字節(jié)對(duì)齊。而且DMA的操作長度以內(nèi)的RAM地址,必須連續(xù)。
不過在使用中發(fā)現(xiàn):Nandflash驅(qū)動(dòng)中RAM地址作為目標(biāo)地址時(shí),只需要2字節(jié)對(duì)齊。RAM地址作為源地址可不需對(duì)齊。(其他情況需要逐一驗(yàn)證)
2、 wince中的DMA使用:
根據(jù)DMA一次操作的RAM地址必須連續(xù)的特性,在驅(qū)動(dòng)DMA使用時(shí),我們需要確保虛擬地址映射的物理地址是連續(xù)的。有3個(gè)途徑:
1:數(shù)據(jù)區(qū)地址是由應(yīng)用層或者其他進(jìn)程、線程傳入的,驅(qū)動(dòng)并不知道其虛擬地址對(duì)應(yīng)的物理地址是否一直連續(xù)。
由于wince的內(nèi)存申請(qǐng),是以4K字節(jié)為一個(gè)頁,一段數(shù)據(jù)的內(nèi)存申請(qǐng)可能跨越多個(gè)頁。因此,只要數(shù)據(jù)區(qū)長度大于1字節(jié),就有可能其物理地址是跨越的、不連續(xù)的。為了確保DMA操作,我們必須查詢這段數(shù)據(jù)區(qū)在RAM上的物理分布。
首先,得到數(shù)據(jù)區(qū)所在的虛擬頁: VirPageStart = (ULONG)pSourceBuffer & 0xFFFFF000;
其次,得到數(shù)據(jù)區(qū)在頁內(nèi)的偏移地址 :offset = (ULONG)pSourceBuffer & 0x0FFF;
計(jì)算數(shù)據(jù)區(qū)是否跨越頁段
if(offset + NumberOfBytes > 4096)
PageSize = WCE_UNIFORM_SIZE - offset;       //整個(gè)數(shù)據(jù)跨越此頁,則DMA傳輸需要分多個(gè)部分,一次一個(gè)頁段的傳
else
PageSize = NumberOfBytes;                //數(shù)據(jù)區(qū)沒有跨越頁
由得到的頁地址,查詢映射的物理地址。
if(!LockPages((LPVOID)VirPageStart, 4096, &TransAddr, LOCKFLAG_READ))
{
        //異常處理
}
UnlockPages((LPVOID)VirPageStart, 4096);
得到了映射的物理地址TransAddr后,根據(jù)RAM是目標(biāo)地址還是源地址,做進(jìn)一步的處理。
假設(shè)一個(gè)數(shù)據(jù)區(qū)作為DMA源地址,大小為9K。在虛擬地址首頁的偏移為4K。那么它必然跨越3個(gè)頁段。
首先查詢第一頁的物理地址發(fā)送,第一個(gè)頁的2K數(shù)據(jù)。然后查詢第二頁的物理地址,發(fā)送4K數(shù)據(jù)。最后查詢第三頁的物理地址,發(fā)送3K數(shù)據(jù)。

2:數(shù)據(jù)區(qū)的申請(qǐng)可以使用AllocPhysMem函數(shù)申請(qǐng)。
LPVOID AllocPhysMem(
DWORD cbSize,                 參數(shù)1:數(shù)據(jù)區(qū)大小
DWORD fdwProtect,             參數(shù)2:保護(hù)標(biāo)記
DWORD dwAlignmentMask,         參數(shù)3:0(default system)
DWORD dwFlags,                參數(shù)4:0(Reserved for future use)
PULONG pPhysicalAddress         參數(shù)5:得到數(shù)據(jù)區(qū)對(duì)應(yīng)的物理地址
);
AllocPhysMem函數(shù)返回值為指向申請(qǐng)后的虛擬地址指針。
如:pSerialHead->RxBufferInfo.RxCharBuffer =            //alloc physical memory
AllocPhysMem(pSerialHead->RxBufferInfo.Length + 16, PAGE_READWRITE, 0, 0, &RX_PhyAddr);
由于此函數(shù)必定申請(qǐng)到一片連續(xù)的物理地址,因此pSerialHead->RxBufferInfo.RxCharBuffer的使用不再需要查詢是否跨越多個(gè)頁段。
但是,AllocPhysMem函數(shù)申請(qǐng)的物理地址可能會(huì)跨越多個(gè)RAM CHIP。因此,在使用1片以上RAM芯片的系統(tǒng)中,依然需要查詢是否跨越CHIP。
       AllocPhysMem函數(shù)使用后,需要使用FreePhysMem函數(shù)進(jìn)行釋放。
3:數(shù)據(jù)區(qū)可以在系統(tǒng)config.bib文件中,預(yù)先定義好一片連續(xù)、不跨越CHIP的RAM空間。
如下,系統(tǒng)保留了虛擬地址0x80024000開始,大小為0x3000的一段RAM。
SER_DMA                80024000 00003000 RESERVED
那么驅(qū)動(dòng)DMA使用中,不再需要對(duì)這段內(nèi)存,進(jìn)行任何的查詢動(dòng)作。我們只需要在進(jìn)程空間中做映射即可。
pSerialHead->RxBufferInfo.RxCharBuffer = VirtualAlloc(0, RX_PhySize, MEM_RESERVE, PAGE_NOACCESS);
    if (pSerialHead->RxBufferInfo.RxCharBuffer == NULL)
    {
        DEBUGMSG(ZONE_ERROR, (TEXT("COM_Init:: VirtualAlloc failed!\r\n")));
        return(NULL);
    }
    else
    {
        if (!VirtualCopy((PVOID)pSerialHead->RxBufferInfo.RxCharBuffer, (PVOID)(RX_PhyAddr),
            RX_PhySize, (PAGE_READWRITE | PAGE_NOCACHE)))
        {
           DEBUGMSG(ZONE_ERROR, (TEXT("COM_Init:: VirtualCopy failed!\r\n")));
           return(NULL);
        }
    }
上面這段程序中,先使用函數(shù)VirtualAlloc,在進(jìn)程空間中申請(qǐng)一段保留的虛擬地址空間。然后使用VirtualCopy,把需要使用的物理地址空間,映射到已經(jīng)申請(qǐng)好的虛擬地址上。使用完畢,必須使用函數(shù)VirtualFree進(jìn)行釋放。
LPVOID VirtualAlloc(
LPVOID lpAddress,                  
DWORD dwSize,
DWORD flAllocationType,
DWORD flProtect
);
BOOL VirtualCopy(
LPVOID lpvDest,
LPVOID lpvSrc,
DWORD cbSize,
DWORD fdwProtect
);
BOOL VirtualFree(
LPVOID lpAddress,
DWORD dwSize,
DWORD dwFreeType
);

]]>
開帖討論WINCE下24位色顯示瓶頸http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1798&Page=1wangxinxin2010-11-26 9:18:52有搞過的朋友,指點(diǎn)指點(diǎn)




24BPP圖片顯示慢的原因:讀寫內(nèi)存的速度限制
16BPP 30-40ms之間
另外,輸出24BPP圖片好像有經(jīng)過二次轉(zhuǎn)化,16BPP就轉(zhuǎn)化一次
即16BPP輸出圖片,只要一次寫LCD Buffer
24BPP好像是將3字節(jié)排列的源文件圖片,轉(zhuǎn)化為4字節(jié)格式的保存在中轉(zhuǎn)地址,然后從中轉(zhuǎn)地址轉(zhuǎn)化成最終顯示圖片,寫入LCD buffer,而第二次的LCD buffer地址可能為unchche的,將其cache一下,和16BPP的顯示速度就相當(dāng)了


例如:
Volatile int x,y;
for(y=0;y<272;y++)
{
for(x=0;x<480;x++);
}

實(shí)測用時(shí):14.3ms!!!其中,變量是放在堆棧中,對(duì)變量的處理時(shí)間:(STR*3+LDR*4)*272*480=14.30ms-1.94ms=12.36ms

反匯編如下:
.text:10001134 SUB SP, SP, #8
.text:10001138 MOV R2, #0
.text:1000113C STR R2, [SP,#8+var_4] //y值存堆棧[SP,#8+var_4]
.text:10001140 B loc_10001170
.text:10001140
========================循環(huán)開始========================
.text:10001144 ; ---------------------------------------------------------------------------
.text:10001144
.text:10001144 loc_10001144 ; CODE XREF: LCD_TST+44j
.text:10001144 STR R2, [SP,#8+var_8] //x值存堆棧[SP,#8+var_8]
.text:10001148 B loc_10001158
.text:10001148
.text:1000114C ; ---------------------------------------------------------------------------
.text:1000114C
.text:1000114C loc_1000114C ; CODE XREF: LCD_TST+2Cj
.text:1000114C LDR R3, [SP,#8+var_8] //從堆棧取出x
.text:10001150 ADD R3, R3, #1 //x++
.text:10001154 STR R3, [SP,#8+var_8] //x值存入堆棧
.text:10001154
.text:10001158
.text:10001158 loc_10001158 ; CODE XREF: LCD_TST+14j
.text:10001158 LDR R3, [SP,#8+var_8] //堆棧取出x
.text:1000115C CMP R3, #0x1E0 //x<480?
.text:10001160 BLT loc_1000114C //x<480則跳到114C處
.text:10001160
.text:10001164 LDR R3, [SP,#8+var_4] //取出y
.text:10001168 ADD R3, R3, #1 //y++
.text:1000116C STR R3, [SP,#8+var_4] //y存入堆棧
.text:1000116C
.text:10001170
.text:10001170 loc_10001170 ; CODE XREF: LCD_TST+Cj
.text:10001170 LDR R3, [SP,#8+var_4] //從堆棧取出y
.text:10001174 CMP R3, #0x110 //y<272?
.text:10001178 BLT loc_10001144 //y<272,則跳到1144處
.text:10001178
====================循環(huán)結(jié)束============================
.text:1000117C ADD SP, SP, #8
.text:10001180 BX LR


]]>
WinCE開始菜單中添加應(yīng)用程序http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1797&Page=1wangxinxin2010-11-26 9:14:47先說一下原理,其實(shí)在WinCE啟動(dòng)以后,點(diǎn)擊Start,然后點(diǎn)擊Programs,里面所能看到的應(yīng)用其實(shí)也都是以文件的形式存放的,它們存放在\Windows\Programs目錄下面,都是一些快捷方式文件,這些快捷方式文件連接了真正的應(yīng)用程序,就這么簡單。
理解了這個(gè)原理,也就清楚該怎么做了,步驟如下:

1. 更改project.bib文件,添加應(yīng)用程序,這里以Hello, world為例如下:

hello.exe     d:\WINCE600\OSDesigns\Emulator\Emulator\RelDir\DeviceEmulator_ARMV4I_Release\hello.exe           NK S


2. 為該應(yīng)用程序創(chuàng)建一個(gè)快捷方式文件,可以新建一個(gè)*.txt文件,然后在里面添加:18#\windows\hello.exe,其中18表示后面的字符數(shù),然后關(guān)閉該txt文件,重命名為hello.lnk,并將該文件拷貝到WinCE工程的release目錄下面。


3. 更改project.bib文件,包含hello.lnk文件,如下:

hello.lnk     d:\WINCE600\OSDesigns\Emulator\Emulator\RelDir\DeviceEmulator_ARMV4I_Release\hello.lnk           NK SH

4. 打開project.dat文件,將hello.lnk重新定位到\Windows\Programs目錄下面,如下:

Directory("\Windows\Programs"):-File("HELLO.lnk", "\Windows\hello.lnk")

5. 將project.dat和project.bib拷貝到工程的release目錄下面,然后Makimge就可以了。 

最后運(yùn)行WinCE的時(shí)候,應(yīng)該可以看到應(yīng)用程序已經(jīng)被添加到StartMenu的Programs中了,如圖:

通過這個(gè)例子可以看出,BIB中包含的文件在Makeimg以后,都會(huì)放在WinCE系統(tǒng)的\Windows目錄下面,而我們可以通過更改DAT文件來將他們重定向到另一個(gè)文件夾中。通過這種方式可以添加程序到Programs中,但是如果想改StartMenu本身,就需要更改源代碼了,在\WINCE600\PUBLIC\SHELL\OAK\HPC\EXPLORER\TASKBAR\stmenu.cpp下面。


]]>
WinCE文件目錄定制及內(nèi)存調(diào)整http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1796&Page=1wangxinxin2010-11-26 9:14:03MUI是指多語言的支持,可以在WinCE系統(tǒng)中支持多種語言,并根據(jù)需要進(jìn)行切換。下面介紹一下具體的實(shí)現(xiàn):

1. 添加多種語言:

創(chuàng)建一個(gè)WinCE工程,然后在”Solution Explorer”中右擊工程,選擇”Properties”,會(huì)彈出一個(gè)對(duì)話框。在左側(cè)的列表中選擇”Local”,在右側(cè)選擇所要支持的語言,這里我選擇了French,Japanese,Chinese(PRC)和English四種語言。在”Default Locale:”中選擇系統(tǒng)的默認(rèn)語言,這里選擇的是英語。如圖:

2. 添加MUI組件

在”Catalog Item View”中選擇支持MUI的組件,選擇”Core OS”->”CEBASE”->”International”->”Multilingual User Interface(MUI)”,如圖:

在上面選擇了French,Japanese,English和Chinese四種語言,如果要想WinCE能夠正確顯示,還要選擇相應(yīng)的字體。在這里只需為Chinese和Japanese添加字體。選擇”Core OS”->”CEBASE”->”International”->”Locale Specify Support”->”Chinese(Simplified)”->”Fonts”->”SimSun & NSimSun”->”SimSun & NSimSun”來添加中文字體,同樣的方法在”Locale Specify Support”下找到”Japanese”然后添加日語字體。

3. 編譯MUI工程


重新編譯工程。編譯成功后,打開工程的release目錄,調(diào)用createmui命令來創(chuàng)建多種語言的資源文件,每種語言對(duì)應(yīng)一個(gè)LCID,可以在WinCE的幫助文檔中查到,如下:

English:0409

Chinese(PRC):0804

French:040C

Japanese:0411

命令如下:

createmui 0409,0804,040C,0411

運(yùn)行成功后會(huì)生成一個(gè)MultiUI.bib文件,打開該文件,拷貝所有內(nèi)容到common.bib文件的末尾。MutiUI.bib文件中可能包含k.coredll.dll.xxx,在common.bib文件中刪除所有的k.coredll.dll.xxx項(xiàng)。

最后重新Makeimg就可以了。

4. 運(yùn)行測試

下載并運(yùn)行WinCE,可以看到默認(rèn)的語言是英文的。選擇”start”->”setting”->”Control Panel”彈出控制面板,然后選擇”Regional Settings”,再選擇”User Interface Language”,選擇要切換的語言,比如Chinese(PRC),如圖:

重新啟動(dòng)目標(biāo)板,如果你用WinCE模擬器的話,在菜單中選擇File,然后選擇Reset,選擇Soft來重新啟動(dòng)。重起以后,界面就會(huì)變成中文的WinCE系統(tǒng)了。

]]>
WinCE系統(tǒng)USB Mass Storage實(shí)現(xiàn)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1795&Page=1wangxinxin2010-11-26 9:13:02WinCE支持遠(yuǎn)程桌面功能,可以在PC端訪問目標(biāo)設(shè)備的WinCE桌面。這個(gè)功能在調(diào)試的時(shí)候很有用。有些時(shí)候,你的目標(biāo)板不帶顯示設(shè)備,這時(shí)你想訪問目標(biāo)板的WinCE系統(tǒng)感覺很不爽,畢竟習(xí)慣了桌面操作。通過WinCE遠(yuǎn)程桌面,你可以在PC上面訪問目標(biāo)板的WinCE桌面并進(jìn)行操作。

下面來介紹一下具體步驟:

1. 選擇支持WinCE遠(yuǎn)程桌面的組件:

在WinCE的工程中選擇”Core OS”->”CEBASE”->”Core OS Services”->”Debugging Tools”->”Remote Display Application”,如下圖:

在這里建議同時(shí)添加telnet組件,在”Core OS”->”CEBASE”->”Communication Services and Networking”->”Servers”->”Telnet Server”。由于目標(biāo)板可能沒有任何輸入輸出設(shè)備,所以添加Telnet組件可以在系統(tǒng)啟動(dòng)以后,登陸Telnet來執(zhí)行命令。


2. 配置遠(yuǎn)程桌面主機(jī)IP地址:

打開WinCE工程的注冊(cè)表文件project.reg,然后添加下面的內(nèi)容。

[HKEY_LOCAL_MACHINE\SOFTWARE\CERDISP]

"Hostname"="192.168.0.88"

其中Hostname為PC機(jī)的IP地址,也可以是計(jì)算機(jī)名。

還可以同時(shí)添加Telnet注冊(cè)表配置,如下:

[HKEY_LOCAL_MACHINE\COMM\TELNETD]

"IsEnabled "=dword:1

"UseAuthentication"=dword:0

該配置實(shí)現(xiàn)了無需身份驗(yàn)證,直接登錄Telnet的功能。

3. 重新編譯,下載運(yùn)行WinCE:

由于添加了新的WinCE組件,需要重新編譯WinCE工程。編譯成功后,可以下載到目標(biāo)板上面運(yùn)行。

4. 啟動(dòng)PC端遠(yuǎn)程桌面程序:

WinCE在目標(biāo)板運(yùn)行以后,首先在\WINCE600\Public\Common\Oak\Bin\I386目錄下找到cerhost.exe,然后運(yùn)行。運(yùn)行后選擇File,然后選擇Connect,在彈出的對(duì)話框中輸入目標(biāo)板的IP地址,然后點(diǎn)擊OK等待連接。

5. 啟動(dòng)目標(biāo)板遠(yuǎn)程桌面程序:

首先通過Telnet登錄目標(biāo)板,然后再命令行中輸入如下命令:

Cerdisp –c

這時(shí),就可以在PC上的cerhost界面中看到目標(biāo)板WinCE的桌面了,而且可以通過鼠標(biāo)鍵盤進(jìn)行操作,如圖:

其實(shí)很簡單,要注意的是首先運(yùn)行PC端的cerhost,它應(yīng)該是Server。然后運(yùn)行目標(biāo)板上的Cerdisp,這個(gè)應(yīng)該是Client

]]>
WinCE應(yīng)用開發(fā)——觸摸屏輸入http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1794&Page=1wangxinxin2010-11-26 9:10:54一,信息

觸摸屏信息同鼠標(biāo)信息,不過只有WM_LBUTTONDOWNWM_LBUTTONUP WM_MOUSEMOVE 三種。

二,捕捉函數(shù)

BOOL GetMouseMovePoints (PPOINT pptBuf, UINT nBufPoints,

UINT *pnPointsRetrieved);

三,實(shí)例

PenTrac.h
#define dim(x) (sizeof(x) / sizeof(x[0]))
struct decodeUINT {                             // Structure associates
    UINT Code;                                  // messages 
                                                // with a function. 
    LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM);
}; 
struct decodeCMD {                              // Structure associates
    UINT Code;                                  // menu IDs with a 
    LRESULT (*Fxn)(HWND, WORD, HWND, WORD);     // function.
};
HWND InitInstance (HINSTANCE, LPWSTR, int);
int TermInstance (HINSTANCE, int);
LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM);
LRESULT DoPaintMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoMouseMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoDestroyMain (HWND, UINT, WPARAM, LPARAM);
PenTrac.cpp
#include <windows.h>                 // For all that Windows stuff
#include "pentrac.h"                 // Program-specific stuff
const TCHAR szAppName[] = TEXT ("PenTrac");
HINSTANCE hInst;                     // Program instance handle
const struct decodeUINT MainMessages[] = {
    WM_LBUTTONDOWN, DoMouseMain,
    WM_MOUSEMOVE, DoMouseMain,
    WM_DESTROY, DoDestroyMain,
};
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPWSTR lpCmdLine, int nCmdShow) {
    MSG msg;
    int rc = 0;
    HWND hwndMain;
    hwndMain = InitInstance (hInstance, lpCmdLine, nCmdShow);
    if (hwndMain == 0)
        return 0x10;
    while (GetMessage (&msg, NULL, 0, 0)) {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
    return TermInstance (hInstance, msg.wParam);
}
HWND InitInstance (HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow) {
    WNDCLASS wc;
    HWND hWnd;
#if defined(WIN32_PLATFORM_PSPC)
    hWnd = FindWindow (szAppName, NULL);
    if (hWnd) {
        SetForegroundWindow ((HWND)(((DWORD)hWnd) | 0x01));    
        return 0;
    }
#endif
    hInst = hInstance;
    wc.style = 0;                             // Window style
    wc.lpfnWndProc = MainWndProc;             // Callback function
    wc.cbClsExtra = 0;                        // Extra class data
    wc.cbWndExtra = 0;                        // Extra window data
    wc.hInstance = hInstance;                 // Owner handle
    wc.hIcon = NULL,                          // Application icon
    wc.hCursor = LoadCursor (NULL, IDC_ARROW);// Default cursor
    wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wc.lpszMenuName =  NULL;                  // Menu name
    wc.lpszClassName = szAppName;             // Window class name
    if (RegisterClass (&wc) == 0) return 0;
    hWnd = CreateWindowEx (WS_EX_NODRAG, szAppName, TEXT ("PenTrac"),
                         WS_VISIBLE | WS_CAPTION | WS_SYSMENU,
                         CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
                         CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
    if (!IsWindow (hWnd)) return 0;
    ShowWindow (hWnd, nCmdShow);
    UpdateWindow (hWnd);
    return hWnd;
}
int TermInstance (HINSTANCE hInstance, int nDefRC) {
    return nDefRC;
}
LRESULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam,
                              LPARAM lParam) {
    INT i;
    for (i = 0; i < dim(MainMessages); i++) {
        if (wMsg == MainMessages[i].Code)
            return (*MainMessages[i].Fxn)(hWnd, wMsg, wParam, lParam);
    }
    return DefWindowProc (hWnd, wMsg, wParam, lParam);
}
LRESULT DoMouseMain (HWND hWnd, UINT wMsg, WPARAM wParam, 
                     LPARAM lParam) {
    POINT pt[64];
    POINT ptM;
    UINT i, uPoints = 0;
    HDC hdc;
    ptM.x = LOWORD (lParam);
    ptM.y = HIWORD (lParam);
    hdc = GetDC (hWnd);
    if (wMsg == WM_MOUSEMOVE) {
        if (wParam & MK_SHIFT) 
            GetMouseMovePoints (pt, 64, &uPoints);
        for (i = 0; i < uPoints; i++) {
            pt[i].x /= 4;  // Convert move pts to screen coords
            pt[i].y /= 4;
            MapWindowPoints (HWND_DESKTOP, hWnd, &pt[i], 1);
            SetPixel (hdc, pt[i].x,   pt[i].y, RGB (255, 0, 0));
            SetPixel (hdc, pt[i].x+1, pt[i].y, RGB (255, 0, 0));
            SetPixel (hdc, pt[i].x,   pt[i].y+1, RGB (255, 0, 0));
            SetPixel (hdc, pt[i].x+1, pt[i].y+1, RGB (255, 0, 0));
        }
    }
    SetPixel (hdc, ptM.x, ptM.y, RGB (0, 0, 0));
    SetPixel (hdc, ptM.x+1, ptM.y, RGB (0, 0, 0));
    SetPixel (hdc, ptM.x, ptM.y+1, RGB (0, 0, 0));
    SetPixel (hdc, ptM.x+1, ptM.y+1, RGB (0, 0, 0));
    ReleaseDC (hWnd, hdc);
    Sleep(25);
    return 0;
}
LRESULT DoDestroyMain (HWND hWnd, UINT wMsg, WPARAM wParam,
                       LPARAM lParam) {
    PostQuitMessage (0);
    return 0;
}

clip_image001

]]>
WinCE Display驅(qū)動(dòng)開發(fā)介紹http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1793&Page=1wangxinxin2010-11-26 9:06:22       1. Display驅(qū)動(dòng)模型
        WinCE下的Display驅(qū)動(dòng)直接由GWES模塊管理,它會(huì)直接被GWES模塊管理和調(diào)用。Display驅(qū)動(dòng)實(shí)際上也是分層的,其中包括GPE庫,該庫處理一些默認(rèn)的繪圖,相當(dāng)于驅(qū)動(dòng)的MDD層。用戶只需要開發(fā)和硬件相關(guān)的PDD層驅(qū)動(dòng)就可以了。在WinCE中,整個(gè)架構(gòu)如圖:
圖片點(diǎn)擊可在新窗口打開查看
如圖,Application為一個(gè)應(yīng)用程序,該程序會(huì)調(diào)用圖形設(shè)備接口函數(shù)(GDI),而GDI函數(shù)是由Coredll.dll模塊導(dǎo)出的。Coredll.dll會(huì)將函數(shù)調(diào)用的參數(shù)打包,然后觸發(fā)對(duì)另一個(gè)進(jìn)程的本地過程調(diào)用(LPC),所有的繪圖和開窗口的工作被傳給內(nèi)核中GWES模塊。GWES模塊被稱為圖形,窗口和事件子系統(tǒng),專門處理圖形輸出和用戶輸入等事件及相關(guān)的所有交互。GWES模塊會(huì)調(diào)用Display驅(qū)動(dòng)完成對(duì)顯示硬件的操作。Display驅(qū)動(dòng)由GPE和DDL.dll組成,GPE完成基本的默認(rèn)繪圖工作,而DDI.dll實(shí)際上從GPE類上繼承而來的,并實(shí)現(xiàn)了相關(guān)的顯示硬件的操作。]]>
SD card技術(shù)了解并WINCE下SDHC驅(qū)動(dòng)開發(fā)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1792&Page=1wangxinxin2010-11-26 9:05:34

SD Card Driver on ADS Summary

http://www.cnblogs.com/songtitan/archive/2007/02/11/647293.html

了解SD card

SD是Secure Digital Card卡的簡稱,直譯成漢語就是“安全數(shù)字卡”,是由日本松下公司、東芝公司和美國SANDISK公司共同開發(fā)研制的全新的存儲(chǔ)卡產(chǎn)品。SD存儲(chǔ)卡是一個(gè)完全開放的標(biāo)準(zhǔn)(系統(tǒng)),多用于MP3、數(shù)碼攝像機(jī)、數(shù)碼相機(jī)、電子圖書、AV器材等等,尤其是被廣泛應(yīng)用在超薄數(shù)碼相機(jī)上。SD卡在外形上同Multimedia Card卡保持一致,大小尺寸比MMC卡略厚,容量也大很多。并且兼容MMC卡接口規(guī)范。不由讓人們懷疑SD卡是MMC升級(jí)版。另外,SD卡為9引腳,目的是通過把傳輸方式由串行變成并行,以提高傳輸速度。它的讀寫速度比MMC卡要快一些,同時(shí),安全性也更高。SD卡最大的特點(diǎn)就是通過加密功能,可以保證數(shù)據(jù)資料的安全保密。它還具備版權(quán)保護(hù)技術(shù),所采用的版權(quán)保護(hù)技術(shù)是DVD中使用的CPRM技術(shù)(可刻錄介質(zhì)內(nèi)容保護(hù))。

 

規(guī)格


主要特點(diǎn):

1.精巧而且超薄

SD記憶卡的尺寸只有24毫米x 32毫米 x 2.1毫米。作為“橋梁媒體”的重要特征,它精致小巧,方便您在不同設(shè)備上使用。兼容SD記憶卡的設(shè)備可以采用解碼器軟件來播放音樂、影像短片以及更多其他類型的內(nèi)容,無需像CD播放機(jī)或DVD播放機(jī)那樣采用驅(qū)動(dòng)裝置。從而使設(shè)備的外形更加精巧,同時(shí)也賦予了產(chǎn)品設(shè)計(jì)者發(fā)揮自由創(chuàng)意的全新空間。由于消除了播放音樂時(shí)的跳音現(xiàn)象,提高了播放的穩(wěn)定性。

2.大容量栽體

目前,SD記憶卡已經(jīng)具備各種容量可供選擇,同時(shí),2GB、4GB和8GB的SDHC也出現(xiàn)了。

3.高速數(shù)據(jù)傳輸

為了提供快速響應(yīng)和容易處理數(shù)字內(nèi)容,SD記憶卡可以用每秒10MB的速率寫入和讀取數(shù)據(jù)。當(dāng)其能夠用于遠(yuǎn)程通信終端,直接下載內(nèi)容時(shí),記憶卡的高速傳送能力將可使存取時(shí)間和通信成本降至最低,同時(shí)可減輕網(wǎng)絡(luò)壓力。

4.擁有版權(quán)保護(hù)功能

先進(jìn)的數(shù)碼技術(shù)使高保真音樂和其他高質(zhì)量內(nèi)容的錄制成為現(xiàn)實(shí)。日新月異的數(shù)碼技術(shù),借助因特網(wǎng),實(shí)現(xiàn)了全球范圍的信息快速共享。這一進(jìn)步也帶來了對(duì)原版內(nèi)容的大量復(fù)制,因此,作為21世紀(jì)的一種切實(shí)可行的記憶載體就必須具備高水平的版權(quán)保護(hù)技術(shù),這樣才能保護(hù)大量高質(zhì)的數(shù)碼數(shù)據(jù)。SD記憶卡可以自由復(fù)制各種數(shù)碼數(shù)據(jù),并采用獨(dú)特的內(nèi)置CPRM技術(shù)保存和轉(zhuǎn)移版權(quán)所有的內(nèi)容,這也是建立一個(gè)全新的音樂及其他商業(yè)媒體的發(fā)布體系的關(guān)鍵所在。

 

硬件結(jié)構(gòu)


(參看附錄中SD卡和其他卡的一個(gè)對(duì)比表)

 

SDIO卡

SDIO(輸入/輸出)卡是一種擴(kuò)展帶SD卡插孔設(shè)備之功能的接口。正在開發(fā)各種SDIO卡,如相機(jī)、Bluetooth 、GPS和802.11b等。




如果編寫以上設(shè)備的驅(qū)動(dòng),當(dāng)然前提是有一個(gè)合格的SD Host Controller。如同編寫USB STORAGE/HID設(shè)備的驅(qū)動(dòng)一樣,需要USB HCD支持。MX31的ADS支持基于SDIO的LP1070 SDIO WLAN Card(在Wince 5.0的SD卡驅(qū)動(dòng)模型里,這種驅(qū)動(dòng)稱為client driver)。

]]>
在Bootloader, WinCE,應(yīng)用程序間傳遞參數(shù)的方法http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=35&ID=1791&Page=1wangxinxin2010-11-26 9:03:36
基本思想就是在Nand Flash等固態(tài)存儲(chǔ)器中保存這個(gè)變量
實(shí)現(xiàn)方法有很多種,如果你使用的是EBoot,EBoot的例子中會(huì)有一個(gè)BOOT_CFG的結(jié)構(gòu)體,默認(rèn)保存EBoot參數(shù)的,這個(gè)參數(shù)保存在固態(tài)存儲(chǔ)器上,可以參考WINCE500\PLATFORM\SMDK2410\SRC\BOOTLOADER\EBOOT\main.c
這樣解決了保存變量的問題,但是如何在Bootloader與操作系統(tǒng)間傳遞參數(shù)呢,
同樣對(duì)于2410的例子,OEMPlatformInit里面會(huì)有一個(gè)BSP_ARGS的結(jié)構(gòu)體,用來在EBoot與WinCE之間傳遞參數(shù),這塊區(qū)域是SDRAM的區(qū)域,一般是保留出來作為參數(shù)傳遞的,WinCE不會(huì)覆蓋這塊區(qū)域,這個(gè)結(jié)構(gòu)體在EBoot中被填充,所以,可以將參數(shù)放在BOOT_CFG中,然后EBoot初始化時(shí)從Nand中讀出來,放到BSP_ARGS,以達(dá)到傳遞給WinCE的目的。
但是這樣只是解決了讀取的問題,這個(gè)參數(shù)在CE中的修改還是不會(huì)被保存。
這種默認(rèn)的方法最一般的用途就是來控制KITL,這種單向參數(shù)傳遞的
如果需要雙向傳遞或保存,最簡單的方法就是在WinCE驅(qū)動(dòng)中添加一個(gè)IOCTL,比如FMD的IOCTL,用來讀寫這塊參數(shù)區(qū)域
這樣子,應(yīng)用程序也就可以訪問這塊參數(shù)了。

如果不使用EBoot的默認(rèn)方式,就直接規(guī)定一個(gè)或幾個(gè)Nand區(qū)域,讀寫方案同上,以達(dá)到多個(gè)應(yīng)用的參數(shù)分開保存的目的,比如BT MAC在Block2, WIFI MAC在Block3, 其他參數(shù)在Block4。這樣做可以將經(jīng)常讀寫的參數(shù)和不經(jīng)常讀寫的參數(shù)分開,以免經(jīng)常讀寫的塊損壞,而破壞其他的功能

]]>
主站蜘蛛池模板: 99在线精品免费视频九九视 | 亚洲福利网址 | 亚洲专区欧美专区 | 国色天香社区在线看免费 | 亚洲高清无在码在线电影下载 | 亚洲综合五月天 | 欧美日韩在线免费看 | 丁香花影视大全 | 国产在线观看免费一级 | 亚洲福利在线观看 | 色综合激情丁香七月色综合 | 一区二区三区精品视频 | 九色视频网址 | 婷婷激情小说网 | 99热精品一区 | 在线免费自拍 | 亚洲a成人| 中文字幕欧美日韩高清 | 亚洲一区二区三区精品视频 | 9久热这里只有精品视频在线观看 | 亚洲日韩欧美综合 | 男人天堂2019| 2020国产精品久久久久 | 在线看视频你懂的 | 最新亚洲一区二区三区四区 | 色播五月综合 | 国色天香社区在线观看免费播放 | 亚洲五月婷 | 久久精品久久精品久久 | 亚洲男人天堂 | 综合一区 | 亚洲综合激情六月婷婷在线观看 | 久久精品无码一区二区日韩av | 四虎影视成人 | 性欧美欧美 | 久久综合精品国产一区二区三区 | 日韩精品在线观看视频 | gogo大胆高清免费视频 | 欧美成人伊人久久综合网 | 最新在线精品国自拍视频 | 国产手机免费视频 |