資源描述:
《《MON結(jié)構(gòu)》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、PMON的解讀和開發(fā)PMON的發(fā)展和編譯環(huán)境PMONPMON的早期版本的功能有:shell,net,load,debug。不支持硬盤,顯卡。并且擴(kuò)展性不好,編譯器是sde-gcc.PMON的發(fā)展和編譯環(huán)境PMON2000現(xiàn)在龍芯1和2用的BIOS,在原來的PMON的基礎(chǔ)上添加了硬盤支持,文件系統(tǒng)ext2和fat的支持,顯卡的支持等等。修復(fù)了debug功能,擴(kuò)展性也得到提高。比較容易移植到新的系統(tǒng)。編譯器為mips-elf-gccPMON2000的目錄結(jié)構(gòu)Conf(配置目錄)Target(每個(gè)系統(tǒng)在該目錄下有一個(gè)子目錄,進(jìn)行新的
2、系統(tǒng)支持的時(shí)候,只需要修改該目錄下的文件)Sys(pmon中的一些系統(tǒng)支持)GT64240BONITONB_GODSONPMON2000的框架Arch(處理器相關(guān)代碼一些定義)Dev(設(shè)備的驅(qū)動(dòng)程序,主要是IDE的ATA,北橋的網(wǎng)卡IC,和pci設(shè)備eepro100)Kern(主要是一些系統(tǒng)調(diào)用的實(shí)現(xiàn),比如malloc,time,signal,socket)Net和netinet(實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議)Scsi協(xié)議的實(shí)現(xiàn)Pmon(共有代碼)Arch(處理器相關(guān)的代碼,比如Flush_Cache等)PMON2000的框架Cmds(Pmo
3、n的shell中各個(gè)命令的實(shí)現(xiàn))Dev(一些基本設(shè)備的驅(qū)動(dòng),比如Flash)Fs(文件系統(tǒng))Loadelf文件的實(shí)現(xiàn)網(wǎng)絡(luò)命令以及tftp的實(shí)現(xiàn)Lib(pmon的lib庫,實(shí)現(xiàn)了memcpy,memset,printf基本函數(shù))X86emu(x86的Emulator,主要是運(yùn)行顯卡的BIOS,初始化顯卡Targets目錄的組成每個(gè)系統(tǒng)一個(gè)目錄,我們拿Bonito來為例子,主要有下列文件:start.S位于Targets/Bonito/Bonito目錄下,是C環(huán)境建立之前的匯編代碼,使整個(gè)BIOS運(yùn)行的起點(diǎn)。tgt_machdep
4、.c位于Targets/Bonito/Bonito目錄下,一些板子相關(guān)的函數(shù)。pci_machdep.c進(jìn)行Targets/Bonito/pci空間分配的一些函數(shù)Targets/Bonito/dev目錄下一些板子特殊的設(shè)備的驅(qū)動(dòng)。Targets/Bonito/conf目錄下是一些編譯環(huán)境建立需要的一些文件PMON編譯環(huán)境的建立將comp.tar.gz在/usr/local解開將/usr/local/comp/mips-elf/gcc-2.95.3/bin加入到PATH目錄下進(jìn)入pmon2000的tools目錄下make,建立一
5、些conf需要的工具。進(jìn)入pmon2000的Targets/Bonito/conf目錄中編輯conf目錄下Bonito文件,選擇需要編譯的模塊tools/pmoncfg/pmoncfgBonito(conf類型文件)。形成目標(biāo)主目錄下的compiler目錄進(jìn)入Targets/Bonito/compiler/Bonito的目錄,make形成pmon。PMON編譯環(huán)境的建立Makefile是根據(jù)Targets/Bonito/conf/Makefile.Bonito文件形成的。鏈接腳本是為Targets/Bonito/conf/ld
6、.script。PMON2000的框架CPUResetEntryJumpoverthebeginningofromInitialSerialDeviceInitialMemoryCopycodesfromRomtoRamInitialNorthBridgeInitialSouthBridgeInitialVGACardInitialShellWaitCommandInitailtlb&cacheInitailCenvironmentAssemblyCOtherPCIDeviceSetupthetraps,BEV=0異常向量表異
7、常類型進(jìn)入點(diǎn)SR(BEV)=0SR(BEV)=1程序地址物理地址程序地址物理地址Reset(啟動(dòng))NMI(不可屏蔽中斷)0xBFC000000x1FC00000TLB替換(32位)0x800000000x00xBFC002000x1FC00200XTLB替換(64位)0x800000800x800xBFC002800x1FC00280Cache錯(cuò)0xA00000000x1000xBFC003000x1FC00300普通中斷0x800001800x1800xBFC003800x1FC00380Pmon的空間分配異常向量表Pmon
8、自身?xiàng)?臻gPmon的代碼段和數(shù)據(jù)段用戶程序代碼段和數(shù)據(jù)段用戶的堆和棧0x800000000x800200000x801000000x8fffffff0x8001c000PMON的匯編部分(starto.S或sbdreset.S)的解讀CPUResetEntryJumpover