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

milkyway的窩

最初想法的誕生地

 

i.MX21平臺之 剖析Windows CE 5.0 Eboot

 

       通用的EBOOT概念可參考“Windows CE 5.0 Boot Loader的流程分析”,本文僅通過抽象i.MX21平臺上Windows CE 5.0 Eboot代碼來說明從板子上電到WinCE跑起來的幕后故事以及各段代碼所發揮的作用。對照源代碼閱讀本文會有更好的效果。

 

相關代碼目錄如下:

%WINCE\Platform\iMX21ADS\Src\Bootloader\eboot

%WINCE\PLATFORM\COMMON\SRC\ARM\Freescale\MX21\Startup

%WINCE\PLATFORM\Imx21ads\Src\Kernel\Oal

%WINCE\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\BLCOMMON\blcommon.c

 

(一)%WINCE\PLATFORM\COMMON\SRC\ARM\Freescale\MX21\Startup\startup.s

功能:在OEM板級初始化前先初始化i.MX21處理器的核心模塊

主要的函數功能及流程分析如下:

1StartUp()---這部分代碼是Boot LoaderOAL共享的。

在板子上電后,第一步是將處理器設置為特權模式,跳轉到MMUCacheDisable( ),使TLBcache、寫緩沖無效,并關閉 MMUcache。接著設置AIPI寄存器,跳轉到OALSetUpSystemControl OALSetUpFrequencies,初始化系統控制模式和時鐘頻率。程序接下來的工作是啟用I Cache,并跳轉到OALIsImageInRAMOALSetUpExtMemories以初始化外部存儲設備。隨后是設置MAX寄存器、配置AITC中斷控制器、屏蔽和清中斷的一段代碼。接下來程序先后跳轉到OALSetUpGpioOALSetUpKeypad,即初始化系統GPIO和鍵盤設備。最后程序跳轉到OALStartUp(),加載g_oalAddressTable地址,再跳轉到KernelStart(),完成代碼重定位和從RAM中啟動Eboot等功能。

上述KernelStart()函數,先跳轉到OALIsImageInRAM程序段判斷Image是否正跑在RAM里。如果不是,則在接下來的RelocateEBOOT程序段里進行代碼重定位;如果已經在RAM里,則跳轉到RamStart程序段,設置連接寄存器LR、加載OEMAddressTable和頁表的地址,然后跳轉到MMUSetup函數,根據OEMAddressTable設置MMU,并使能MMU、啟用cache。在完成了MMU的設置后,程序跳轉到blcommon.c中的BootloaderMain(),這個Eboot主控函數將調用main.c中的一系列OEM函數實現CE系統在板子上的啟動。

上面提到的函數所在文件如下: OALSetUpSystemControl OALSetUpFrequenciesOALSetUpExtMemoriesOALSetUpGpioOALSetUpKeypad這幾個函數位于 %WINCE\PLATFORM \iMX21\ Imx21ads\Src\Kernel\Oal\oal_startup.c中;OALIsImageInRAMOALStartUp位于%WINCE\PLATFORM\Imx21ads\Src\Kernel\Oal\startup.s中。KernelStart則位于%WINCE\PLATFORM\Imx21ads\Src\Bootloader\Eboot\startup.s中。

 

2. MMUCacheDisable( ) --- 使TLBcache、寫緩沖無效,并關閉 MMUcache

 

3. MMUSetup()---這個函數將被%Eboot\startup.s調用,它根據OEMAddressTable設置MMU,并使能MMU、啟用cache

 

(二)   main.c

基本流程:

初始化調試端口---初始化平臺基本設備---打印用戶菜單---初始化網絡參數---下載內核---啟動OS

 

主要函數及功能:

OEMReportError()----用于點亮LED,并打印出錯誤提示

 

OEMMultiBINNotify()---- 當系統具有多個BIN文件時用來提示用戶下載的是哪一個BIN

 

OEMDebugInit( )------- 調用了OEMInitDebugSerial( ),初始化調試串口

 

