




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、stepldrstepldr流程分為以下幾步。setupcopysection(ptoc) mmu_enableicache() 使能 icache port_init()gpio端口初始化uart_init()初始化 uart (調試端口)nf_init()初始化 nand flash接口將 image 從 flash拷貝到 ram (pfn_image_launch)(load_address_physical)()跳轉二、ebootmain()調用bootloadermain()調用kernelrelocate()將全局變量定位到ramoemplatforminit()平臺初始化(時
2、鐘,驅動等)oemdebuginit()初始化調試端口(串口)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)下可以沒有限制的訪問內存和硬件。在 cpu 級別關閉所有中斷。確保 mmu 和 tlb都已經關閉。使 cache和 write buffer失效。初始化內存控制器。初始化其它的片
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() :初始化調試輸出用的硬件端口,eboot 后面的代碼中就可以用 oemwritedebugstring() 等函數(shù)輸出調試信息。oemplatforminit():初始化目標板上的設備,主要有以下作用. initdisplay() lcd初始化并顯示一張圖片initusb() usb 初始化isr_init()usb
5、和 dma isr初始化,使能 dma 中斷bp_init 初始化 boot partition(flash )toc_read 、toc_init 確認 ptoc 信息有效在規(guī)定時間內等待按鍵(空格或者回車)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 功能是調用 fmd 驅動程序實現(xiàn)的。接下來 oemlaunch() 調用了 eboot 庫中的 ebootwaitforhostconnect()函數(shù)來獲得 platform builder的一些用戶配置信息,主要獲得了kitl 的啟動方式(主動還是被動),并把它們記錄下來。最后,把啟動配置信息寫入flash 之后,oemlaunch() 會調用 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()初始化調試端口(串口)oeminit() 初始化硬件?設置drwatson的內存大小? 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ù)調用表,然后kernelinit()會依次調用 heapinit()、initmemorypool()、procinit()和schedinit()來初始化系統(tǒng)堆、內存池、第一個進程和線程。5 mdarm.c 中的 handleexce
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑項目合同范本:勘察與設計
- 山地旅游資源開發(fā)承包合同
- 鋼材采購合同樣本格式
- 餐飲服務與廚師雇傭合同范文
- 涂料供應與采購合同范本
- 合同檔案寄存確認書
- 貸款合同模板:個人貸款標準合同范本
- 銀行與公司短期貸款合同范例
- 氣動系統(tǒng)培訓課件
- 海豚培訓課件下載
- 小學數(shù)學五年級下冊必考《質數(shù)和合數(shù)》練習題(附質數(shù)合數(shù)知識點)
- 地中海風格室內設計
- 臨床實習出科小結神經外科
- 碳酸鈣市場分析及競爭策略分析報告
- 糖尿病性眼肌麻痹的護理查房
- 泡泡瑪特展廳活動策劃
- 健康生活方式與健康促進的科學研究
- 文旅部門消防培訓課件
- 中職語文課件:1.1《送瘟神》課件14張2023-2024學年中職語文職業(yè)模塊
- 胃瘍(消化性潰瘍)中醫(yī)護理方案
- 《哲學概論(第2版)》-課件全套 第0-6章 緒論、哲學的形態(tài)-馬克思主義哲學
評論
0/150
提交評論