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

正文內(nèi)容

ar71xx-uboot編譯入門-在線瀏覽

2024-09-02 12:46本頁面
  

【正文】 段 0x1f000000 處循環(huán)映射 4 次 Flash 的前 4MB,而 UBoot 大小只有100KB多,因此 0x1f000000 跟 0x1fc00000 處的數(shù)據(jù)是一樣的,這就實現(xiàn)了運行地址的轉(zhuǎn)移。/* REMAP_DISABLE */lia0, AR7100_SPI_CLOCKlit0, 0x43swt0, 0(a0)復(fù)制代碼以上代碼的作用是禁用物理段 0x1f000000 的 4MB Flash 數(shù)據(jù)循環(huán)映射,以便讓 0x1f000000 能夠映射 16MB 的 Flash 數(shù)據(jù)/* Initialize caches...*//* 初始化緩存 */lat9, simple_mips_cache_resetjalr t9nop/* ... and enable them.*//* 啟用緩存 */lit0, CONF_CM_CACHABLE_NONCOHERENTmtc0t0, CP0_CONFIG省略if defined(CONFIG_AR7100) || defined(CONFIG_AR7240)/* 將緩存鎖定在 Kseg0 低端處 */lat9, mips_cache_lock_24kjalr t9nopendifendif /* ifndef COMPRESSED_UBOOT *//* 將棧指針指向緩存 */lit0, CFG_SDRAM_BASE + CFG_INIT_SP_OFFSETlasp, 0(t0)/* 進(jìn)入 C 環(huán)境 */lat9, board_init_fjt9nop復(fù)制代碼這段代碼的作用是初始化緩存,并將緩存鎖定在 Kseg0 上,用作臨時的??臻g此時內(nèi)存并未初始化, Kseg0 對應(yīng)的 0x80000000 ~ 0x8fffffff 還不能被訪問,因此需要用緩存代替。bd_t *bd。ulong addr, addr_sp, len = (ulong)amp。ulong *s。endififdef CONFIG_PURPLEvoid copy_code (ulong)。gd_data。memset ((void *)gd, 0, sizeof (gd_t))。 *init_fnc_ptr。}}ifdef COMPRESSED_UBOOTcheckboard(board_string)。gdram_size = bootflag。print_size (gdram_size, \n)。/* We can reserve some RAM on top here.*//* round down to next 4 kB limit.*/addr amp。debug (Top of RAM usable for UBoot at: %08lx\n, addr)。 /* start ofDRAM memory */bdbi_memsize= gdram_size。 /* Console Baudrate */memcpy (id, (void *)gd, sizeof (gd_t))。endif/* 執(zhí)行代碼轉(zhuǎn)移 */relocate_code (addr_sp, id, addr)。初始化函數(shù)位于 board_init_f 函數(shù)上方init_fnc_t *init_sequence[] = {ifndef COMPRESSED_UBOOTtimer_init, /* 初始化時鐘 */endifenv_init, /* initialize environment */ /* 初始化環(huán)境變量 */ifdef CONFIG_INCA_IPincaip_set_cpuclk,/* set cpu clock according to environment variable */endifinit_baudrate, /* initialze baudrate settings */ifndef COMPRESSED_UBOOTserial_init, /* serial munications setup */ /* 初始化串口,這樣 TTL 才有輸出 */endifconsole_init_f,/* 初始化控制臺環(huán)境 */display_banner, /* say that we are here */ /* 顯示 UBoot ..... */ifndef COMPRESSED_UBOOTcheckboard,/* 顯示 AP99 (ar7241 Virian) Uboot */init_func_ram, /* 初始化內(nèi)存 */endifNULL,}。 ve relocated ourselves.*//* 跳轉(zhuǎn)到移動后的代碼繼續(xù)執(zhí)行 */addit0, a2, in_ram _startjt0nop.worduboot_end_data.worduboot_end.wordnum_got_entriesin_ram:/* 此時已經(jīng)在內(nèi)存中了 *//* Now we want to update GOT.*/lwt3, 4(t0)/* t3 num_got_entries*/addit4, gp, 8/* Skipping first two entries.*/lit2, 2/* GOT 表重定位 */1:lwt1, 0(t4)beqzt1, 2faddt1, t6swt1, 0(t4)2:addit2, 1bltt2, t3, 1baddit4, 4 /* delay slot*//* Clear BSS.*/lwt1, 12(t0)/* t1 uboot_end_data*/lwt2, 8(t0)/* t2 uboot_end */addt1, t6 /* adjust pointers */addt2, t6/* 清除 BSS 段,即全局變量清零 */subt1, 41:addit1, 4bltlt1, t2, 1bswzero, 0(t1)/* delay slot*//* 移交控制權(quán)到 board_init_r */movea0, a1lat9, board_init_rjt9movea1, a2 /* delay slot*/.endrelocate_code復(fù)制代碼relocate_code 的作用是將 UBoot 代碼移動到內(nèi)存的最高端,并清空 BSS 段,設(shè)置棧指針,創(chuàng)造一個完整的 C 環(huán)境。ulong size。ifndef CFG_ENV_IS_NOWHEREextern char * env_name_spec。bd_t *bd。gd = id。/* tell others: relocation done */debug (Now running in RAM UBoot at: %08lx\n, dest_addr)。/* 記錄 UBoot 重定位時移動的偏移量 */monitor_flash_len = (ulong)amp。/** We have to relocate the mand table manually*//* UBoot 命令表,重定位所有字符串地址和函數(shù)地址 */for (cmdtp = amp。 cmdtp !=amp。 cmdtp++) {ulong addr。if 0printf (Command \%s\: 0x%08lx = 0x%08lx\n,cmdtpname, (ulong) (cmdtpcmd), addr)。addr = (ulong)(cmdtpname) + gdreloc_off。if (cmdtpusage) {addr = (ulong)(cmdtpusage) +
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1