freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm初始化(參考版)

2025-03-11 12:42本頁面
  

【正文】 一般BootLoader都包括如下幾個(gè)部分: ? 1. 建立中斷向量異常表 ? 2. 顯示的切換到 SVC且 32指令模式 ? 3. 關(guān)閉 S3C2410的內(nèi)部看門狗 ? 4. 禁止所有的中斷 ? 5. 配置系統(tǒng)時(shí)鐘頻率和總線頻率 ? 6. 設(shè)置內(nèi)存區(qū)的控制寄存器 ? 7. 初始化中斷 ? 8. 安裝中斷向表量 ? 9. 把可執(zhí)行文件的各個(gè)段搬到運(yùn)行態(tài)的各個(gè)位置 ? 10. 跳到 C代碼部分執(zhí)行 ? 啟動(dòng)過程的 C部分 ? 1. 初始化 MMU ? ? 3. 中斷處理程序表初始化 ? 4. 串口初始化 ? 5. 其它部分初始化 (可選 ) ? 6. 主程序循環(huán) 總結(jié) ARM初始化過程分析 了解 ARM初始化過程 熟悉 Bootloader的實(shí)現(xiàn)原理 認(rèn)識(shí) Bootloader的主要任務(wù) 熟悉 BootLoader的結(jié)構(gòu)框架 演講完畢,謝謝觀看! 。+0: 表示 ZI段緊接著 RW段 { *(+ZI) 。所有 RW段放在該部分 } ZI +0 。RW: RW段的名稱 。 Init代碼段為可執(zhí)行文件的第一部分 . * (+RO) 。RO 只讀代碼段的名稱 。MYLOADER: 為可執(zhí)行文件的名稱 , 可自定義 。在 ADS下對(duì)可執(zhí)行代 碼各段有另一個(gè)名稱: | ... | ++ | .bss | ZI 段 ++ 數(shù)據(jù)段 | .data | RW 段 ++ | .rodata | |_____________| 代碼段 (RO 段 ) | .text | ++ | ... | 裝載前 當(dāng)可執(zhí)行文件裝載后 , 在 RAM中的分布如下: | ... | ++ ZI段結(jié)束地址 | ZI 段 | ++ ZI段起始地址 | 保留區(qū) 2 | ++ RW段結(jié)束地址 | RW 段 | ++ RW段起始地址 | 保留區(qū) 1 | ++ RO段結(jié)束地址 | RO 段 | ++ RO段起始地址 | ... | 裝載后 所以裝載過程必須完成把執(zhí)行文件的各個(gè)段從存儲(chǔ)介質(zhì)上搬到 RAM指定的位置。代碼段又分為可執(zhí)行代碼段(.text)和只讀數(shù)據(jù)段 (.rodata), 數(shù)據(jù)段又分為初始化數(shù)據(jù)段 (.data)和未初始化數(shù)據(jù)段 (.bss)。 我們把可執(zhí)行文件分為兩種情況:分別為存放態(tài)和運(yùn)行態(tài)。 2410初始化分析 ? 可執(zhí)行文件組成及內(nèi)存映射 ? 可執(zhí)行文件的組成 在 ADS下 ,可執(zhí)行文件有兩種 ,一種是 .axf文件 ,帶有調(diào)試信息 ,可供 AXD調(diào)試工具使用 .另一種是 .bin 文件 ,可執(zhí)行的二進(jìn)制代碼文件。 ? (3) 最后,還要確認(rèn) boot loader 所用的 內(nèi)核基地址必須和內(nèi)核映像在編譯時(shí)所用的運(yùn)行基地址一致 ,尤其是對(duì)于 uClinux 而言。 ? (2) 你的 boot loader 對(duì)串口的初始化設(shè)置可能會(huì)和內(nèi)核對(duì)串口的初始化設(shè)置不一致。 ? 此外,有時(shí)也會(huì)碰到這樣的問題,那就是:在 boot loader 的運(yùn)行過程中我們可以正確地向串口終端輸出信息,但當(dāng) boot loader 啟動(dòng)內(nèi)核后卻無法看到內(nèi)核的啟動(dòng)輸出信息。造成這個(gè)問題主要有兩種原因: ? (1) boot loader 對(duì)串口的初始化設(shè)置不正確。此外,向串口終端打印信息也是一個(gè)非常重要而又有效的調(diào)試手段。在跳轉(zhuǎn)時(shí),下列條件要滿足 : ? 1. CPU 寄存器的設(shè)置: ? 2. CPU 模式: ? 必須禁止中斷( IRQs和 FIQs); CPU 必須 SVC 模式; ? 3. Cache 和 MMU 的設(shè)置: ? MMU 必須關(guān)閉; 指令 Cache 可以打開也可以關(guān)閉; ? 數(shù)據(jù) Cache 必須關(guān)閉; R0= 0; R1=機(jī)器類型 ID;關(guān)于 Machine Type Number, 可以參見 linux/arch/arm/tools/machtypes。每個(gè)標(biāo)記由標(biāo)識(shí)被傳遞參數(shù)的 tag_header 結(jié)構(gòu)以及隨后的參數(shù)值數(shù)據(jù)結(jié)構(gòu)來組成。 ? Linux 以后的內(nèi)核都期望以標(biāo)記列表 (tagged list)的形式來傳遞啟動(dòng)參數(shù)。 ? 4 .設(shè)置內(nèi)核的啟動(dòng)參數(shù) ? 應(yīng)該說,在將內(nèi)核映像和根文件系統(tǒng)映像拷貝到 RAM 空間中后,就可以準(zhǔn)備啟動(dòng) Linux 內(nèi)核了。 count = 4。 ? ( 2)從 Flash 上拷貝 ? 由于像 ARM 這樣的嵌入式 CPU 通常都是在統(tǒng)一的內(nèi)存地址空間中尋址 Flash 等固態(tài)存儲(chǔ)設(shè)備的,因此從 Flash 上讀取數(shù)據(jù)與從 RAM 單元中讀取數(shù)據(jù)并沒有什么不同。 ? 根文件系統(tǒng)映像 ,則一般將其拷貝到 MEM_START+0x0010,0000 開始的地方。 ? 內(nèi)核映像 ,一般將其拷貝到從 (MEM_START+ 0x8000) 這個(gè)基地址開始的大約 1MB大小的內(nèi)存范圍內(nèi) (嵌入式 Linux 的內(nèi)核一般都不操過 1MB)。 ? 3 .加載內(nèi)核映像和根文件系統(tǒng)映像 ? (1) 規(guī)劃內(nèi)存占用的布局 這里包括兩個(gè)方面: (1)內(nèi)核映像所占用的內(nèi)存范圍;( 2)根文件系統(tǒng)所占用的內(nèi)存范圍。 ) ? 具體的嵌入式系統(tǒng)往往只把
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1