bootloader

    1熱度

    2回答

    在目標板的啓動過程中,我們看到uboot(bootloader)在控制檯上打印一些信息,如圖像名稱,圖像類型,加載地址,驗證校驗和等。它使用哪種打印機制?它是否使用類似printk的東西,或者甚至在內核啓動之前它有自己的打印信息定義?我在哪裏可以找到它的打印實施代碼?

    4熱度

    1回答

    我發現通常程序員會在它們的第一行引導程序中註冊(有時是段),他們通常會爲此提供建議。例如: inc cx dec bx inc bp dec di xor ax, ax 我不知道,我知道的是:BIOS引導過程中清除所有寄存器。 初始化引導加載程序中的寄存器和段是否是一種好習慣?如果是的話,什麼是默認寄存器,段和指針值(也許芯片組相關)?

    0熱度

    1回答

    我目前正在嘗試在bochs中編譯和運行一個簡單的bootloader。目前,這是我的bootloader.asm文件: [BITS 16] [ORG 0x7C00] ;Where the code gets mapped top: jmp top ;Loop forever times 510-($-$$) db 0 ;Pad with 0 dw 0xAA55 ;Bootload

    0熱度

    1回答

    我正在使用Atmel AT91bootstrap啓動ATMEL SAMA5d3 xplained主板。 At91bootstrap將基本初始化一些外設,然後將uboot.bin從SD-CARD複製到DRAM。成功傳輸uboot.bin後,它會將控制權交給u-boot。 在at91bootstrap將uboot.bin加載到DRAM中時出現錯誤。 我調試的錯誤,我發現SD_CMD_SEND_STAT

    0熱度

    1回答

    我正在開發一個簡約的操作系統。我創建了一個MBR,查看Master Partition Table中的活動分區。我面臨的問題是扇區加載到內存。 對負載部門,我遇到了兩個方案, CHS尋址 LBA尋址 我讀了CHS是幾乎所有的BIOS支持,但問題的關鍵在於它最多可以解決8GB這個事實,這個缺點已經被LBA解決了。 與那些雖這麼說,我想請教一些問題: 問題1: 什麼方案是最好的選擇呢?如果CHS,我有

    0熱度

    1回答

    我有下面的C代碼: #include <inc/x86.h> #include <inc/elf.h> #define SECTSIZE 512 #define ELFHDR ((struct Elf *)0x10000) // scratch space void readsect(void*, unit32_t); void readsec(uint32_t, uint32_t,

    0熱度

    1回答

    我希望MINIX首先執行我的代碼,然後繼續執行默認的引導加載程序。 我至今是: org 0x7c00 jmp 0:start start: mov ax, cs mov ds, ax mov es, ax mov ss, ax mov sp, 0x8000 ; ... my code ... ; ; that i

    0熱度

    1回答

    我已經在啓動加載程序配置文件中刪除了內核啓動參數「quiet」。我的啓動加載程序配置文件看起來像vga=791 rw root=/dev/ram0 loglevel=0 pci=pcie_scan_all,realloc。但在內核加載期間,啓動消息不會顯示在屏幕上。啓動後,驗證/ proc/cmdline中的內核命令行參數,並顯示爲BOOT_IMAGE=dev000:\EFI\BOOT\linux

    2熱度

    1回答

    我想學習一個簡單的helloworld引導程序程序。指這link。我已經使用nasm彙編器成功生成了這個彙編代碼的二進制文件,並使用仿真器bochs運行,它工作正常。 但是,當我直接用硬盤做同樣的事情時,我無法將字符串打印到屏幕上。 請在下面找到我用過的代碼。 [BITS 16] [ORG 0x7C00] MOV SI, HelloString CALL PrintString JMP

    0熱度

    1回答

    鏈接描述文件中的「。= 0x7c00」究竟做了什麼? 更具體地說,當我把. = 0x7c00在鏈接腳本的開始,爲什麼不將生成的輸出文件與0x7c00 = 31,744零開始? 據我所知,當電腦啓動時,BIOS會將512字節的MBR放在內存地址0x7c00處。但是,我很困惑鏈接器的位置計數器如何影響輸出文件的佈局。 (對於背景下,我想從「86裸機」項目徹底瞭解示例代碼。https://github.