<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    Rss & SiteMap

    曙海教育集團(tuán)論壇 http://www.bjzhda.cn

    曙海教育集團(tuán)論壇
    共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
    [瀏覽完整版]

    標(biāo)題:WinCE5.0入門全過程

    1樓
    wangxinxin 發(fā)表于:2010-11-26 11:10:30
    以下內(nèi)容僅供參考,由于我也是初學(xué)者,很多概念理解不準(zhǔn),錯(cuò)誤與模糊之處還請大家指出,以利于我們大家共同學(xué)習(xí)與提高!
    以下內(nèi)容不接受任何攻擊性評(píng)論,學(xué)習(xí)WinCE是我現(xiàn)階段本科畢業(yè)設(shè)計(jì)的內(nèi)容,所以所有觀點(diǎn)僅從學(xué)術(shù)角度出發(fā),如果有說的不當(dāng)之處,希望大家多多指點(diǎn)!
    再說明一下,如果本帖中有什么其它問題,比如言之不當(dāng)之處,希望大家另開一帖,在論壇里討論一下,標(biāo)題注明一下jbb0523,我這些天會(huì)常來論壇看看的,這樣大家就共同提高了!

    一、前言

    1、首先談?wù)劚救嘶A(chǔ)。我熟悉AVR單片機(jī),使用過ATmega16單片機(jī)大部分功能,如4X4鍵盤、UART、SPI、I2C、Timer、PWM等等,接觸過DSP芯片TMS320C54X,懂得VHDL語言,簡單使用過LPC2131,并在其上移植過uC/OS-II,學(xué)習(xí)過有關(guān)操作系統(tǒng)的基本知識(shí)。
    用過的相關(guān)軟件有:ICCAVR、ADS1.2、CCS、uVision等。

    2、學(xué)習(xí)不要著急,如果你沒有操作系統(tǒng)的基礎(chǔ),可能一時(shí)接受不了操作系統(tǒng)這個(gè)概念,而是拿著自已天天用的PC機(jī)的Windows操作系統(tǒng)的界面鉆牛角尖。不要總感覺這資料是垃圾,那本書是騙錢的,之所以你看不懂那是因?yàn)槟氵沒達(dá)到看懂的程度!當(dāng)然現(xiàn)在騙錢的書很多,著書者很少從讀者的角度去寫書!

    3、我所使用的開發(fā)環(huán)境:PC XP+GEC2440+WinCE5.0+VS2008+ActiveSync4.5+DNW
    GEC2440是廣嵌科技術(shù)的開發(fā)板,不喜歡廣嵌,售后技術(shù)支持做的不好,而且技術(shù)論壇也沒人回帖,不建議使用本實(shí)驗(yàn)板!其實(shí)板子做的還行,只是相關(guān)服務(wù)有待加強(qiáng)!!!

    二、入門準(zhǔn)備

    1、什么是操作系統(tǒng)?
    這個(gè)問題是困擾了我很久的問題。由于我們大家對于Windows XP等PC機(jī)操作系統(tǒng)過于熟悉,而此操作系統(tǒng)又過于傻瓜式,以致于使我們感覺不到操作系統(tǒng)的本質(zhì),僅感覺操作系統(tǒng)就是一個(gè)窗口,反正在我接觸嵌入式操作系統(tǒng)前是這樣認(rèn)為的。那么什么是操作系統(tǒng)呢?從我使用uC/OS-II的體驗(yàn)來說,簡單點(diǎn)兒說操作系統(tǒng)就是一個(gè)調(diào)度器,從我現(xiàn)在使用WinCE的體驗(yàn)來說,操作系統(tǒng)就是管家婆。總的來說吧,操作系統(tǒng)就是用算法實(shí)現(xiàn)的管理系統(tǒng)所有資源一個(gè)后臺(tái)。可能這樣說還是有些抽象,別急,慢慢來!

    2、操作系統(tǒng)安裝在哪兒呢?界面呢?
    這個(gè)問題絕對是Windows操作系統(tǒng)使用后遺癥,總感覺操作要像我們PC機(jī)裝系統(tǒng)一樣進(jìn)行安裝,要有像XP等OS一樣的操作界面。其實(shí)界面僅僅是人機(jī)交互的一種方式而已,不是操作系統(tǒng)必備的元素,而是操作系統(tǒng)的一種趨勢,因?yàn)楝F(xiàn)在對友好的人機(jī)交互界面要求越來越高,而且是傻瓜程度過高越好!
    以u(píng)C/OS-II為例,它的核代碼就是幾個(gè)C源文件,使用它時(shí)將其像其它程序一樣加入你所建立的工程即可,當(dāng)然在uC/OS-II與你所寫的普通代碼之間要有一個(gè)橋梁來進(jìn)行鏈接,這個(gè)橋梁就是我們在移植操作系統(tǒng)時(shí)所要寫的文件,它根本沒有界面一說,為什么說它是操作系統(tǒng)呢?因?yàn)閡C/OS-II有操作系統(tǒng)的一切特征!操作系統(tǒng)都有什么特征呢?自已網(wǎng)上查一吧!
    那么移值uC/OS-II在CPU上有什么好處呢?個(gè)人認(rèn)為,操作系統(tǒng)的核心好處在于多作務(wù)管理與調(diào)度。任務(wù)較少時(shí),也許感覺不到它的好處,但任務(wù)多了,操作系統(tǒng)的好處就明顯了,比如說吧,你的實(shí)驗(yàn)板上有八個(gè)LED,要求你實(shí)現(xiàn)這八個(gè)LED以八種不同頻率進(jìn)行閃爍,你該怎么寫呢?如果有了uC/OS-II操作系統(tǒng),這就太簡單了,將每個(gè)LED閃爍按uC/OS-II要求形式寫成任務(wù),然后將八個(gè)任務(wù)交由uC/OS-II調(diào)度即可!
    說了一大堆uC/OS-II的相關(guān)內(nèi)容,下面進(jìn)入正題,談WinCE!

    3、相關(guān)術(shù)語
    0)PC機(jī)(Personal Computer)就是指你的電腦,OS(Operating System)是指操作系統(tǒng)!
    1)BSP(Board Support Package,板級(jí)支持包),介于硬件平臺(tái)和操作系統(tǒng)之間的一層,屬于操作系統(tǒng);不同的操作系統(tǒng)對應(yīng)于不同定義形式的BSP。
    2)Bootloader與BIOS:Bootloader是引導(dǎo)程序,就是對實(shí)驗(yàn)平臺(tái)進(jìn)行初始化,設(shè)定一些相關(guān)參數(shù)等等。就我現(xiàn)在使用的WinCE5.0來說,根據(jù)個(gè)人理解,Bootloader與BIOS是一個(gè)東西,就是在ADS1.2下的一個(gè)工程而已,里面含有start.s及其它的一些相關(guān)代碼。這個(gè)現(xiàn)在我還有些模糊,僅談到此。
    3)OEM:Original Equipment Manufacturer原始設(shè)備制造商
    4)OAL:OEM Abstraction Layer
    5)DLL:Dynamic Link Library,動(dòng)態(tài)鏈接庫 
    6)MFC:Microsoft Foudation Class,微軟基礎(chǔ)類 
    7)API:Win32 Application Programming Interface,Win32應(yīng)用程序編程接口
    8)SDK:Software Development Kit,使用WinCE時(shí)必須安裝SDK,你不必在網(wǎng)上找SDK的安裝包,對于每個(gè)具體實(shí)驗(yàn)板都對于一個(gè)SDK,這個(gè)可以用PB生成。
    9)PB、VS、EVC:PB是Platform Builder的簡稱,VS是Visual Studio的簡稱,EVC是Embedded Visual C++的簡稱。
    10)Nand flash與Nor flash:與非flash和或非flash,前者價(jià)格便宜,后者較貴。

    4、所需開發(fā)軟件
    1)Platform Builder 5.0:此軟件用來定制操作系統(tǒng),生成內(nèi)核,生成SDK,編譯驅(qū)動(dòng)程序等。
    2)Visual Studio 2008:我用的是此版本,當(dāng)然也許不許這么高版本,網(wǎng)上用的多的是VS2005,還有使用EVC++的。此軟件用來編寫應(yīng)用程序。
    3)ActiveSync 4.5:此軟用來同步PC機(jī)與實(shí)驗(yàn)板進(jìn)行同步。此軟件可以在微軟中國官方網(wǎng)站下載。
    4)DNW:串口調(diào)試工具,在上電時(shí)用來顯示BIOS發(fā)往串口的相關(guān)信息,也可以輸入相關(guān)參數(shù)進(jìn)行設(shè)置的。
    5)USB同步驅(qū)動(dòng):必備!!!
    VS2008的安裝按提示按裝即可,PB5.0的安裝可以參考天嵌科技的手冊進(jìn)行安裝,講的很好很詳細(xì),至于PB5.0補(bǔ)丁的安裝只需安裝Net2.0與Net3.5的那一個(gè)即可,其實(shí)安裝與否我原由我也不清楚,好好參考天嵌科技術(shù)的手冊吧。另外要參考天嵌科技術(shù)的手冊添加BSP,生成相應(yīng)的SDK,然后安裝SDK,這些都安裝好后還有一個(gè)工作就是安裝USB驅(qū)動(dòng),這一關(guān)一定要過,安不上的話就等著安上再說!

    5、相關(guān)參考書目:
    何宗鍵 編著.Windows CE嵌入式系統(tǒng).北京:北京航空航天大學(xué)出版社
    還有就是各個(gè)開發(fā)板廠商的使用手冊都是很好的資料,必備!
    主要有天嵌科技TQ2440、朗成電子AT2440EVB、友善之臂mini2440和QQ2440、廣嵌科技GEC2440、飛凌等等,只有飛凌的資料是不公開的,其它的都可以在相關(guān)網(wǎng)站下載到。
    有關(guān)Visual Studio的書可以參考一下機(jī)械工業(yè)出版社劉冰等編著的《C++程序設(shè)計(jì)教程——基于Visual Studio 2008》,這本書我也沒細(xì)看過,掃了一眼,講的還抽合吧。

    三、打開WinCE的大門

    0、我的學(xué)習(xí)方法
    我學(xué)習(xí)的理念是首先把整套開發(fā)環(huán)境搭建起來,然后運(yùn)行一個(gè)最簡單的程序入門再說,至于更深一層次的內(nèi)容慢慢研究!
    1、開發(fā)平臺(tái)的建立
    個(gè)人認(rèn)為,學(xué)習(xí)單片機(jī)也好,ARM也罷,首先要解決的事情就是將整套開發(fā)環(huán)境搭建好,成功跑一個(gè)最簡單的程序,就算入門了,下面我說說WinCE開發(fā)環(huán)境的建立。

    1)安裝VS2008,根據(jù)提示安裝即可,沒什么注意事項(xiàng),唯一的提示就是要留有足夠的硬盤空間,僅VS就得留2G空間吧,如果安裝MSDN幫助文檔的話,再留3G吧!
    安裝好VS后初次打開會(huì)讓你選擇默認(rèn)開發(fā)環(huán)境,有1、Visual Basic 開發(fā)設(shè)置;2、Visual C#開發(fā)設(shè)置;3、Visual C++開發(fā)設(shè)置;4、Web開發(fā)設(shè)置;5、常規(guī)開發(fā)設(shè)置。個(gè)人認(rèn)為選哪一個(gè)都無所謂,差別僅在于新建項(xiàng)目時(shí)項(xiàng)目類型一欄的排列順序有所差別而已。這個(gè)設(shè)置可以按如下更改:工具---》導(dǎo)入和導(dǎo)出設(shè)置(I)…---》重置所有設(shè)置---》否,僅重置設(shè)置,從而覆蓋我的當(dāng)前設(shè)置
    2)安裝Microsoft_DotNetFXCHS1.1.exe,這是安裝WinCE的前提,如果你電腦上裝過VC++等軟件,應(yīng)該就不用安裝了,因?yàn)閂isual Studio系列軟件都需要這個(gè)的。
    3)安裝Platform Builder5.0,安裝PB其實(shí)就是所謂的安裝WinCE,這個(gè)參考天嵌的手冊1.1節(jié)內(nèi)容安裝即可,有一點(diǎn)天嵌手冊中沒提到的是:
    圖片點(diǎn)擊可在新窗口打開查看
     (原文件名:PB安裝.jpg) 
    引用圖片

    安裝選擇處理器到這一步時(shí)如果ARMV4I是一個(gè)“×”,則應(yīng)單擊向下的小黑三角,選擇第一個(gè)或第二個(gè)選項(xiàng),其它的我也不是很懂,反正第一次入門多安裝了總比不能用好,以后精通了再選擇最優(yōu)方法吧。
    4)安裝WinCEPB50-081231-Product-Update-Rollup-Armv4I.msi,這是PB5.0的一個(gè)補(bǔ)丁,網(wǎng)上相關(guān)文章千篇一率,寫了一大堆補(bǔ)丁,個(gè)人認(rèn)為安裝這個(gè)就足夠了,其它的等你用到時(shí)再安吧,我用了這么些天也沒感覺到補(bǔ)丁有什么用。
    5)安裝ActiveSync4.5,這個(gè)很簡單!安裝完后打開“我的電腦”就會(huì)有一個(gè)“移動(dòng)設(shè)備”圖標(biāo),這個(gè)以后有用!
    6)DNW不用安裝,是一個(gè)綠色版的軟件,累似于串口調(diào)試助手,但功能強(qiáng)一些吧!
    7)安裝USB同步用驅(qū)動(dòng),用USB線將實(shí)驗(yàn)板與PC機(jī)連接起來會(huì)提示安裝驅(qū)動(dòng),這個(gè)實(shí)驗(yàn)板廠商應(yīng)該會(huì)提供的,也可以從網(wǎng)上下載!USB驅(qū)動(dòng)安裝不當(dāng)會(huì)導(dǎo)致PC機(jī)藍(lán)屏,所以這一步必須過關(guān),否則原地待命!
    8)添加BSP:打開PB5.0,添加BSP包,BSP是由廠商提供的,別告訴我實(shí)驗(yàn)板是你自已做的,一上手就寫B(tài)SP有點(diǎn)不現(xiàn)實(shí)吧。參考天嵌手冊2.1.1節(jié)內(nèi)容,很輕松搞定!
    9)安裝SDK:參考天嵌手冊2.4節(jié)內(nèi)容很輕松搞定,然后安裝即可!
    到現(xiàn)在為止環(huán)境基本搞定,其它相關(guān)細(xì)節(jié)參考開嵌手冊即可!

    2、什么叫定制操作系統(tǒng)?為什么要安裝WinCE到PC機(jī)上?
    由于受uC/OS-II操作系統(tǒng)的影響,總想著WinCE的源代碼在哪兒?那些API函數(shù)的原型在哪兒頭文件中?須知uC/OS-II的源代碼是開源的,而WinCE的代碼則相反!uC/OS-II的呈現(xiàn)在我們面前的是幾個(gè)C語言源文件,WinCE呢?就我現(xiàn)在的理解,將PB5.0裝到PC機(jī)上意味著將WinCE的全部功能放到了PC機(jī)上,然后我們需要做的是通過PB從WinCE所有功能中挑選出自已需要的功能,這些功能經(jīng)自已通過PB組合后生成一個(gè)NK.bin和NK.nb0文件,關(guān)于這兩個(gè)的區(qū)別參考天嵌手冊的第92頁,具體我也不太懂。但我個(gè)人的理解是,生成的NK.nb0就好像是我們在學(xué)單片機(jī)時(shí)生成的hex文件,我們將.nb0燒到實(shí)驗(yàn)板上也就是將我們裁剪(即所謂的定制!!!)好的WinCE“安裝”到實(shí)驗(yàn)板上了,這個(gè)過程可以近似理解為將hex文件通過ISP或其它方式燒到單片機(jī)里一樣的。
    綜上所述,我們安裝PB在PC機(jī)上是將WinCE所有功能“暫時(shí)放到”PC機(jī)上,然后通過PB“挑出”你所需要的功能后并將其組合(即.nb0文件)“放到”實(shí)驗(yàn)板上即可!
    打個(gè)比方說吧,WinCE各種功能就好像一塊塊積木(即安裝PB),然后我們用需要的積木搭出我們需要圖形(即我們用PB定制的操作系統(tǒng))。
    WinCE代碼是不開源的,不要天天去想API函數(shù)在哪兒呢?真想看的話去找找比爾蓋茨看看能不能讓你看看!

    3、Bootloader(BIOS)、WinCE核(即nb0文件)及我們用VS編寫的應(yīng)用程序怎么燒到實(shí)驗(yàn)板上?都燒在哪里了呢?
    1)Bootloaer與BIOS的區(qū)別我還沒搞懂,就現(xiàn)在的理解還是將它們合二為一,這個(gè)有待解決。它們可以用sjf2440.exe進(jìn)行燒寫;燒到哪兒了呢?這個(gè)由自已設(shè)定,我也沒有燒過,只有一個(gè)粗略的理解:S3C2440外擴(kuò)了Nand flash和Nor flash,還有SDRAM,芯片內(nèi)部也有(應(yīng)該有吧?),這里我們不用管內(nèi)部與外部,這個(gè)只要按要求進(jìn)行外擴(kuò)后用尋址到什么地址CPU會(huì)自動(dòng)找相關(guān)存儲(chǔ)空間的。我們可以將所有的flash看成一個(gè)整體,它是用來固化程序的,把所有RAM看成一個(gè)整體,它是用來運(yùn)行程序的。我們將flash分成不同的分區(qū),上電時(shí)CPU要從根據(jù)設(shè)定的起始地址的代碼開始執(zhí)行,個(gè)人認(rèn)為Bootloader應(yīng)該就燒在這里吧!這里的理解個(gè)人還有待加強(qiáng),僅供參考!
    2)WinCE核可以通過過USB等方式下載到實(shí)驗(yàn)板上,比如用DNW就可以進(jìn)行下載,之所以下載到哪兒了?下載到flash其中的一個(gè)分區(qū),具體由Bootloader引導(dǎo)程序和你自已設(shè)定的參數(shù)!CPU再聰明還得聽人的指揮!
    3)VS編的應(yīng)用程序燒在哪兒了?這個(gè)我還沒弄明白,我是通過ActiveSync將VS生成的.exe文件發(fā)送到實(shí)驗(yàn)板上或直接復(fù)制到實(shí)驗(yàn)板上的。怎么粘呢?安裝好ActiveSync后PC機(jī)的“我的電腦”會(huì)多一個(gè)移動(dòng)設(shè)備圖標(biāo),如果你的USB同步驅(qū)動(dòng)安裝好的,雙擊“移動(dòng)設(shè)備”其實(shí)就是相當(dāng)于在遠(yuǎn)程控制著實(shí)驗(yàn)板,將VS的應(yīng)用程序復(fù)制過來然后在實(shí)驗(yàn)板端相關(guān)目錄下找到應(yīng)用程序運(yùn)行即可!不過這樣運(yùn)行應(yīng)用程序是在RAM中運(yùn)行,沒有進(jìn)行固化,至于怎么固化,我再好好研究!
    4)這里一直提到flash分區(qū)的問題,至于究竟是怎么分區(qū)的目前我也不是很懂,個(gè)人認(rèn)為是通過bootloader進(jìn)行相關(guān)設(shè)計(jì)的吧,在以前接觸LPC2131時(shí)似乎看到過相關(guān)內(nèi)容。

    四、走進(jìn)WinCE

    以下默認(rèn)開發(fā)平臺(tái)所有軟件已安裝完畢:

    1、燒寫B(tài)ootloader(沒燒過,只是這樣認(rèn)為要首先燒寫B(tài)IOS)
    2、燒寫WinCE核
    由于本人拿到實(shí)驗(yàn)板時(shí)以上兩步已做好,即我拿到的實(shí)驗(yàn)板上就有燒好的WinCE5.0操作系統(tǒng),因此以上兩步是我猜測的!
    3、打開VS,按照天嵌手冊4.2節(jié)內(nèi)容進(jìn)行操作,如果成功運(yùn)行,則OK!本步驟成功后則說明平臺(tái)搭建成功,但HELLO程序不涉及實(shí)驗(yàn)板上的任何具體硬件,個(gè)人認(rèn)為這只能算是入門了一半,還有一個(gè)坎沒邁過去,那就是流驅(qū)動(dòng)的開發(fā),因?yàn)殚_發(fā)第一個(gè)流驅(qū)動(dòng)的工作量并不比搭建平臺(tái)省事,尤其是全靠自已琢磨,旁邊無人指導(dǎo)、無人探討!
    4、運(yùn)行成功HELLO程序后你可能會(huì)想,如果想點(diǎn)亮實(shí)驗(yàn)板上的LED燈該怎么用啊?基于VS開發(fā)環(huán)境也沒法控制CPU的IO寄存器啊?這就需要流驅(qū)動(dòng)了!
    大部分實(shí)驗(yàn)板的手冊都有詳細(xì)的HELLO程序過程,但很少有手冊詳細(xì)講解流驅(qū)動(dòng)的開發(fā)過程,下面以我的經(jīng)歷詳細(xì)的寫一寫:
    流驅(qū)動(dòng)的基本介紹可以看看天嵌手冊的第五章,腦子里起碼要先有個(gè)基本概念!
    1)打開以下目錄:E:\WINCE500\PLATFORM\smdk2440\DRIVERS,并在該目錄下新建一個(gè)文件夾,命名為GPIOdriver,并用記事本打開該目錄下的dirs文件,按其格式添加\GPIOdriver,dirs沒有擴(kuò)展名,打開看看就懂,沒什么特別的!
    注:其中E盤是我的安裝目錄,smdk2440是GEC2440實(shí)驗(yàn)板提供的BSP,按要求拷貝到了E:\WINCE500\PLATFORM\ 目錄。
    2)打開剛剛新建的GPIOdriver文件夾,新建txt記事本文件,命名為makefile,打開加入以下內(nèi)容:!INCLUDE $(_MAKEENVROOT)\makefile.def,然后將.txt擴(kuò)展名去掉,使其變?yōu)闊o擴(kuò)展名的文件。
    3)仍然在GPIOdriver文件夾內(nèi),仍然新建txt文件,命名為GPIOdriver,加入以下內(nèi)容后將其擴(kuò)展名更改為.def文件:
    LIBRARY GPIOdriver
    EXPORTS
    GIO_Close
    GIO_Deinit
    GIO_Init
    GIO_IOControl
    GIO_Open
    GIO_PowerDown
    GIO_PowerUp
    GIO_Read
    GIO_Seek
    GIO_Write
    4)仍然在GPIOdriver文件夾內(nèi),仍然新建txt文件,命名為sources,加入以下內(nèi)容后將其擴(kuò)展名刪除,使其成為無擴(kuò)展名文件:
    RELEASETYPE=PLATFORM
    TARGETNAME=GPIODriver
    TARGETTYPE=DYNLINK
    DLLENTRY=DllEntry
    共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

    Copyright © 2000 - 2009 曙海教育集團(tuán)
    Powered By 曙海教育集團(tuán) Version 2.2
    Processed in .01563 s, 2 queries.
    主站蜘蛛池模板: а√在线地址最新版| 亚洲精品无码久久久| 80yy私人午夜a级国产| 成人免费视频一区二区三区| 亚洲另类自拍丝袜第1页| a级国产乱理伦片在线播放| 欧美xxxxx69| 国产中老年妇女精品| xxxxx免费| 无人高清影视在线观看视频| 人妻无码一区二区三区四区| 蜜臀精品无码av在线播放| 国产视频一区二区| 亚州av综合色区无码一区| 精品午夜福利1000在线观看| 国产波多野结衣中文在线播放| 久久久久久一区国产精品| 最近高清日本免费| 亚洲色精品vr一区二区三区| 精品午夜久久网成年网| 国产天堂在线一区二区三区| 丝袜人妻一区二区三区网站| 日本阿v视频在线观看| 亚洲欧美日韩中文无线码| 瓮红电影三级在线播放| 国产乱子伦农村xxxx| 麻豆网神马久久人鬼片| 尤物网站在线播放| 久久综合热88| 最近最新中文字幕8| 亚洲综合色色图| 男人女人边摸边吃奶边做| 国产一级三级三级在线视| 韩国三级日本三级香港三级黄| 国产精品福利一区二区| 中文字幕视频网站| 欧美性xxxx极品高清| 国产亚洲欧美日韩在线观看不卡| 67pao强力打造高清免费| 在线观看免费亚洲| 与子乱勾搭对白在线观看|