《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于S3C2440的WinCE Bootloader的分析與設計
基于S3C2440的WinCE Bootloader的分析與設計
現代電子技術
李松松,李有端 電子科技大學
摘要: 基于S3C2440的WinCEBootloader的分析與設計,摘要:針對BootLoader嚴格依賴于具體的嵌入式硬件系統,并且從頭開發一套適合特定硬件系統的BootLoader又相當復雜這一問題,分析設計了基于S3C2440的WinCE操作系統的引導程序的實現方法。結合飛凌公司的嵌入式產品TE
Abstract:
Key words :

摘要:針對BootLoader嚴格依賴于具體的嵌入式硬件系統,并且從頭開發一套適合特定硬件系統的BootLoader又相當復雜這一問題,分析設計了基于S3C2440WinCE操作系統的引導程序的實現方法。結合飛凌公司的嵌入式產品TE2440的硬件特性,對BootLoader啟動的兩個階段和配置文件進行了詳細的分析和設計,最終實現了系統引導加載程序的構建。為項目后續的開發奠定了良好的基礎。
關鍵詞:嵌入式系統;引導程序;WinCE;EBoot

    Bootloader的開發是嵌入式系統開發必不可少的環節,一個好的Bootloader不僅可以給項目的后續開發工作帶來很大便利,而且在項目開發結束后對用戶使用產品也提供了很多方便。但是,由于嵌入式的硬件是無標準、非規范的,Bootloader的功能又是直接與微處理系統相關的,所以給開發人員的工作帶來了許多不便。在實際的項目開發中,一般都需要對特定的硬件系統進行Bootloader的設計,可是從頭開發一套系統的Bootloader是非常復雜并且耗時的,針對這一難點,微軟公司推出的面向嵌入式應用領域的操作系統Windows CE體現了非常大的優勢,Windows CE具有強大的操作系統功能、穩定可靠的性能、高度的模塊化、可定制性、與桌面Windows平臺一致的開發特性。它最大的優勢是具有高度的模塊化,可以提供與硬件無關的軟件框架,把與硬件無關但是又代表普遍通用性的內容抽取出來,形成標準函數庫。而與硬件相關的不具有通用意義的BootLoader代碼則由開發人員具體負債開發,這樣就給開發人員帶來了相當大便利。并且開發出的Bootloader因是嚴格按照微軟提供的模板開發,所以又有很好兼容性且效率高。
    由于Bootloader的實現依賴于CPU的體系結構,因此從固態存儲設備上啟動的BootLoader大多都是兩個階段的啟動過程。本文以飛凌嵌入式公司的產品TE2440為例,詳細分析Windows CE BootLoader開發的兩個階段過程。TE2440的微處理器采用三星公司的S3C2440A,主頻400MH-z,內置64 MB SDRAM和64 MB NANDFLASH,10 M網口,采用CS8900Q3。S3C2440支持2種啟動模式:一種是從NandFlash啟動;另一種是從NorF-lash啟動,TE2440支持從NandFlash啟動。

1 Bootloader的第一階段分析
    為了防止給后來的調試工作帶來更多的麻煩,要盡量使第一階段做盡可能少的工作,只要使CPU正常工作起來即可,然后把大量復雜的初始化工作留給第二階段來做。第一階段是在ADS(ARM Developer Suite)環境下開發的。S3C2440系統引導加載程序包括2440init,s、2440-lib.s函數庫、2440lib.c函數庫、mmu,c、dma,c函數庫等幾個主要的文件。因為與硬件密切相關。所以通常采用匯編語言編寫,本文主要分析s3c2440系統在加電后的硬件設置處理過程,即2440init.s文件中的程序執行過程。
    第一階段主要包括如下步驟:
    (1)進入啟動程序的入口地址,禁止看門狗、屏蔽所有中斷。因為為中斷提供服務通常是操作系統設備驅動程序的責任,所以在Bootlo-ader的執行全過程中可以不必響應任何中斷。中斷屏蔽可以通過寫CPU的中斷屏蔽寄存器或狀態寄存器來完成。
