<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  WinCE系統定制與驅動開發  (http://www.hufushizhe.com/bbs/list.asp?boardid=36)
    ----  WinCE5.0入門全過程  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=36&id=1824)

    --  作者:wangxinxin
    --  發布時間:2010-11-26 11:10:30
    --  WinCE5.0入門全過程
    以下內容僅供參考,由于我也是初學者,很多概念理解不準,錯誤與模糊之處還請大家指出,以利于我們大家共同學習與提高!
    以下內容不接受任何攻擊性評論,學習WinCE是我現階段本科畢業設計的內容,所以所有觀點僅從學術角度出發,如果有說的不當之處,希望大家多多指點!
    再說明一下,如果本帖中有什么其它問題,比如言之不當之處,希望大家另開一帖,在論壇里討論一下,標題注明一下jbb0523,我這些天會常來論壇看看的,這樣大家就共同提高了!

    一、前言

    1、首先談談本人基礎。我熟悉AVR單片機,使用過ATmega16單片機大部分功能,如4X4鍵盤、UART、SPI、I2C、Timer、PWM等等,接觸過DSP芯片TMS320C54X,懂得VHDL語言,簡單使用過LPC2131,并在其上移植過uC/OS-II,學習過有關操作系統的基本知識。
    用過的相關軟件有:ICCAVR、ADS1.2、CCS、uVision等。

    2、學習不要著急,如果你沒有操作系統的基礎,可能一時接受不了操作系統這個概念,而是拿著自已天天用的PC機的Windows操作系統的界面鉆牛角尖。不要總感覺這資料是垃圾,那本書是騙錢的,之所以你看不懂那是因為你還沒達到看懂的程度!當然現在騙錢的書很多,著書者很少從讀者的角度去寫書!

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

    二、入門準備

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

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

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

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

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

    三、打開WinCE的大門

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

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

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

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

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

    四、走進WinCE

    以下默認開發平臺所有軟件已安裝完畢:

    1、燒寫Bootloader(沒燒過,只是這樣認為要首先燒寫BIOS)
    2、燒寫WinCE核
    由于本人拿到實驗板時以上兩步已做好,即我拿到的實驗板上就有燒好的WinCE5.0操作系統,因此以上兩步是我猜測的!
    3、打開VS,按照天嵌手冊4.2節內容進行操作,如果成功運行,則OK!本步驟成功后則說明平臺搭建成功,但HELLO程序不涉及實驗板上的任何具體硬件,個人認為這只能算是入門了一半,還有一個坎沒邁過去,那就是流驅動的開發,因為開發第一個流驅動的工作量并不比搭建平臺省事,尤其是全靠自已琢磨,旁邊無人指導、無人探討!
    4、運行成功HELLO程序后你可能會想,如果想點亮實驗板上的LED燈該怎么用啊?基于VS開發環境也沒法控制CPU的IO寄存器啊?這就需要流驅動了!
    大部分實驗板的手冊都有詳細的HELLO程序過程,但很少有手冊詳細講解流驅動的開發過程,下面以我的經歷詳細的寫一寫:
    流驅動的基本介紹可以看看天嵌手冊的第五章,腦子里起碼要先有個基本概念!
    1)打開以下目錄:E:\\WINCE500\\PLATFORM\\smdk2440\\DRIVERS,并在該目錄下新建一個文件夾,命名為GPIOdriver,并用記事本打開該目錄下的dirs文件,按其格式添加\\GPIOdriver,dirs沒有擴展名,打開看看就懂,沒什么特別的!
    注:其中E盤是我的安裝目錄,smdk2440是GEC2440實驗板提供的BSP,按要求拷貝到了E:\\WINCE500\\PLATFORM\\ 目錄。
    2)打開剛剛新建的GPIOdriver文件夾,新建txt記事本文件,命名為makefile,打開加入以下內容:!INCLUDE $(_MAKEENVROOT)\\makefile.def,然后將.txt擴展名去掉,使其變為無擴展名的文件。
    3)仍然在GPIOdriver文件夾內,仍然新建txt文件,命名為GPIOdriver,加入以下內容后將其擴展名更改為.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文件夾內,仍然新建txt文件,命名為sources,加入以下內容后將其擴展名刪除,使其成為無擴展名文件:
    RELEASETYPE=PLATFORM
    TARGETNAME=GPIODriver
    TARGETTYPE=DYNLINK
    DLLENTRY=DllEntry

    主站蜘蛛池模板: 国产成人片无码视频在线观看| 久久大香香蕉国产| 亚洲国产成人久久三区| 亚洲三级小视频| 久久精品电影院| 久久99精品久久久久久噜噜| 一本大道无码日韩精品影视_| va天堂va亚洲va影视中文字幕| 800av我要打飞机| 99久久精品国产一区二区三区 | 正点嫩模大尺度写真在线视频| 欧美高清视频一区| 有人有看片的资源吗www在线观看 有坂深雪初尝黑人在线观看 | 国产精品久久久久久久久齐齐 | 99国产欧美久久久精品蜜芽| 黄网页在线观看| 精品久久人妻av中文字幕| 波多野结衣伦理片bd高清在线| 欧美jizzhd精品欧美| 无码国产福利av私拍| 天天碰免费上传视频| 国产精品免费αv视频| 国产亚洲一区二区在线观看| 免费人成激情视频在线观看冫| 亚洲免费一级片| 中文乱码字幕午夜无线观看| 97久久人人超碰国产精品| 色视频色露露永久免费观看| 激情内射日本一区二区三区| 曰批视频免费30分钟成人| 尹人久久久香蕉精品| 国产精品免费视频一区| 国产99久久九九精品无码| 亚洲欧美一区二区三区电影 | 亚洲成a人片在线观| 久久久久久福利| 91国视频在线| 粗大的内捧猛烈进出视频一| 欧美另类videosbestsex高清| 最好看的免费观看视频 | 日韩人妻无码一区二区三区综合部|