OEMPlatformInit( )----- 初始化板上設備

     通過調試串口打印出Eboot的版本信息

     調用InitEthDevice(),初始化以太網控制器

     設置MAC地址,初始化OALeboot共享參數,RTC

     調用MainMenu( ),通過串口與用戶交互,設置啟動選項及參數

 

OEMPreDownload( )--- 判斷是否下載,調用OALKitlCreateName()設置設備名,初始化IP參數,調用EbootInitEtherTransport()初始化TFTP參數

 

OEMReadData()----- 內部是通過OEMEthGetFrame( )來傳輸數據的

 

OEMLaunch( )----------- 根據PB里的設置來更新OALeboot共享參數,并判斷是否需要將NK燒到Nand Flash中,最后調用Eboot\startup.s 里的Launch( )啟動WinCE內核

 

main.c中還有一個重要的函數,那就是ManiMenu( )。它提供了以下啟動選項菜單:

0)MAC地址設置

1)靜態IP設置

2)靜態掩碼設置

3)啟用DHCP

4)恢復到出廠設置

5)保存目前Eboot的設置

D)下載

E)擦除Nor Flash

L)從Nor Flash啟動

R)從RAM中啟動

 

總的來說,在i.MX21平臺上WinCE EBoot就是在以下幾個文件間不斷跳轉的過程:

%Startup\startup.s --- oal_startup.c --- %Oal\startup.s --- %Eboot\startup.s--- blcommon.c---main.c

PS: 如果對i.MX21上電最初階段系統初始化的匯編代碼有興趣的,可以看看“i.MX21平臺上Startup.s代碼分析”。

posted on 2008-08-13 23:58 milkyway 閱讀(2774) 評論(0)  編輯 收藏 引用 所屬分類: Wince學習小結

導航

統計

公告

隨筆皆原創,文章乃轉載. 歡迎留言!

常用鏈接

留言簿(37)

隨筆分類(104)

隨筆檔案(101)

文章分類(51)