a.JPG    


    (2)設置CPU的速度和時鐘頻率
    根據工作頻率設置時鐘、PLL,2440內部3個時鐘:FCLK、HCLK、PCLK,分別供CPU、AHB總線和APB總線使用,一般都選擇周期比為1:2:8的設置。

b.JPG

    (3)初始化基本硬件和存儲器系統
   
    (4)設置堆棧并跳轉至第二階段的入口。將FLASH中的代碼段、數據段拷貝到RAM中,將初始化數據段,跳入C語言的main函數執行,結束Bootloader初步引導;Bi的主要功能是引導和加載操作系統,不會用到很多種類型及數量的外設,如果在BL中啟用中斷反而會使對問題的處理復雜化。

c.JPG


2 Bootloader的第二階段分析
    第一階段結束之后,函數跳轉到由C語言寫的main()函數,也就是Bootloader開發的第二階段EBoot,該階段的開發環境是Platform Builder,簡稱PB,它是微軟提供給開發人員進行基于Windows CE平臺下嵌入式操作系統定制的集成開發環境。main()函數實現代碼為:
    d.JPG
    該函數主要功能就是調用BootloaderMain()函數,其實main函數不是必須的,實際上程序也可以直接跳轉到BootloaderMain()函數,在第一階段的匯編代碼后加入main()函數可以更好地提高程序的性能。本文主要分析BootloaderMain()調用的一些關鍵的函數,函數調用關系如圖1所示。

f.JPG


    最早被BootLaderMain()調用的OEM函數是OEMDebugInit(),它負責初始化BootLoader的調試功能串口,在它被調用運行之后BootLoader的代碼才可以調用它的調試輸出功能函數。OEMDebugInit()調用OEMInitDebugSerial()來初始化調試串口。
    OEMPlatformInit()函數是BootLoader的最重要的OEM函數,所有與BootLoader所需硬件功能有關的目標平臺板級外設如以太網接口、Fl-ash存儲器等都在這里進行初始化,包括嵌入式CPU芯片內置的外設。它結束后就開始下載工作了。函數代碼如下:
    g.JPG
    OEMPreDownload():所有在硬件初始化完成以后、開始下載操作系統鏡像之前所需要處理的任務都可以放在該函數完成。它主要任務是以太網下載前的準備工作。DownloadImage()的任務是從遠程開發機上下載操作系統鏡像到RAM。它通過調用OEMReadData()從下載端口讀取操作系統鏡像的數據,在本文的EBoot中,該函數主要負責從以太網端口讀取操作系統鏡像數據;它還調用OEMShowProgress()函數用來向用戶顯示BootLoader下載操作系統鏡像時的下載狀態。OEMMapMemAddr()函數用于當下載得到的操作系統鏡像自身所記錄的目的地址是Flash存儲設備時該OEM函數要負債將鏡像的數據以重定位的方式暫存到RAM內存緩沖區中。
    OEMLaunch()是最后一個被BootLaderMain()函數調用的。它的主要功能是實現目標嵌入式系統程序執行流跳轉。無論BootLoader是通過以太網端口下載操作系統鏡像還是從本地讀取操作系統鏡像到內存,都要依靠該函數將程序的執行流從BootLoader轉移到Windows CE的操作系統。Downloadlmage()函數下載的操作系統鏡像是暫存在RAM中的,所以我們還需要在OEMLaunch()函數指令執行跳轉之前保存下載所得的操作系統鏡像以及用戶配置數據到Flash,以便系統從新啟動或者復位時可以直接從本地存儲讀取鏡像數據。

3 配置文件
    Bootloader源代碼編譯后會產生一個名為eboot.exe的可執行文件,但寫入Flash的Bootloader是一個二進制的映像文件,也就是.bin文件或.nbO文件,所以需要把eboot.exe文件轉換成.bin文件或.nbO文件。

