




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、一、stepldrstepldr流程分為以下幾步。setupcopysection(ptoc) mmu_enableicache() 使能 icache port_init()gpio端口初始化uart_init()初始化 uart (調(diào)試端口)nf_init()初始化 nand flash接口將 image 從 flash拷貝到 ram (pfn_image_launch)(load_address_physical)()跳轉二、ebootmain()調(diào)用bootloadermain()調(diào)用kernelrelocate()將全局變量定位到ramoemplatforminit()平臺初始化(時
2、鐘,驅動等)oemdebuginit()初始化調(diào)試端口(串口)oempredownload()初始化以太網(wǎng),判斷是否要下載oemlaunch()啟動操作系統(tǒng)downloadimage()下載文件要下載1 eboot的工作流程從 eboot 目錄中的 startup.s中的 starup 函數(shù)開始。startup 函數(shù)需要完成的工作:把 cpu 設置為合適的運行狀態(tài)作(特權態(tài),supervisor mode ),這一狀態(tài)下可以沒有限制的訪問內(nèi)存和硬件。在 cpu 級別關閉所有中斷。確保 mmu 和 tlb都已經(jīng)關閉。使 cache和 write buffer失效。初始化內(nèi)存控制器。初始化其它的片
3、上設備,例如時鐘。只需要做最基本的初始化。設置棧指針,后面c語言執(zhí)行環(huán)境需要用到。設置并打開 mmu 進行物理和邏輯地址映射,并打開cache 。把 eboot的代碼復制到 ram 中,然后跳轉到 ram 中的 eboot 代碼。跳轉到 c語言的 main 函數(shù)。2 跳轉到 c語言的 main 函數(shù)后,有八個函數(shù)需要執(zhí)行。main.c() 中的五個函數(shù):main 函數(shù),oemdebuginit 函數(shù), oemplatforminit 函數(shù), oempredownload 函數(shù),oemlaunch 函數(shù)和blcommon.c () 中的三個函數(shù):bootloadermain 函數(shù), kernel
4、relocate 函數(shù), downloadimage 函數(shù)其中:kernelrelocate():把 boot loader 中的全局變量重定位到ram 中。由描述了整個 rom 的幾乎所有信息的結構體的指針ptoc 決定如何移動數(shù)據(jù)、移動多少數(shù)據(jù)。oemdebuginit() :初始化調(diào)試輸出用的硬件端口,eboot 后面的代碼中就可以用 oemwritedebugstring() 等函數(shù)輸出調(diào)試信息。oemplatforminit():初始化目標板上的設備,主要有以下作用. initdisplay() lcd初始化并顯示一張圖片initusb() usb 初始化isr_init()usb
5、和 dma isr初始化,使能 dma 中斷bp_init 初始化 boot partition(flash )toc_read 、toc_init 確認 ptoc 信息有效在規(guī)定時間內(nèi)等待按鍵(空格或者回車)mainmenu 根據(jù)按鍵情況,決定是否打印選擇菜單,并等待選擇initethdevice根據(jù)情況初始化以太網(wǎng)控制器oempredownload() :完成以太網(wǎng)下載之前的一些準備工作,包括通過dhcp獲得 ip 地址、初始化 tftp服務等oalkitlcreatename為設備創(chuàng)建名字根據(jù)需要獲取 ip 地址和初始化 tftp downloadimage():用來從遠程開發(fā)機上下載操
6、作系統(tǒng)映像。oemlaunch() :跳轉到操作系統(tǒng)映像。首先, eboot會在這一步試圖把下載的映像寫入nand flash中。寫 flash 功能是調(diào)用 fmd 驅動程序實現(xiàn)的。接下來 oemlaunch() 調(diào)用了 eboot 庫中的 ebootwaitforhostconnect()函數(shù)來獲得 platform builder的一些用戶配置信息,主要獲得了kitl 的啟動方式(主動還是被動),并把它們記錄下來。最后,把啟動配置信息寫入flash 之后,oemlaunch() 會調(diào)用 launch() 函數(shù)進行實際的跳轉。三、nk1 startup.s()中的 sartup 函數(shù)先對硬件
7、進行基本的初始化,然后跳轉到oal的主控函數(shù) kernelstart()開始執(zhí)行。2 armtrap.s()中的krnelstart函數(shù)初始化虛擬地址和物理地址的映射表,打開mmu 和 cache 。設置異常向量跳轉表。3 mdarm.c ()中的arminit 函數(shù)kernelrelocate(ptoc) 將全局變量定位到ram oeminitdebugserial()初始化調(diào)試端口(串口)oeminit() 初始化硬件?設置drwatson的內(nèi)存大小? oalcacheglobalsinit()設置全局 cache ? oalintrinit()中斷初始化aoalintrmapinit()
8、irq和 sysintr 映射初始化b屏蔽所有中斷,清除中斷標志,使能系統(tǒng)時鐘中斷(timer4 )? oaltimerinit 初始化系統(tǒng)時鐘? configuregpio() 配置 gpio ? initdisplay()lcd初始化并顯示一張圖片? oalkitlstart()初始化 kitl 連接kernelfindmemory() 將 ram 分成對象存儲和用戶ram 4 kwin32.c ()中的kernelinit函數(shù)kernelinit函數(shù)用來初始化操作系統(tǒng)。先初始化系統(tǒng)api 函數(shù)調(diào)用表,然后kernelinit()會依次調(diào)用 heapinit()、initmemorypool()、procinit()和schedinit()來初始化系統(tǒng)堆、內(nèi)存池、第一個進程和線程。5 mdarm.c 中的 handleexce
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司職工秋游活動方案
- 公司程序員節(jié)活動方案
- 公司新春晚會策劃方案
- 公司歡迎會策劃方案
- 幼兒教育資源共享的策略探討
- 公司景區(qū)團建活動方案
- 技術人才培養(yǎng)與企業(yè)發(fā)展同步推進的計劃實施
- 公司特色團委活動方案
- 公司股權設計策劃方案
- 高校教師數(shù)字化能力的培養(yǎng)與突破路徑探討
- 高中數(shù)學教師資格考試學科知識與教學能力試題及答案指導(2024年)
- 《系統(tǒng)的閉環(huán)控制》課件
- 24秋國家開放大學《科學與技術》終結性考核大作業(yè)參考答案
- 電腦租合同模板
- 國開2024年秋《經(jīng)濟法學》計分作業(yè)1-4答案形考任務
- 財產(chǎn)贈與公證協(xié)議書模板
- 淺析內(nèi)部控制的問題及其措施分析研究-以永輝超市為例 工商管理專業(yè)
- 灌區(qū)續(xù)建配套與節(jié)水改造工程施工組織設計
- 2024年三級直播銷售員(高級)職業(yè)技能鑒定考試復習題庫(含答案)
- 02S515排水檢查井圖集
- 基槽開挖專項施工方案
評論
0/150
提交評論