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

唐吉訶德

  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 心羽 閱讀(571) 評論(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>
            蜜臀av性久久久久蜜臀aⅴ| 国产酒店精品激情| 国产精品久久久久久亚洲调教| 日韩视频专区| 久久久99久久精品女同性| 99在线精品视频| 毛片av中文字幕一区二区| 欧美在线亚洲一区| 欧美午夜大胆人体| 91久久中文| 亚洲国产精品久久久久婷婷老年| 亚洲一区二区三区在线看| 日韩亚洲在线观看| 欧美国产视频一区二区| 久久人人爽爽爽人久久久| 国产精品视频一区二区三区| 日韩视频在线你懂得| 日韩视频免费观看高清完整版| 久久精品国产亚洲a| 欧美在线免费视屏| 国产精品亚洲第一区在线暖暖韩国| 亚洲毛片播放| 亚洲综合日韩| 欧美午夜一区二区福利视频| 99国产一区| 日韩一区二区精品| 国产精品xxx在线观看www| 中国女人久久久| 一区二区久久久久| 99精品国产在热久久婷婷| 国产婷婷色一区二区三区四区| 欧美日韩精品免费看| 免费观看在线综合| 噜噜噜噜噜久久久久久91| 久久精品男女| 欧美日韩精品久久久| 欧美不卡高清| 国产欧美va欧美va香蕉在| 中文成人激情娱乐网| 性欧美8khd高清极品| 国产精品日韩一区二区| 在线视频日韩精品| 亚洲欧美综合v| 国产精品美女诱惑| 免费国产自线拍一欧美视频| 日韩午夜在线播放| 欧美精品成人一区二区在线观看 | 国产美女扒开尿口久久久| 一区二区成人精品| 久久久www| 久久人人爽国产| 久久久不卡网国产精品一区| 欧美一区二区视频网站| 欧美二区在线| 欧美另类视频在线| 一区二区av在线| 久久免费视频这里只有精品| 亚洲人精品午夜在线观看| 欧美午夜一区二区福利视频| 久久久久久69| av成人国产| 欧美国产精品人人做人人爱| 欧美一区2区视频在线观看 | 99精品免费| 欧美亚洲视频在线观看| 欧美日韩综合在线| 中文网丁香综合网| 夜夜夜精品看看| 国产日产亚洲精品| 精品51国产黑色丝袜高跟鞋| 欧美精品aa| 久久久不卡网国产精品一区| 99在线精品观看| 欧美成人官网二区| 久久99在线观看| 亚洲一区图片| 亚洲精品视频在线看| 国产一区二区三区免费观看| 欧美三级视频在线观看| 乱码第一页成人| 欧美在线二区| 亚洲一区二区视频在线观看| 亚洲人成免费| 免费不卡在线观看| 久久久999精品| 午夜精品久久久久久久久久久久久 | 国产精品hd| 欧美久久久久中文字幕| 欧美中文字幕在线观看| 亚洲一区二区三区中文字幕在线| 99视频精品在线| 日韩午夜三级在线| 亚洲精品专区| 日韩天堂在线视频| 亚洲精品欧洲精品| 亚洲精华国产欧美| 亚洲国产精品成人一区二区| 欧美wwwwww| 亚洲欧美日韩国产综合在线| 久久精品国产v日韩v亚洲| 99视频在线观看一区三区| 欧美亚洲免费电影| 久久精品二区三区| 午夜天堂精品久久久久| 你懂的国产精品| 久久五月激情| 亚洲精品美女久久久久| 久久久av水蜜桃| 久久久久成人精品免费播放动漫| 香蕉免费一区二区三区在线观看| 亚洲午夜黄色| 亚洲中字黄色| 性做久久久久久久免费看| 久久成人免费电影| 久久久另类综合| 快播亚洲色图| 毛片av中文字幕一区二区| 欧美成人高清| 欧美日韩福利| 国产精品免费观看在线| 国产色综合天天综合网| 依依成人综合视频| 亚洲精品日韩一| 一区二区三区高清在线观看| 亚洲一区在线免费| 欧美制服丝袜| 欧美www视频在线观看| 亚洲国产精品精华液2区45| 亚洲三级免费| 亚洲综合好骚| 久久综合久色欧美综合狠狠| 欧美搞黄网站| 国产精品理论片| 激情成人亚洲| 日韩亚洲在线观看| 性做久久久久久久免费看| 久久欧美中文字幕| 亚洲欧洲另类国产综合| 亚洲专区免费| 美女日韩欧美| 欧美三级电影精品| 一区在线电影| 亚洲一级片在线观看| 久久精品一区| 亚洲精品乱码久久久久久日本蜜臀| 亚洲综合色在线| 欧美不卡高清| 国产精品亚洲аv天堂网| 一区二区三区在线视频播放| 在线亚洲伦理| 久久天天狠狠| 99国产精品99久久久久久粉嫩 | 一本不卡影院| 久久久噜噜噜久久久| 亚洲欧洲在线一区| 欧美一区二区三区四区夜夜大片 | 国产精品任我爽爆在线播放 | 久久久久久久激情视频| 久久99在线观看| 亚洲精品国产精品国自产观看浪潮 | 久久成人国产| 亚洲七七久久综合桃花剧情介绍| 一区二区三区欧美在线| 久久久国产精品一区二区三区| 亚洲国产精品久久久| 亚洲一区精彩视频| 欧美电影美腿模特1979在线看| 国产精品乱码久久久久久| 欧美激情亚洲| 久久国产精品久久久久久| 日韩视频免费在线观看| 国产亚洲午夜| 国产性猛交xxxx免费看久久| 欧美日韩国产一中文字不卡| 欧美国产日韩亚洲一区| 可以看av的网站久久看| 欧美 日韩 国产精品免费观看| 午夜电影亚洲| 亚洲欧美中文字幕| 亚洲国产日韩欧美在线99| 亚洲综合色激情五月| 欧美区一区二| 亚洲精品久久久久久久久久久久| 久久国产福利国产秒拍| 在线亚洲欧美视频| 欧美日韩国产三级| 亚洲美女视频在线免费观看| 狂野欧美激情性xxxx欧美| 亚洲欧美国产精品va在线观看| 欧美日韩精品是欧美日韩精品| 亚洲国产欧美不卡在线观看| 老司机精品久久| 久久久不卡网国产精品一区| 国产日韩欧美在线播放不卡| 午夜精品成人在线视频| 亚洲视频免费观看| 国产精品免费一区二区三区观看 | 亚洲欧美日韩国产综合精品二区| 一区二区久久| 欧美一区激情|