文章檔案(53)

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导航| 一本色道久久综合亚洲精品按摩| 久久理论片午夜琪琪电影网| 亚洲女人天堂成人av在线| 国产精品有限公司| 久久精品视频va| 久久亚洲一区二区三区四区| 亚洲国产成人久久| 亚洲国产三级网| 欧美伦理91i| 性18欧美另类| 久久精品女人天堂| 狠狠入ady亚洲精品| 免费一级欧美片在线观看| 蜜臀久久久99精品久久久久久| 亚洲精品一区二区三区不| 99精品国产福利在线观看免费 | 亚洲一区日韩在线| 国产日产欧产精品推荐色| 久久久久久国产精品mv| 裸体女人亚洲精品一区| 在线一区观看| 久久精品亚洲一区二区三区浴池| 亚洲激情偷拍| 亚洲午夜精品17c| 亚洲成色777777女色窝| 日韩亚洲精品在线| 精品成人一区二区| 亚洲精品偷拍| 国内成人在线| 日韩一区二区精品在线观看| 国内久久婷婷综合| 亚洲乱码国产乱码精品精天堂| 国产精品网红福利| 欧美激情网站在线观看| 国产美女精品| 亚洲精品久久久久中文字幕欢迎你| 欧美午夜片在线观看| 欧美大胆成人| 国产日韩欧美一区| 亚洲免费电影在线观看| 尤物九九久久国产精品的特点 | 久久精品一二三区| 欧美日本高清| 欧美国产精品一区| 国产亚洲成精品久久| 99re成人精品视频| 91久久精品国产91性色| 欧美一级黄色录像| 欧美亚洲自偷自偷| 欧美精品在线一区二区三区| 久久在线视频| 国产一区二区日韩| 亚洲自拍另类| 亚洲欧美另类在线观看| 欧美国产三区| 欧美国产精品一区| 在线观看欧美成人| 久久精品在线观看| 久久九九久久九九| 国产视频在线一区二区| 亚洲视频在线播放| 亚洲综合丁香| 欧美精选一区| 亚洲精品日韩综合观看成人91| 亚洲经典在线看| 蜜臀av国产精品久久久久| 麻豆av福利av久久av| 红桃视频欧美| 久久久久久穴| 欧美电影电视剧在线观看| 亚洲丰满在线| 美女网站在线免费欧美精品| 免费在线观看精品| 亚洲国产婷婷| 欧美另类在线观看| 亚洲免费观看在线视频| 一区二区三区高清视频在线观看| 欧美韩国日本一区| 一区二区欧美精品| 欧美在线精品免播放器视频| 国产偷久久久精品专区| 久久电影一区| 亚洲高清视频的网址| 夜夜嗨av一区二区三区四区| 国产精品大片| 久久爱另类一区二区小说| 免费成人小视频| 亚洲精品免费在线| 国产精品家庭影院| 欧美一区二区三区久久精品| 牛牛影视久久网| 夜夜狂射影院欧美极品| 国产精品你懂的在线| 久久九九99| 亚洲毛片在线观看.| 欧美中文在线观看| 最新国产乱人伦偷精品免费网站| 欧美日韩一区三区| 欧美中文字幕视频| 亚洲精品在线观看视频| 欧美一区二区三区四区高清| 亚洲高清免费| 国产伦精品一区二区| 另类春色校园亚洲| 亚洲女性裸体视频| 亚洲人体1000| 久久视频在线视频| 国产精品99久久久久久宅男| 黑人巨大精品欧美一区二区小视频| 免费成人你懂的| 亚洲欧美日韩一区二区三区在线观看 | 久久成人免费电影| 一本色道**综合亚洲精品蜜桃冫| 国产精品普通话对白| 久久视频国产精品免费视频在线| 亚洲人成77777在线观看网| 欧美制服第一页| 亚洲精品老司机| 国产在线拍揄自揄视频不卡99| 欧美不卡视频一区| 欧美一级欧美一级在线播放| 欧美高清视频免费观看| 久久se精品一区精品二区| 亚洲国产精品一区二区第四页av | 国产欧美日韩亚洲一区二区三区| 久久精品二区三区| 亚洲性感激情| 亚洲欧洲日韩女同| 欧美成人在线网站| 国产啪精品视频| 国产精品久久久一本精品| 欧美成人蜜桃| 久久噜噜亚洲综合| 欧美怡红院视频| 亚洲私人影院| 亚洲午夜精品网| 欧美黄色日本| 美女精品一区| 乱中年女人伦av一区二区| 午夜精品久久| 午夜免费电影一区在线观看| 亚洲美女黄色片| 99视频有精品| 亚洲精品123区| 亚洲黄色免费网站| 怡红院精品视频| 狠狠色综合色综合网络| 国语自产精品视频在线看8查询8| 欧美日韩高清在线播放| 欧美日本久久| 欧美激情一区二区三区高清视频| 欧美成人久久| 欧美电影免费观看高清| 久久久精品性| 老司机免费视频久久| 久久久久国产精品午夜一区| 久久久福利视频| 久久久精品五月天| 欧美+日本+国产+在线a∨观看| 久久久久久久一区二区三区| 美女脱光内衣内裤视频久久影院| 亚洲欧美激情在线视频| 久久精品国产免费看久久精品| 久久久在线视频| 另类激情亚洲| 国产精品久久久久久久久久久久| 欧美日韩亚洲综合在线| 国产日韩一区在线| 国产婷婷色综合av蜜臀av| 亚洲国产精品成人综合| 亚洲动漫精品| 一本到12不卡视频在线dvd| 午夜日韩在线| 久久一区二区三区av| 亚洲国产小视频在线观看| 亚洲免费久久| 久久av一区二区三区| 久久久久五月天| 欧美色综合天天久久综合精品| 国产日韩欧美一区二区| 伊人一区二区三区久久精品| 一区二区三区四区国产精品| 午夜国产精品视频| 欧美高清在线| 欧美黑人在线播放| 亚洲专区一区二区三区| 欧美成人a视频| 国产精品区一区二区三区| 亚洲国产一区视频| 中文亚洲视频在线| 免费久久精品视频| 亚洲国产三级网| 亚洲欧美成人一区二区三区| 欧美成人r级一区二区三区| 国产精品高清免费在线观看| 亚洲国产精品尤物yw在线观看| 亚洲图片在区色| 美女网站久久|