g.JPG
4 燒寫Bootloader
    配置好了之后,在PC機中編譯產生了Eboot.bin文件,把Bootloader燒寫到目標機中。利用三星公司的sjf2440工具燒寫,使用JTAG實現下載。BootLoader下載后再通過以太網口把操作系統內核鏡像文件下載到目標機中。下載鏡像所使用的軟件是DNW,DNW是三星公司為S3C2 440芯片配置的一款專用軟件,它可以在Windows下通過USB方式燒寫Flash。如圖2所示,內核鏡像已下載到NandFlash中。

i.JPG

5 結語
    BootLoader的設計和實現是一個非常復雜并且重要的過程,一個好的Bootloader可以給嵌入式產品的開發調試工作帶來許多便利。本文從源代碼人手詳細分析了Wince Bootloader啟動的兩個階段以及配置文件信息。實驗達到了預期的效果,為項目后續的開發奠定了良好的基礎。
 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久精品一区蜜桃臀影院| 一区二区三区精品久久久| 国产欧美日韩视频在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 久热国产精品视频| 欧美日韩亚洲国产一区| 国产三级欧美三级日产三级99| 激情亚洲一区二区三区四区| 欧美精品久久久久久| 国产亚洲亚洲| 一区二区三区无毛| 欧美体内谢she精2性欧美| 欧美一区2区视频在线观看| 国产一区999| 国产精品区二区三区日本| 一区二区三区导航| 久久野战av| 亚洲福利视频一区| 亚洲自拍电影| 一区二区电影免费在线观看| 一区二区欧美激情| 欧美日韩成人综合天天影院| 国产欧美一区二区三区久久| 欧美日韩理论| 影音先锋日韩有码| 欧美一区二区三区精品电影| 可以免费看不卡的av网站| 欧美激情精品久久久久久久变态| 亚洲欧美一区二区三区在线| 久久福利影视| 国产一区二区三区在线观看免费| 国产精品久久777777毛茸茸| 亚洲欧美激情一区二区| 欧美成人国产一区二区| 亚洲电影欧美电影有声小说| 亚洲欧美一区二区三区久久| 亚洲日韩中文字幕在线播放| 一本高清dvd不卡在线观看| 国产农村妇女毛片精品久久莱园子| 亚洲欧美日本伦理| 亚洲靠逼com| 在线观看视频一区二区欧美日韩| 亚洲狼人综合| 久久久久久久999精品视频| 国产精品亚洲激情| 在线 亚洲欧美在线综合一区| 亚洲承认在线| 一区二区欧美亚洲| 国产欧美一级| 亚洲视频网站在线观看| 一区二区在线观看视频| 海角社区69精品视频| 亚洲午夜精品福利| 亚洲成在人线av| 国产日韩欧美黄色| 欧美日韩国产在线| 亚洲精品久久久久久久久| 欧美一区二区三区四区视频| 欧美精品日韩三级| 这里只有精品在线播放| 国产欧美在线视频| 欧美日韩一区视频| 欧美刺激午夜性久久久久久久| 国产精品久久久久久久第一福利| 久久激情久久| 美玉足脚交一区二区三区图片| 在线综合+亚洲+欧美中文字幕| 一区二区三区在线视频观看| 久久综合国产精品台湾中文娱乐网| 91久久线看在观草草青青| 欧美日韩在线高清| 国产婷婷色一区二区三区在线| 午夜免费日韩视频| 久久久久久久91| 日韩一级片网址| 99精品视频免费观看视频| 校园春色国产精品| 久久久久国产精品一区三寸| 亚洲欧美精品中文字幕在线| 久久一区二区三区四区| 国产视频综合在线| 国产亚洲精品7777| 亚洲五月六月| 欧美a级一区| 国产又爽又黄的激情精品视频| 亚洲精品美女在线观看| 9色porny自拍视频一区二区| 欧美亚洲免费| 欧美精品黄色| 欧美午夜视频在线| 欧美精品福利| 一区二区av| 国产综合香蕉五月婷在线| 欧美承认网站| 欧美日韩成人激情| 国产精品国产福利国产秒拍| 国产一区二区三区av电影| 国模大胆一区二区三区| 国产亚洲激情在线| 悠悠资源网亚洲青| 欧美伦理a级免费电影| 欧美亚洲在线视频| 欧美夜福利tv在线| 一本色道久久综合亚洲精品小说| 亚洲人成亚洲人成在线观看| 久久福利精品| 国产一区二区三区四区在线观看| 在线观看91精品国产入口| 国产精品久久毛片a| 亚洲高清不卡在线| 欧美丝袜第一区| 欧美一区二区三区喷汁尤物| 国产精品久久国产精麻豆99网站| 亚洲免费观看高清完整版在线观看熊| 欧美伦理a级免费电影| 亚洲一区二区三区国产| 午夜精品视频在线观看一区二区| 亚洲天堂黄色| 欧美精品久久久久久久| 麻豆精品视频| 欧美成人精品在线| 精品电影在线观看| 久久国产福利国产秒拍| 亚洲欧美日韩一区二区三区在线| 亚洲免费观看高清完整版在线观看| 亚洲精品国产精品国自产在线| 亚洲精品乱码久久久久久按摩观| 国产日韩一级二级三级| 亚洲激情一区二区三区| 久热精品视频在线观看| 久久综合精品一区| 伊人久久大香线蕉综合热线| 中日韩美女免费视频网站在线观看| 国产亚洲毛片| 久久天堂精品| 欧美激情一区二区三区四区| 欧美激情中文字幕乱码免费| 亚洲一区二区不卡免费| 久久精品一区二区| 欧美二区在线| 开心色5月久久精品| 中国亚洲黄色| 韩国av一区二区三区| 久久一区免费| 欧美午夜免费影院| 国产一区二区三区久久| 亚洲欧美福利一区二区| 国产欧美一区二区三区视频| 亚洲一区二区三区免费视频| 亚洲免费观看在线观看| 国产模特精品视频久久久久| 国内成人精品一区| 夜夜嗨av一区二区三区中文字幕| 欧美影院在线播放| 欧美日韩综合久久| 最近中文字幕mv在线一区二区三区四区| 在线成人av| 亚洲综合色激情五月| 一区二区三区欧美成人| 久久久久国产免费免费| 欧美成人在线免费观看| 欧美日韩一二三四五区| 久久精品国产一区二区三| 亚洲午夜未删减在线观看| 亚洲精品国产精品国产自| 午夜精品久久久久久久蜜桃app| 国产精品综合av一区二区国产馆| 欧美性色视频在线| 欧美.日韩.国产.一区.二区| 尤物yw午夜国产精品视频明星| 在线高清一区| 欧美午夜电影在线| 欧美激情亚洲另类| 一区二区欧美日韩| 亚洲精品人人| 日韩视频中文字幕| 国产一级揄自揄精品视频| 亚洲人成在线观看网站高清| 制服诱惑一区二区| 久久夜色撩人精品| 亚洲国产精品久久人人爱蜜臀| 久久久久久久久综合| 国内在线观看一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 国产欧美在线看| 一区二区不卡在线视频 午夜欧美不卡在| 日韩亚洲欧美在线观看| 亚洲免费高清| 国精品一区二区| 欧美日韩精品久久| 欧美高清在线精品一区| 国产精品色婷婷久久58| 亚洲视频在线播放| 亚洲综合色婷婷| 猫咪成人在线观看| 亚洲欧美另类综合偷拍| 国产一区二区三区四区三区四| 欧美日韩中文在线观看| 午夜欧美大片免费观看| 亚洲精品国产精品国产自| 欧美大片一区二区| aa日韩免费精品视频一| 国产精品chinese| 国产精品黄页免费高清在线观看| 亚洲人永久免费| 亚洲免费高清视频| 久久综合九色综合网站| 裸体丰满少妇做受久久99精品| 狠狠色丁香久久婷婷综合_中| 国产精品v欧美精品v日韩| 国产精品久久久对白| 一区二区不卡在线视频 午夜欧美不卡在| 欧美风情在线观看| 久久国产66| 麻豆freexxxx性91精品| 国产日韩欧美精品| 欧美伊久线香蕉线新在线| 欧美日韩国产一区| 国内精品视频666| 国产精品永久免费视频| 亚洲高清不卡一区| 欧美亚洲动漫精品| 国产一区二区中文| 亚洲美女免费视频| 久久一区二区三区四区五区| 久久影院午夜论| 久久综合精品国产一区二区三区| 亚洲国产人成综合网站| 亚洲国产精品一区二区www在线| 亚洲精品一区二区三| 西西人体一区二区| 亚洲欧美激情四射在线日| 欧美高清在线观看| 国产精品老牛| 麻豆成人精品| 亚洲欧美久久久久一区二区三区| 亚洲国产福利在线| 蜜臀av在线播放一区二区三区| 欧美亚洲成人网| 久热成人在线视频| 在线视频国内自拍亚洲视频| 一区二区国产日产| 国产欧美日韩免费| 国产精品xxx在线观看www| 久久久久久久综合色一本| 韩日欧美一区二区三区| 午夜日韩在线| 亚洲清纯自拍| 欧美揉bbbbb揉bbbbb| 亚洲深夜福利在线| 亚洲高清不卡在线观看| 国产精品国产馆在线真实露脸| 亚洲影音先锋| 欧美剧在线免费观看网站| 一区二区三区鲁丝不卡| 国产精品一区久久| 在线综合欧美| 国产精品日韩精品| 欧美日韩免费在线观看| 狠狠久久亚洲欧美专区| 欧美午夜一区二区三区免费大片| 久久久99精品免费观看不卡| 亚洲美女尤物影院| 欧美三级在线播放| 国产亚洲成av人在线观看导航| 在线观看亚洲视频| 国产女人aaa级久久久级| 亚洲一区二区在线免费观看视频| 在线欧美日韩国产| 亚洲欧美成人在线| 欧美性猛交一区二区三区精品| 久久亚洲一区二区| 一级成人国产| 欧美日韩美女在线观看| 久久久久青草大香线综合精品| 亚洲一区三区视频在线观看| 久久成人精品| 亚洲色无码播放| 亚洲乱码视频| 国产视频一区二区三区在线观看| 欧美系列电影免费观看| 国产在线视频欧美| 黄色成人片子| 欧美国产综合一区二区| 亚洲福利专区| 一二美女精品欧洲| 羞羞视频在线观看欧美| 亚洲国产综合在线看不卡| 亚洲一区高清| 欧美久久久久| 亚洲女爱视频在线| 亚洲福利在线观看| 久久成年人视频| 欧美午夜片欧美片在线观看| 欧美激情精品久久久久久久变态| 久久久亚洲国产美女国产盗摄| 久久久夜色精品亚洲| 亚洲精品一级| 久久一区激情| 一本色道久久综合亚洲精品高清| 欧美日韩国产二区| 欧美中日韩免费视频| 欧美日韩直播| 欧美成人69| 亚洲精品免费一二三区| 欧美少妇一区| 欧美另类视频在线| 国产一区在线看| 欧美激情自拍| 欧美日韩精品| 午夜精品亚洲| 欧美女同视频| 久久综合福利| 国产精品毛片在线| 国产一区美女| 久久精品国产2020观看福利| 欧美黄色大片网站| 午夜精品99久久免费| 国产精品高潮呻吟| 欧美了一区在线观看| 久久精品国产清自在天天线| 一本色道久久加勒比精品| 亚洲视频在线观看三级| 最新成人在线| 国产一区二区三区日韩欧美| 你懂的国产精品永久在线| 国产人妖伪娘一区91| 国产美女搞久久|