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

📄 xllp_suspendresume.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 5 页
字号:

  000a0	e59f07a4	 ldr         r0, [pc, #0x7A4]
  000a4	e5893000	 str         r3, [r9]
  000a8	e597303c	 ldr         r3, [r7, #0x3C]
  000ac	e59f9718	 ldr         r9, [pc, #0x718]
  000b0	e5823000	 str         r3, [r2]
  000b4	e597301c	 ldr         r3, [r7, #0x1C]
  000b8	e59f270c	 ldr         r2, [pc, #0x70C]
  000bc	e5893010	 str         r3, [r9, #0x10]
  000c0	e5973014	 ldr         r3, [r7, #0x14]
  000c4	e2822004	 add         r2, r2, #4
  000c8	e5892000	 str         r2, [r9]
  000cc	e1a02009	 mov         r2, r9
  000d0	e582300c	 str         r3, [r2, #0xC]
  000d4	e597300c	 ldr         r3, [r7, #0xC]
  000d8	e5823008	 str         r3, [r2, #8]
  000dc	e5973024	 ldr         r3, [r7, #0x24]
  000e0	e5823014	 str         r3, [r2, #0x14]
  000e4	e597302c	 ldr         r3, [r7, #0x2C]
  000e8	e5823004	 str         r3, [r2, #4]
  000ec	e5973034	 ldr         r3, [r7, #0x34]
  000f0	e5823018	 str         r3, [r2, #0x18]
  000f4	e5973044	 ldr         r3, [r7, #0x44]
  000f8	e5863000	 str         r3, [r6]
  000fc	e597204c	 ldr         r2, [r7, #0x4C]
  00100	e589301c	 str         r3, [r9, #0x1C]
  00104	e59f96bc	 ldr         r9, [pc, #0x6BC]
  00108	e2823020	 add         r3, r2, #0x20
  0010c	e58e2000	 str         r2, [lr]
  00110	e5893000	 str         r3, [r9]
  00114	e5973048	 ldr         r3, [r7, #0x48]
  00118	e59f2670	 ldr         r2, [pc, #0x670]
  0011c	e2833020	 add         r3, r3, #0x20
  00120	e5883000	 str         r3, [r8]
  00124	e5943010	 ldr         r3, [r4, #0x10]
  00128	e5813000	 str         r3, [r1]
  0012c	e5943000	 ldr         r3, [r4]
  00130	e5823000	 str         r3, [r2]
  00134	e594301c	 ldr         r3, [r4, #0x1C]
  00138	e59f2654	 ldr         r2, [pc, #0x654]
  0013c	e5823000	 str         r3, [r2]
  00140	eb000000	 bl          xllp_LogMessage

; 516  : #else
; 517  :     DBGMSG(("Xllp_SuspendResume: BSP_MAINSTONE not defined\r\n"));
; 518  : #endif    
; 519  : //for(i=0;i<10;i++)
; 520  : //	 DBGMSG(("Xllp_SuspendResume: zlh test\r\n"));
; 521  : 
; 522  : //OEMWriteDebugString(L"ABCD");
; 523  : //OALMSG(1, ( L"ERROR: OEMInit: failed to initialize interrupts.\r\n"));
; 524  : 
; 525  :    DBGMSG(("Xllp_SuspendResume: Entry: PCFR==x%08x,OSCC==x%08x,CCSR==x%08x,CCCR==x%08x\r\n",
; 526  :    		 pPWRRegs->PCFR,pCLKRegs->oscc,pCLKRegs->ccsr,pCLKRegs->cccr));

  00144	e59f3658	 ldr         r3, [pc, #0x658]
  00148	e5932000	 ldr         r2, [r3]
  0014c	e59f3690	 ldr         r3, [pc, #0x690]
  00150	e59f06f0	 ldr         r0, [pc, #0x6F0]
  00154	e592e000	 ldr         lr, [r2]
  00158	e5931000	 ldr         r1, [r3]
  0015c	e592300c	 ldr         r3, [r2, #0xC]
  00160	e5922008	 ldr         r2, [r2, #8]
  00164	e591101c	 ldr         r1, [r1, #0x1C]
  00168	e58de000	 str         lr, [sp]
  0016c	eb000000	 bl          xllp_LogMessage

; 527  : 
; 528  :    DBGMSG(("Xllp_SuspendResume: Entry: CPSR==x%08x, SPSR=x%08x, SP=x%08x, pBCRegS=x%08x\r\n",
; 529  :                entry_CPSR, entry_SPSR, entry_SP, pBCRegS));

  00170	e59f3654	 ldr         r3, [pc, #0x654]
  00174	e59f25e0	 ldr         r2, [pc, #0x5E0]
  00178	e59b1000	 ldr         r1, [r11]
  0017c	e593e01c	 ldr         lr, [r3, #0x1C]
  00180	e5953000	 ldr         r3, [r5]
  00184	e5922000	 ldr         r2, [r2]
  00188	e59f06b4	 ldr         r0, [pc, #0x6B4]
  0018c	e58de000	 str         lr, [sp]
  00190	eb000000	 bl          xllp_LogMessage

; 530  :    DBGMSG(("Xllp_SuspendResume: Entry: RCNR=x%08x, RTAR=x%08x, RTSR=x%08x, PICR=x%08x\r\n",
; 531  :                   pRTCRegs->rcnr, pRTCRegs->rtar, pRTCRegs->rtsr, pRTCRegs->picr));

  00194	e59f45d8	 ldr         r4, [pc, #0x5D8]
  00198	e59f06a0	 ldr         r0, [pc, #0x6A0]
  0019c	e5941000	 ldr         r1, [r4]
  001a0	e591e034	 ldr         lr, [r1, #0x34]
  001a4	e5913008	 ldr         r3, [r1, #8]
  001a8	e5912004	 ldr         r2, [r1, #4]
  001ac	e5911000	 ldr         r1, [r1]
  001b0	e58de000	 str         lr, [sp]
  001b4	eb000000	 bl          xllp_LogMessage

; 532  :     DBGMSG(("Xllp_SuspendResume: Entry: RYAR1=x%08x, RDAR1=x%08x\r\n",
; 533  :                   pRTCRegs->ryar1, pRTCRegs->rdar1));

  001b8	e5943000	 ldr         r3, [r4]
  001bc	e59f0678	 ldr         r0, [pc, #0x678]
  001c0	e5932018	 ldr         r2, [r3, #0x18]
  001c4	e593101c	 ldr         r1, [r3, #0x1C]
  001c8	eb000000	 bl          xllp_LogMessage

; 534  :     
; 535  :     DBGMSG(("Xllp_SuspendResume: Entry: OSCR0=x%08x, OSMR0=x%08x, OIER=x%08x\r\n",
; 536  :                   pOSTRegs->oscr0, pOSTRegs->osmr0, pOSTRegs->oier));

  001cc	e59a1000	 ldr         r1, [r10]
  001d0	e59f0660	 ldr         r0, [pc, #0x660]
  001d4	e591301c	 ldr         r3, [r1, #0x1C]
  001d8	e5912000	 ldr         r2, [r1]
  001dc	e5911010	 ldr         r1, [r1, #0x10]
  001e0	eb000000	 bl          xllp_LogMessage

; 537  :     DBGMSG(("Xllp_SuspendResume: Entry: OSMR0=x%08x, OSMR1=x%08x, OSMR2=x%08x, OSMR3=x%08x\r\n",
; 538  :                   pOSTRegs->osmr0, pOSTRegs->osmr1, pOSTRegs->osmr2, pOSTRegs->osmr3));

  001e4	e59a1000	 ldr         r1, [r10]
  001e8	e59f0644	 ldr         r0, [pc, #0x644]
  001ec	e591e00c	 ldr         lr, [r1, #0xC]
  001f0	e5913008	 ldr         r3, [r1, #8]
  001f4	e5912004	 ldr         r2, [r1, #4]
  001f8	e5911000	 ldr         r1, [r1]
  001fc	e58de000	 str         lr, [sp]
  00200	eb000000	 bl          xllp_LogMessage

; 539  :     DBGMSG(("Xllp_SuspendResume: Entry: OSMR4=x%08x, OSMR5=x%08x, OSMR6=x%08x, OSMR7=x%08x\r\n",
; 540  :                   pOSTRegs->osmr4, pOSTRegs->osmr5, pOSTRegs->osmr6, pOSTRegs->osmr7));

  00204	e59a1000	 ldr         r1, [r10]
  00208	e59f0620	 ldr         r0, [pc, #0x620]
  0020c	e591e08c	 ldr         lr, [r1, #0x8C]
  00210	e5913088	 ldr         r3, [r1, #0x88]
  00214	e5912084	 ldr         r2, [r1, #0x84]
  00218	e5911080	 ldr         r1, [r1, #0x80]
  0021c	e58de000	 str         lr, [sp]
  00220	eb000000	 bl          xllp_LogMessage

; 541  :     DBGMSG(("Xllp_SuspendResume: Entry: OSMR8=x%08x, OSMR9=x%08x, OSMR10=x%08x, OSMR11=x%08x\r\n",
; 542  :                   pOSTRegs->osmr8, pOSTRegs->osmr9, pOSTRegs->osmr10, pOSTRegs->osmr11));

  00224	e59a1000	 ldr         r1, [r10]
  00228	e59f05fc	 ldr         r0, [pc, #0x5FC]
  0022c	e591e09c	 ldr         lr, [r1, #0x9C]
  00230	e5913098	 ldr         r3, [r1, #0x98]
  00234	e5912094	 ldr         r2, [r1, #0x94]
  00238	e5911090	 ldr         r1, [r1, #0x90]
  0023c	e58de000	 str         lr, [sp]
  00240	eb000000	 bl          xllp_LogMessage

; 543  :     DBGMSG(("Xllp_SuspendResume: Entry: ResumePhase2Data @ x%08x->x%08x\r\n",
; 544  :                   pResumePhase2Data, ResumePhase2DataPA));

  00244	e5982000	 ldr         r2, [r8]
  00248	e5991000	 ldr         r1, [r9]
  0024c	e59f05d4	 ldr         r0, [pc, #0x5D4]
  00250	eb000000	 bl          xllp_LogMessage

; 545  :     DBGMSG(("Xllp_SuspendResume: Entry: ICPR=x%08x, ICMR=x%08x\r\n",
; 546  :                   pINTCRegs->icpr, pINTCRegs->icmr));

  00254	e59f2540	 ldr         r2, [pc, #0x540]
  00258	e59f05c4	 ldr         r0, [pc, #0x5C4]
  0025c	e5923000	 ldr         r3, [r2]
  00260	e5932004	 ldr         r2, [r3, #4]
  00264	e5931010	 ldr         r1, [r3, #0x10]
  00268	eb000000	 bl          xllp_LogMessage

; 547  : #ifdef BSP_MAINSTONE
; 548  :     DBGMSG(("Xllp_SuspendResume: Entry: IMER=x%08x, ISCR=x%08x\r\n",
; 549  :                   pBCRegs->PIMER1, pBCRegs->PSCR1));

  0026c	e5963000	 ldr         r3, [r6]
  00270	e59f05a8	 ldr         r0, [pc, #0x5A8]
  00274	e59320d0	 ldr         r2, [r3, #0xD0]
  00278	e59310c0	 ldr         r1, [r3, #0xC0]
  0027c	eb000000	 bl          xllp_LogMessage

; 550  : #endif // BSP_MAINSTONE
; 551  :  
; 552  : 	XllpPWRSave(pOSDAddr->pPWRRegs, &PWRSave);

  00280	e5971024	 ldr         r1, [r7, #0x24]
  00284	e59f0550	 ldr         r0, [pc, #0x550]
  00288	eb000000	 bl          PWRCopy

; 553  :     XllpGPIOSave(pOSDAddr->pGPIORegs, &GPIOSave);

  0028c	e5970014	 ldr         r0, [r7, #0x14]
  00290	e59f1510	 ldr         r1, [pc, #0x510]
  00294	eb000000	 bl          XllpGPIOSave

; 554  :     XllpINTCSave(pOSDAddr->pINTCRegs, &INTCSave);

  00298	e597101c	 ldr         r1, [r7, #0x1C]
  0029c	e59f04f4	 ldr         r0, [pc, #0x4F4]
  002a0	eb000000	 bl          INTCCopy

; 555  : 	XllpCLKSave(pOSDAddr->pCLKRegs, &CLKSave);

  002a4	e597302c	 ldr         r3, [r7, #0x2C]

; 556  : 	
; 557  : #ifdef BSP_MAINSTONE
; 558  : 	//XllpBCRSave(pOSDAddr->pBCRegs, &BCRSave);
; 559  : #endif // BSP_MAINSTONE
; 560  : 	
; 561  :         // Save CPU core registers
; 562  :     //DBGMSG(("Xllp_SuspendResume: Saving mode specific core registers\r\n"));
; 563  : 	
; 564  :     crsa_sp = &(crsa[DIMENSION(crsa)-1]);

  002a8	e59f056c	 ldr         r0, [pc, #0x56C]
  002ac	e59f14f8	 ldr         r1, [pc, #0x4F8]
  002b0	e5933004	 ldr         r3, [r3, #4]
  002b4	e59f455c	 ldr         r4, [pc, #0x55C]
  002b8	e28020fc	 add         r2, r0, #0xFC
  002bc	e3c3333f	 bic         r3, r3, #0x3F, 6
  002c0	e5813004	 str         r3, [r1, #4]

; 565  :     pFIQ_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_FIQ);

  002c4	e3a01011	 mov         r1, #0x11
  002c8	e28000fc	 add         r0, r0, #0xFC
  002cc	e5842000	 str         r2, [r4]
  002d0	eb000000	 bl          Xllp_SaveMSARMRegs

; 566  :     FIQ_words = (crsa_sp - pFIQ_regs);

  002d4	e5943000	 ldr         r3, [r4]
  002d8	e1a0e000	 mov         lr, r0
  002dc	e59f6530	 ldr         r6, [pc, #0x530]
  002e0	e59f2528	 ldr         r2, [pc, #0x528]
  002e4	e043300e	 sub         r3, r3, lr
  002e8	e1a03143	 mov         r3, r3, asr #2

; 567  :     //DBGMSG(("Xllp_SuspendResume: FIQ(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 568  :     //        XLLP_CPSR_Mode_FIQ, crsa_sp, pFIQ_regs, FIQ_words));
; 569  :     crsa_sp = pFIQ_regs;
; 570  : 	
; 571  :     pIRQ_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_IRQ);

  002ec	e3a01012	 mov         r1, #0x12
  002f0	e5823000	 str         r3, [r2]
  002f4	e586e000	 str         lr, [r6]
  002f8	e584e000	 str         lr, [r4]
  002fc	eb000000	 bl          Xllp_SaveMSARMRegs

; 572  :     IRQ_words = (crsa_sp - pIRQ_regs);

  00300	e5943000	 ldr         r3, [r4]
  00304	e1a0e000	 mov         lr, r0
  00308	e59f74fc	 ldr         r7, [pc, #0x4FC]
  0030c	e59f24f4	 ldr         r2, [pc, #0x4F4]
  00310	e043300e	 sub         r3, r3, lr
  00314	e1a03143	 mov         r3, r3, asr #2

; 573  :     //DBGMSG(("Xllp_SuspendResume: IRQ(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 574  :     //        XLLP_CPSR_Mode_IRQ, crsa_sp, pIRQ_regs, IRQ_words));
; 575  :     crsa_sp = pIRQ_regs;
; 576  : 	
; 577  :     pUND_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_UND);

  00318	e3a0101b	 mov         r1, #0x1B
  0031c	e5823000	 str         r3, [r2]
  00320	e587e000	 str         lr, [r7]
  00324	e584e000	 str         lr, [r4]
  00328	eb000000	 bl          Xllp_SaveMSARMRegs

; 578  :     UND_words = (crsa_sp - pUND_regs);

  0032c	e5943000	 ldr         r3, [r4]
  00330	e1a0e000	 mov         lr, r0
  00334	e59f5488	 ldr         r5, [pc, #0x488]
  00338	e59f24c4	 ldr         r2, [pc, #0x4C4]
  0033c	e043300e	 sub         r3, r3, lr
  00340	e1a03143	 mov         r3, r3, asr #2

; 579  :     //DBGMSG(("Xllp_SuspendResume: UND(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 580  :     //        XLLP_CPSR_Mode_UND, crsa_sp, pUND_regs, UND_words));
; 581  :     crsa_sp = pUND_regs;
; 582  : 	
; 583  :     pABT_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_ABT);

  00344	e3a01017	 mov         r1, #0x17
  00348	e5823000	 str         r3, [r2]
  0034c	e585e000	 str         lr, [r5]
  00350	e584e000	 str         lr, [r4]
  00354	eb000000	 bl          Xllp_SaveMSARMRegs
  00358	e59f2460	 ldr         r2, [pc, #0x460]

; 584  :     ABT_words = (crsa_sp - pABT_regs);

  0035c	e5943000	 ldr         r3, [r4]
  00360	e1a0e000	 mov         lr, r0
  00364	e582e000	 str         lr, [r2]
  00368	e59f2490	 ldr         r2, [pc, #0x490]
  0036c	e043300e	 sub         r3, r3, lr
  00370	e1a03143	 mov         r3, r3, asr #2

; 585  :     //DBGMSG(("Xllp_SuspendResume: ABT(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 586  :     //        XLLP_CPSR_Mode_ABT, crsa_sp, pABT_regs, ABT_words));
; 587  :     crsa_sp = pABT_regs;
; 588  : 	
; 589  :     pSVC_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_SVC);

  00374	e3a01013	 mov         r1, #0x13
  00378	e5823000	 str         r3, [r2]
  0037c	e584e000	 str         lr, [r4]
  00380	eb000000	 bl          Xllp_SaveMSARMRegs

; 590  :     SVC_words = (crsa_sp - pSVC_regs);

  00384	e5943000	 ldr         r3, [r4]
  00388	e1a0e000	 mov         lr, r0
  0038c	e59f5428	 ldr         r5, [pc, #0x428]
  00390	e59f2464	 ldr         r2, [pc, #0x464]
  00394	e043300e	 sub         r3, r3, lr
  00398	e1a03143	 mov         r3, r3, asr #2

; 591  :     //DBGMSG(("Xllp_SuspendResume: SVC(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 592  :     //        XLLP_CPSR_Mode_SVC, crsa_sp, pSVC_regs, SVC_words));
; 593  :     crsa_sp = pSVC_regs;
; 594  : 
; 595  :     pSYS_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_SYS);

  0039c	e3a0101f	 mov         r1, #0x1F
  003a0	e5823000	 str         r3, [r2]
  003a4	e585e000	 str         lr, [r5]
  003a8	e584e000	 str         lr, [r4]
  003ac	eb000000	 bl          Xllp_SaveMSARMRegs

; 596  :     SYS_words = (crsa_sp - pSYS_regs);

  003b0	e5943000	 ldr         r3, [r4]
  003b4	e1a01000	 mov         r1, r0
  003b8	e59f2438	 ldr         r2, [pc, #0x438]
  003bc	e0433001	 sub         r3, r3, r1

; 597  :     //DBGMSG(("Xllp_SuspendResume: SYS(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 598  :     //        XLLP_CPSR_Mode_SYS, crsa_sp, pSYS_regs, SYS_words));
; 599  :     crsa_sp = pSYS_regs;
; 600  : 
; 601  :     DBGMSG(("Xllp_SuspendResume: mode specific core registers saved\r\n"));

  003c0	e1a03143	 mov         r3, r3, asr #2
  003c4	e59fe3ec	 ldr         lr, [pc, #0x3EC]
  003c8	e59f0424	 ldr         r0, [pc, #0x424]
  003cc	e5823000	 str         r3, [r2]
  003d0	e58e1000	 str         r1, [lr]
  003d4	e5841000	 str         r1, [r4]
  003d8	eb000000	 bl          xllp_LogMessage

; 602  : #if 0 // ENABLE_DEBUG_MESSAGES // debug code
; 603  :     {
; 604  :         int i;
; 605  :         unsigned long *p;
; 606  :         unsigned long words;
; 607  : 
; 608  :     p = (unsigned long *)pFIQ_regs;
; 609  :     words = FIQ_words;
; 610  :     DBGMSG(("Xllp_SuspendResume: FIQ@x%08x (%d)\r\n", p, words));
; 611  :     for (i = words-1; i>=0; i--)
; 612  :         DBGMSG(("    x%08x:x%08x\r\n", &p[i], p[i]));
; 613  :     
; 614  :     p = (unsigned long *)pIRQ_regs;
; 615  :     words = IRQ_words;
; 616  :     DBGMSG(("Xllp_SuspendResume: IRQ@x%08x (%d)\r\n", p, words));
; 617  :     for (i = words-1; i>=0; i--)
; 618  :         DBGMSG(("    x%08x:x%08x\r\n", &p[i], p[i]));
; 619  :     
; 620  :     p = (unsigned long *)pUND_regs;
; 621  :     words = UND_words;
; 622  :     DBGMSG(("Xllp_SuspendResume: UND@x%08x (%d)\r\n", p, words));
; 623  :     for (i = words-1; i>=0; i--)
; 624  :         DBGMSG(("    x%08x:x%08x\r\n", &p[i], p[i]));
; 625  :     
; 626  :     p = (unsigned long *)pABT_regs;
; 627  :     words = ABT_words;
; 628  :     DBGMSG(("Xllp_SuspendResume: ABT@x%08x (%d)\r\n", p, words));
; 629  :     for (i = words-1; i>=0; i--)
; 630  :         DBGMSG(("    x%08x:x%08x\r\n", &p[i], p[i]));
; 631  :     
; 632  :     p = (unsigned long *)pSVC_regs;
; 633  :     wor

⌨️ 快捷键说明

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