⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpu.pil

📁 Intel XScale PXA255 引导Linux的Redboot 版bootloader源代码!
💻 PIL
字号:
print "\n========= Simulation Starts =========\n";print "Simulator CPU Version = ";print cpu.version;print "\n\n";//cpu.ex.trace.enable=1;  // Disassembly as we go along.cpu.ex.syscall.enable=1;  // Enable the 0xE7DEAD1A opcode to do printfs!//cpu.ex.debug.enable=1;  // Only for angel debugger// ----------------------------------------------------------------------// example routines for very verbose output//cpu.cycle{//print"------------- Cycle: "; print cpu.cycle; print" ----------------\n";//print "R0 = "; printx cpu.byp.R0; print "\n";//print "R2 = "; printx cpu.byp.R2; print "\n";//print "R14 = "; printx cpu.byp.R14; print "\n";//print "CPSR = "; printx cpu.ex.CPSR; print "\n";//print "SPSR_FIQ = "; printx cpu.ex.SPSR_FIQ; print "\n";//print "PC = "; printx cpu.ex.pc; print "\n";//}//cpu.cycle{//    print "------------- Cycle: ";//    print cpu.cycle;//    print" ----------------\n";//}// cpu.cycle{//     print"------------- Cycle: "; print cpu.cycle; print" ----------------\n";//     print "R0 = "; printx cpu.byp.R0; print "\n";//     print "R1 = "; printx cpu.byp.R1; print "\n";//     print "CPSR = "; printx cpu.ex.CPSR; print "\n";// }// ----------------------------------------------------------------------// CPU log configuration and exception actions:log_swi = 1;                            // SWIs per selog_emulated_swi = 0;                   // the 0xE7DEAD1A "trap"log_irq = 0;                            // IRQslog_registers = 0;                      // registers at each instructionhalt_on_abort = 1;                      // HALT if a DATA ABORT occurshalt_on_prefetchabort = 1;              // HALT if a PREFETCH ABORT occurshalt_on_undef_instruction = 1;          // HALT if UNDEFINED INSTRUCTION trap// ----------------------------------------------------------------------// Confirm correct application exitcpu.programexit {    print "\n\n-------------------------------------\n";    print "Safe Application exit at Cycle ";    print cpu.cycle;    print "\nPC = "; printx cpu.ex.pc;    print " R14 = "; printx cpu.byp.R14;    print " CPSR = "; printx cpu.ex.CPSR;    print "\n";    print "========== Simulation Ends ==========\n\n";    exit 0;}// ----------------------------------------------------------------------// Check what to log per instruction retirement:cpu.ex.retireInst {    if ( log_registers ) {        print "Cycle: "; print cpu.cycle;        print " R0 = "; printx cpu.byp.R0;        print " R1 = "; printx cpu.byp.R1;        print " R2 = "; printx cpu.byp.R2;        print " R3 = "; printx cpu.byp.R3;        print " CPSR = "; printx cpu.ex.CPSR; print "\n";    }    if ( log_emulated_swi && (0xdeadcafe == cpu.ex.pc) ) {        print "---------------------------------------------------------\n";        print "---------- <emulated SWI instruction - bad op>-----------\n";        print "Cycle: "; print cpu.cycle;        print " R0 = "; printx cpu.byp.R0;        print " R1 = "; printx cpu.byp.R1;        print " R2 = "; printx cpu.byp.R2;        print " R3 = "; printx cpu.byp.R3;        print " CPSR = "; printx cpu.ex.CPSR; print "\n";    }    if ( 0x0 == cpu.ex.pc ) {        // Reset - SVC mode        print "------ Cycle: "; print cpu.cycle; print" ------\n";        print "***RESET  ";	print " LR = "; printx cpu.byp.R14_SVC;	print " CPSR = "; printx cpu.ex.CPSR;	print " SPSR = "; printx cpu.ex.SPSR_SVC;        print "\n";    }    if ( 0x4 == cpu.ex.pc ) {        // ***UNDEFINED INSTRUCTION*** UNDEF mode        print "------ Cycle: "; print cpu.cycle; print" ------\n";        print "***UNDEFINED INSTRUCTION***";	print " LR = "; printx cpu.byp.R14_UNDEF;	print " CPSR = "; printx cpu.ex.CPSR;	print " SPSR = "; printx cpu.ex.SPSR_UNDEF;        print "\n";        if ( halt_on_undef_instruction ) {            print "***End of simulation\n";            exit 0;        }        print "...continuing simulation...\n";    }    if ( log_swi && (0x8 == cpu.ex.pc) ) {        // SWI - SVC mode        print "------ Cycle: "; print cpu.cycle; print" ------\n";        print "SWI ";        print " R0 = "; printx cpu.byp.R0;	print " LR = "; printx cpu.byp.R14_SVC;        print "\n";    }    if ( 0xc == cpu.ex.pc ) {        // ***PREFETCH ABORT*** ABORT mode        print "------ Cycle: "; print cpu.cycle; print" ------\n";        print "***PREFETCH ABORT***";	print " LR = "; printx cpu.byp.R14_ABORT;	print " CPSR = "; printx cpu.ex.CPSR;	print " SPSR = "; printx cpu.ex.SPSR_ABORT;        print "\n";        if ( halt_on_prefetchabort ) {            print "***End of simulation\n";            exit 0;        }        print "...continuing simulation...\n";    }    if ( 0x10 == cpu.ex.pc ) {        // ***DATA ABORT*** ABORT mode        print "------ Cycle: "; print cpu.cycle; print" ------\n";        print "***DATA ABORT***";	print " LR = "; printx cpu.byp.R14_ABORT;	print " CPSR = "; printx cpu.ex.CPSR;	print " SPSR = "; printx cpu.ex.SPSR_ABORT;        print "\n";        if ( halt_on_abort ) {            print "***End of simulation\n";            exit 0;        }        print "...continuing simulation...\n";    }    if ( 0x14 == cpu.ex.pc ) {        // Unknown ???? mode        print "------ Cycle: "; print cpu.cycle; print" ------\n";        print "---unused--- trap at 0x14;";        print " R14 = "; printx cpu.byp.R14;        print " CPSR = "; printx cpu.ex.CPSR;        print "\n";        print "***End of simulation\n";        exit 0;    }    if ( log_irq && (0x18 == cpu.ex.pc) ) {	  // IRQ mode	  print "------ Cycle: "; print cpu.cycle; print" ------\n";	  print "IRQ:";	  print " LR = "; printx cpu.byp.R14_IRQ;	  print " CPSR = "; printx cpu.ex.CPSR;	  print " SPSR = "; printx cpu.ex.SPSR_IRQ;	  print "\n";    }    if ( 0x1c == cpu.ex.pc ) {        // FIQ mode        print "------ Cycle: "; print cpu.cycle; print" ------\n";        print "FIQ:";	print " LR = "; printx cpu.byp.R14_FIQ;	print " CPSR = "; printx cpu.ex.CPSR;	print " SPSR = "; printx cpu.ex.SPSR_FIQ;        print "\n";    }}// ----------------------------------------------------------------------// EOF cpu.pil

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -