青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

唐吉訶德

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  5 Posts :: 75 Stories :: 3 Comments :: 0 Trackbacks

常用鏈接

留言簿(2)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

wince博客 http://www.cnblogs.com/we-hjb

 

為一個新的硬件設備定制WinCE6.0操作系統,一般需要完成以下幾個主要步驟:

1.       針對特定的硬件設備創建板級支持包(Board Support Package縮寫為BSP)BSP必須包括BOOTLOADEROEM適配層(OEM Adaptation Layer縮寫為OAL)和一些必要的驅動。

2.       利用創建的BSP,定制一個系統設計(OS Design)。即通過VS2005創建一個Platform Builder的工程。該工程可編譯產生最終的運行時映像文件(Rum-time Image)。

3.       針對板上的外圍設備創建相關驅動,并添加到BSP中。

4.       通過創建子工程和Catalog Items的方式,修改OS Design

5.       編譯OS Design,下載編譯得到的運行時映像文件到目標設備。此時,可通過遠程調試工具進行調試。

6.       在完成所有的調試工作之后,導出該運行時映像對應的SDK(Software Development Kit),應用程序的開發人員可基于此SDK編寫該設備的應用程序。

       可以看出,在整個WinCE操作系統的移植過程中,BSP的移植是最基礎也是最關鍵的一步。而創建BSP的過程主要包括以下幾個內容:

1.       創建BOOTLOADERBOOTLOADER在開發的過程中用于下載操作系統映像文件。

2.       創建OALOAL最終被鏈接到內核映像文件,它主要完成硬件的初始化和管理。

3.       創建設備驅動。設備驅動是板上外圍設備的軟件支持。

4.       修改運行時映像的配置文件。配置文件主要包括BIBREG等文件。

BOOTLOADER的主要作用是將操作系統運行時映像加載到內存,并跳轉到OS的啟動程序處。它的這一作用跟前一篇介紹的NBOOT的作用完全一致。BOOTLOADER獲取運行時映像(一般對應的文件名為NK)一般有兩種方法。它可以通過有線連接的方式象網絡(Ethernet)USB或串口從外部下載NK。它也可以從本地的存儲器(FlashHard Disk)中加載NK。通常,BOOTLOADER通過Ethernet下載操作系統映像故將其稱為EBOOT。在開發的過程中使用EBOOT,可以提高開發效率。通過使用EBOOT,你可以很快速的下載NK到目標設備中。而利用Flash編程工具或者是通過JTAG下載則很慢。在一些產品最終發布時,EBOOT是可以去掉的,但也有一些則必須包括BOOTLOADER,像X86的平臺就是如此。

至此,我們已經了解了EBOOT的主要功能,為了實現這些功能,EBOOT必須完成以下工作:

1.       初始化MCU。包括初始化MCU的相關寄存器、中斷、看門狗、系統時鐘、內存和MMU。前面幾項跟NBOOT基本一致,但這里增加了對MMU的初始化。

2.       在完成所有的初始化工作之后,調用BootloaderMain()。這個函數的定義在WinCE6.0中對應的文件是C:"WINCE600"PLATFORM"COMMON"SRC"COMMON"BOOT"BLCOMMON"blcommon.c

3.       BootloaderMain()主要依次調用以下幾個函數,OEMDebugInit()OEMPlatformInit()、OEMPreDownload()、OEMLaunch(),而這些函數必須由EBOOT的代碼來實現。

4.       最終跳轉到OAL.exeStartUp處,進而啟動WinCE操作系統。

整個流程如下圖所示:           

      

     EBOOT的代碼可參考C:"WINCE600"PLATFORM"DEVICEEMULATOR"SRC"BOOTLOADER"EBOOT目錄。這里針對S3C2410的EBOOT做幾點說明。前一篇介紹NBOOT加載EBOOT的方法時提到,NBOOT必須將EBOOT放在內存中指定的位置,這個位置是由EBOOT的來決定的。具體的,在EBOOT中的體現是boot.bib里的內存配置,如下圖所示。

     

     NBOOT加載EBOOT到內存的地址必須與此地址對應。由于在NBOOT中沒有使用MMU,所以NBOOT使用的實際地址應該為0x30021000,否則系統將不能正常啟動。第二點,如果沒有采用NBOOT加載EBOOT的方法,而是將EBOOT直接存儲在NOR Flash中,此時必須在EBOOT的代碼中實現自加載的過程,即將NOR Flash中的EBOOT全部加載到RAM中,并執行,實現代碼如下:


;------------------------------------------------------------------------------
;   Copy boot loader to memory

        ands    r9, pc, #
0xFF000000     ; see if we are in flash or in ram
        bne     
%f20                    ; go ahead if we are already in ram

        ; This 
is the loop that perform copying.
        ldr     r0, 
= 0x21000           ; offset into the RAM 
        add     r0, r0, #PHYBASE        ; add physical 
base
        mov     r1, r0                  ; (r1) copy destination
        ldr     r2, 
=0x0                ; (r2) flash started at physical address 0
        ldr     r3, 
=0x10000            ; counter (0x40000/4)
10      ldr     r4, [r2], #4
        str     r4, [r1], #
4
        subs    r3, r3, #
1
        bne     
%b10

        ; Restart from the RAM position after copying.
        mov pc, r0
        nop
        nop
        nop

        ; Shouldn
't get here.
        b       .
      EBOOT在實現必備功能的前提下,我們還可以擴展其功能,譬如說初始化LCD,并顯示特定的啟動畫面,顯示加載映像的進度等。
      本文粗略的介紹了WinCE6.0EBOOT的內容,但沒有涉及具體的代碼實現,相關代碼可以參考目錄C:"WINCE600"PLATFORM"DEVICEEMULATOR"SRC"BOOTLOADER"EBOOT。總的來說,EBOOT的核心功能就是引導操作系統映像。
posted on 2011-03-14 10:34 心羽 閱讀(582) 評論(0)  編輯 收藏 引用 所屬分類: wince
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产久一道中文一区| 国产精一区二区三区| 在线播放中文字幕一区| 欧美在线3区| 香蕉精品999视频一区二区| 国产精品午夜在线观看| 亚洲欧美电影院| 亚洲欧美日韩国产成人| 国产亚洲欧洲一区高清在线观看| 亚洲欧美欧美一区二区三区| 亚洲手机成人高清视频| 国产日韩在线一区二区三区| 久久久综合网| 蜜臀av一级做a爰片久久| 亚洲六月丁香色婷婷综合久久| 最新日韩在线| 国产精品高清网站| 久久久久久久国产| 欧美国产激情二区三区| 亚洲一区二区伦理| 欧美专区亚洲专区| 亚洲人成人一区二区三区| 一区二区高清| 国产自产在线视频一区| 欧美激情四色| 国产精品稀缺呦系列在线| 欧美 日韩 国产一区二区在线视频| 欧美+日本+国产+在线a∨观看| 亚洲深夜影院| 久久久久www| 亚洲视频狠狠| 久久久欧美精品sm网站| 一区二区三区免费在线观看| 性色一区二区三区| av不卡在线看| 久久精品视频在线播放| 亚洲一二三区在线观看| 麻豆精品传媒视频| 欧美主播一区二区三区| 欧美凹凸一区二区三区视频| 欧美一区二区私人影院日本| 免费成人av在线看| 久久久久久久一区二区三区| 欧美日韩理论| 欧美顶级大胆免费视频| 国产一区清纯| 亚洲一区二区三区精品在线| 亚洲精品欧美极品| 久久精品综合网| 午夜欧美大片免费观看| 欧美日韩国产另类不卡| 欧美国产激情二区三区| 激情久久久久久久| 亚洲欧美电影院| 亚洲一区精品在线| 欧美激情亚洲| 亚洲大片一区二区三区| 极品av少妇一区二区| 欧美一级午夜免费电影| 午夜欧美不卡精品aaaaa| 欧美日韩亚洲三区| 亚洲美女在线国产| 日韩午夜视频在线观看| 你懂的国产精品| 美日韩在线观看| 国产一区二区精品久久91| 亚洲欧美不卡| 久久国产精品亚洲va麻豆| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲免费成人av| 一区二区三区国产在线观看| 欧美激情成人在线视频| 亚洲国产精品一区二区久| 亚洲国产另类久久精品| 免费人成网站在线观看欧美高清| 美女网站在线免费欧美精品| 亚洲第一页中文字幕| 麻豆精品视频在线观看| 欧美激情乱人伦| 亚洲精品日本| 欧美午夜精品理论片a级大开眼界| 99精品视频免费在线观看| 亚洲一区二区免费在线| 国产精品日韩一区| 久久精品国产一区二区电影| 欧美成人午夜| 亚洲精品一区在线| 欧美午夜精品理论片a级按摩 | 91久久一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲第一毛片| 亚洲一区二区av电影| 国产亚洲欧美日韩精品| 久久久蜜桃精品| 亚洲精品网址在线观看| 亚洲欧美在线免费| 国内精品久久久久影院 日本资源| 久久裸体视频| 亚洲精品一区二区三区av| 亚洲欧美一区二区原创| 有码中文亚洲精品| 欧美啪啪一区| 先锋影音一区二区三区| 亚洲缚视频在线观看| 欧美一级黄色网| 亚洲第一网站| 国产精品一区在线播放| 每日更新成人在线视频| 亚洲一级在线| 欧美激情一区二区三级高清视频| 亚洲一区二区在线| 亚洲第一级黄色片| 国产精品乱子乱xxxx| 玖玖在线精品| 亚洲欧美日韩国产| 亚洲人成网站在线观看播放| 欧美主播一区二区三区美女 久久精品人| 在线免费日韩片| 国产精品视频免费一区| 欧美黄色一级视频| 久久久噜噜噜久久中文字免| 亚洲午夜小视频| 欧美大片免费| 久久亚洲捆绑美女| 午夜精品在线看| 一区二区免费看| 亚洲激情女人| 韩国精品一区二区三区| 国产精品影院在线观看| 欧美日韩天天操| 欧美高清不卡| 美女网站久久| 久久狠狠亚洲综合| 欧美一区午夜视频在线观看| 一区二区国产日产| 亚洲美女网站| 亚洲精品黄色| 亚洲精品精选| 亚洲黄色av一区| 欧美激情一区二区三区蜜桃视频| 久久久青草婷婷精品综合日韩| 欧美一级一区| 亚洲欧美视频在线| 亚洲综合国产激情另类一区| 99精品黄色片免费大全| 亚洲人成小说网站色在线 | 欧美成人精品一区二区三区| 久久久国产视频91| 久久久久se| 久久精品欧美日韩精品| 欧美一区二区三区在线观看| 午夜精品一区二区三区四区 | 欧美激情一区二区三区在线视频观看 | 欧美一区二区三区久久精品| 亚洲欧美一区二区三区极速播放| 一区二区三区欧美激情| 亚洲视频在线观看三级| 亚洲天天影视| 欧美一区三区二区在线观看| 性8sex亚洲区入口| 久久九九久久九九| 久久中文字幕一区二区三区| 模特精品在线| 欧美日韩国产一区二区三区| 国产精品高潮呻吟久久| 国产婷婷成人久久av免费高清 | 欧美 日韩 国产精品免费观看| 美日韩在线观看| 欧美男人的天堂| 国产精品激情av在线播放| 国产欧美日韩在线视频| 国内成+人亚洲+欧美+综合在线| 在线高清一区| 日韩视频一区二区在线观看| 在线综合亚洲欧美在线视频| 午夜在线一区| 久热国产精品| 日韩视频精品在线观看| 香蕉久久精品日日躁夜夜躁| 久久久夜夜夜| 欧美午夜精品一区二区三区| 国外视频精品毛片| 亚洲精品一区二区三区不| 亚洲永久在线观看| 久久亚洲影音av资源网| 亚洲人成网站在线观看播放| 亚洲一区二区综合| 久久综合伊人77777麻豆| 欧美视频一区二区三区| 亚洲电影免费观看高清完整版在线| 日韩西西人体444www| 久久精品99国产精品| 亚洲精品欧美极品| 久久国产精品一区二区三区| 欧美日韩国产免费| 在线国产日韩| 久久av二区| 一区二区日韩免费看| 久久综合五月| 国产在线拍偷自揄拍精品|