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

正文內(nèi)容

arm初始化-資料下載頁

2025-03-09 12:42本頁面
  

【正文】 態(tài)。 1. 存放態(tài) 存放態(tài)是指可執(zhí)行文件通過 fromelf產(chǎn)生后 ,在存儲(chǔ)介質(zhì) (flash或磁盤 )上的分布 . 此時(shí)可執(zhí)行文件一 般由兩部分組成:分別是代碼段和數(shù)據(jù)段。代碼段又分為可執(zhí)行代碼段(.text)和只讀數(shù)據(jù)段 (.rodata), 數(shù)據(jù)段又分為初始化數(shù)據(jù)段 (.data)和未初始化數(shù)據(jù)段 (.bss)??蓤?zhí)行文件的存放態(tài)如下: ++ | .bss | ++ 數(shù)據(jù)段 | .data | ++ | .rodata | |_____________| 代碼段 | .text | ++ 運(yùn)行態(tài) 可執(zhí)行文件通過裝載過程 , 搬入到 RAM中運(yùn)行 , 這時(shí)候可執(zhí)行文件就變成運(yùn)行態(tài)。在 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指定的位置。而這個(gè)裝載過程由誰來完 成呢?由我們的啟動(dòng)程序來完成 . 裝載過程 在 ADS中 ,可以通過兩種方式來指定可執(zhí)行代碼各段在 RAM中的位置 ,一個(gè)是用 armlink來指定 ,一種是 用 scatter文件來指定 .RAM區(qū)的起始地址 :0x30000000. 1. armlink指定代碼段地址 我們通常的代碼 ,只用指定兩個(gè)段開始地址 , RO段的起始地址和 RW段的起始地址 , ZI段緊接在 RW段之 后 .示例見該部分的 . 2. scatter指定代碼段地址 我們也可以通過 scatter文件指定可執(zhí)行文件各段的詳細(xì)地址 . Scatter文件如下 : MYLOADER 0x30000000 。MYLOADER: 為可執(zhí)行文件的名稱 , 可自定義 。0x3000000: 起始地址 { RO 0x30000000 。RO 只讀代碼段的名稱 。0x30000000: 只讀代碼段的起始地址 { (Init, +First) 。 Init代碼段為可執(zhí)行文件的第一部分 . * (+RO) 。所有其它的代碼段和只讀數(shù)據(jù)段放在該部分 } RW +0 。RW: RW段的名稱 。+0: 表示 RW段緊接著 RO段 { * (+RW) 。所有 RW段放在該部分 } ZI +0 。ZI: ZI段的名稱 。+0: 表示 ZI段緊接著 RW段 { *(+ZI) 。所有 ZI段放在該部分 } } ?ADS產(chǎn)生的各代碼段宏 ?|Image$$RO$$Base| /* RO代碼段起始地址 */ ?|Image$$RO$$Limit| /* RO 代碼段結(jié)束地址 */ ?|Image$$RW$$Base| /* RW代碼段起始地址 */ ?|Image$$RW$$Limit| /* RW 代碼段結(jié)束地址 */ ?|Image$$ZI$$Base| /* ZI 代碼段起始地址 */ ?|Image$$ZI$$Limit| /* ZI 代碼段結(jié)束地址 */ ? 注意 :在兩個(gè) $$之間的名稱 , 與 scatter中指定的段的名稱相同 . ? 裝載過程說明 ? 當(dāng)從 NorFlash啟動(dòng)時(shí) , 要把 flash芯片的首地址映射到0x00000000位置 , 系統(tǒng)啟動(dòng)后 , 啟動(dòng)程序本身把自己從 ? flash中搬到 RAM中運(yùn)行 . 搬移后的各段起始地址 , 由以上宏來確定 . ? 當(dāng)從 NandFlash啟動(dòng)時(shí) , S3C2410會(huì)自動(dòng)把前 NandFlash的前 4k搬到 S3C2410的內(nèi)部 RAM中 ,并把內(nèi)部 ? RAM的首地址設(shè)為 0x00000000, CPU從 0x00000000開始執(zhí)行 . 所以 , 在 nandFlash的前 4k程序中 ,必須包含從 ? NandFlash把 BootLoader的其余部分裝入 RAM的程序 . ? 啟動(dòng)過程的匯編部分 ? 當(dāng)系統(tǒng)啟動(dòng)時(shí) , ARM CPU會(huì)跳到 0x00000000去執(zhí)行。一般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)框架 演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1