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

📄 xllp_suspendresume.cod

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

; 440  : //   //Test whether we have get this point
; 441  :       pGPIORegs->GPDR1 |= 0x80;           //GPIO39 OUTPUT

  00000	e59f10c0	 ldr         r1, [pc, #0xC0]
  00004	e5912000	 ldr         r2, [r1]
  00008	e5923010	 ldr         r3, [r2, #0x10]
  0000c	e3833080	 orr         r3, r3, #0x80
  00010	e5823010	 str         r3, [r2, #0x10]

; 442  :      pGPIORegs->GPSR1 |= 0x80;           //GPIO39 LOW

  00014	e5912000	 ldr         r2, [r1]
  00018	e592301c	 ldr         r3, [r2, #0x1C]
  0001c	e3833080	 orr         r3, r3, #0x80
  00020	e582301c	 str         r3, [r2, #0x1C]

; 443  :      pGPIORegs->GPDR1 |= 0x100000;   //GPIO52 OUTPUT

  00024	e5912000	 ldr         r2, [r1]
  00028	e5923010	 ldr         r3, [r2, #0x10]
  0002c	e3833601	 orr         r3, r3, #1, 12
  00030	e5823010	 str         r3, [r2, #0x10]

; 444  :       pGPIORegs->GPCR1 |= 0x100000;   //GPIO52 HIGT

  00034	e5912000	 ldr         r2, [r1]
  00038	e5923028	 ldr         r3, [r2, #0x28]
  0003c	e3833601	 orr         r3, r3, #1, 12
  00040	e5823028	 str         r3, [r2, #0x28]

; 445  :       pGPIORegs->GPDR2 |= 0x20000;     //GPIO81 OUTPUT

  00044	e5912000	 ldr         r2, [r1]
  00048	e5923014	 ldr         r3, [r2, #0x14]
  0004c	e3833802	 orr         r3, r3, #2, 16
  00050	e5823014	 str         r3, [r2, #0x14]

; 446  :      pGPIORegs->GPSR2 |= 0x20000;     //GPIO81 LOW

  00054	e5912000	 ldr         r2, [r1]
  00058	e5923020	 ldr         r3, [r2, #0x20]
  0005c	e3833802	 orr         r3, r3, #2, 16
  00060	e5823020	 str         r3, [r2, #0x20]

; 447  :       pGPIORegs->GPDR2 |= 0x2000000; //GPIO89 OUTPUT

  00064	e5912000	 ldr         r2, [r1]
  00068	e5923014	 ldr         r3, [r2, #0x14]
  0006c	e3833402	 orr         r3, r3, #2, 8
  00070	e5823014	 str         r3, [r2, #0x14]

; 448  :       pGPIORegs->GPCR2 |= 0x2000000; //GPIO89 HIGT

  00074	e5912000	 ldr         r2, [r1]
  00078	e592302c	 ldr         r3, [r2, #0x2C]
  0007c	e3833402	 orr         r3, r3, #2, 8
  00080	e582302c	 str         r3, [r2, #0x2C]

; 449  :       pGPIORegs->GPDR3 |= 0x800000;   //GPIO119 OUTPUT

  00084	e5912000	 ldr         r2, [r1]
  00088	e592310c	 ldr         r3, [r2, #0x10C]
  0008c	e3833502	 orr         r3, r3, #2, 10
  00090	e582310c	 str         r3, [r2, #0x10C]

; 450  :       pGPIORegs->GPSR3 |= 0x800000;   //GPIO119 LOW

  00094	e5912000	 ldr         r2, [r1]
  00098	e5923118	 ldr         r3, [r2, #0x118]
  0009c	e3833502	 orr         r3, r3, #2, 10
  000a0	e5823118	 str         r3, [r2, #0x118]

; 451  :       pGPIORegs->GPDR3 |= 0x1000000; //GPIO120 OUTPUT

  000a4	e5912000	 ldr         r2, [r1]
  000a8	e592310c	 ldr         r3, [r2, #0x10C]
  000ac	e3833401	 orr         r3, r3, #1, 8
  000b0	e582310c	 str         r3, [r2, #0x10C]

; 452  :       pGPIORegs->GPCR3 |= 0x1000000; //GPIO120 HIGT

  000b4	e5912000	 ldr         r2, [r1]
  000b8	e5923124	 ldr         r3, [r2, #0x124]
  000bc	e3833401	 orr         r3, r3, #1, 8
  000c0	e5823124	 str         r3, [r2, #0x124]
  000c4		 |$L2154|

; 453  :      while(1); 

  000c4	eafffffe	 b           |$L2154|
  000c8		 |$L2535|
  000c8	00000000	 DCD         |pGPIORegs|
  000cc		 |$M2531|

			 ENDP  ; |MyTestPoint|

	EXPORT	|??_C@_0CM@CPEIKGIJ@Xllp_SuspendResume?3?5BSP_MAINSTON@| [ DATA ] ; `string'
	EXPORT	|??_C@_0EN@OFCHHAJE@Xllp_SuspendResume?3?5Entry?3?5PCFR?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0EO@IPDFPBGF@Xllp_SuspendResume?3?5Entry?3?5CPSR?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0EM@DFLLKJJB@Xllp_SuspendResume?3?5Entry?3?5RCNR?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DG@NFDPLLBH@Xllp_SuspendResume?3?5Entry?3?5RYAR1@| [ DATA ] ; `string'
	EXPORT	|??_C@_0EC@NLBGEJKB@Xllp_SuspendResume?3?5Entry?3?5OSCR0@| [ DATA ] ; `string'
	EXPORT	|??_C@_0FA@NNCKJJFE@Xllp_SuspendResume?3?5Entry?3?5OSMR0@| [ DATA ] ; `string'
	EXPORT	|??_C@_0FA@LMDOHGKF@Xllp_SuspendResume?3?5Entry?3?5OSMR4@| [ DATA ] ; `string'
	EXPORT	|??_C@_0FC@BKHKIANA@Xllp_SuspendResume?3?5Entry?3?5OSMR8@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DN@ENBKAJIG@Xllp_SuspendResume?3?5Entry?3?5Resum@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DE@BABMLOJA@Xllp_SuspendResume?3?5Entry?3?5ICPR?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DE@LGBPNLIP@Xllp_SuspendResume?3?5Entry?3?5IMER?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DJ@HLEJOCGD@Xllp_SuspendResume?3?5mode?5specifi@| [ DATA ] ; `string'
	EXPORT	|??_C@_0GB@MPMLBGEH@Xllp_SuspendResume?3?5PWER?$DNx?$CF08x?9?$DO@| [ DATA ] ; `string'
	EXPORT	|??_C@_0FF@CENHMBHN@Xllp_SuspendResume?3?5PCFR?$DNx?$CF08x?9?$DO@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CH@FAPBJLBJ@?6?$AN?5To?5make?5an?5OS?5Timer?5Interrupt@| [ DATA ] ; `string'
	EXPORT	|??_C@_0FB@PJMJFBAP@Xllp_SuspendResume?3?5Wake?5Reason?3@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CP@BGOGCDBF@Xllp_SuspendResume?3?5Exit?3?5?$CIentry@| [ DATA ] ; `string'
	EXPORT	|??_C@_0EL@PEHMOFJC@Xllp_SuspendResume?3?5Exit?3?5RCNR?$DNx@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DF@HLFNJMBK@Xllp_SuspendResume?3?5Exit?3?5RYAR1?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0EB@BDGKFPCI@Xllp_SuspendResume?3?5Exit?3?5OSCR0?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0EP@KOJOJDEG@Xllp_SuspendResume?3?5Exit?3?5OMCR4?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DA@MNHDJAII@Xllp_SuspendResume?3?5Exit2?3?5?$CIentr@| [ DATA ] ; `string'
	EXPORT	|Xllp_SuspendAndResume|
	IMPORT	|xllp_LogMessage|
	IMPORT	|Xllp_Get_ARM_CPSR|
	IMPORT	|Xllp_Set_ARM_CPSR|
	IMPORT	|Xllp_Get_ARM_SPSR|
	IMPORT	|Xllp_Set_ARM_SPSR|
	IMPORT	|Xllp_Get_ARM_SP|
	IMPORT	|Xllp_SuspendAndResumeA|
	IMPORT	|Xllp_SaveMSARMRegs|
	IMPORT	|Xllp_RestoreMSARMRegs|
	IMPORT	|Pcf506ClearAllInt|
	IMPORT	|OSD_DebugCommsResume|
	IMPORT	|OSD_ExecuteAfterAllResets|
	IMPORT	|Xllp_Set_CoProc_Access|

  00004			 AREA	 |.bss|, NOINIT
|PmuReg| %	0x18
|pPmuReg| %	0x4

  00000			 AREA	 |.text| { |Xllp_SuspendAndResume| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$Xllp_SuspendAndResume|, PDATA, SELECTION=5, ASSOC=|.text| { |Xllp_SuspendAndResume| } ; comdat associative
|$T2583| DCD	|$L2582|
	DCD	0x40021c02

  00000			 AREA	 |.rdata| { |??_C@_0FB@PJMJFBAP@Xllp_SuspendResume?3?5Wake?5Reason?3@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0FB@PJMJFBAP@Xllp_SuspendResume?3?5Wake?5Reason?3@| DCB "Xllp_Susp"
	DCB	"endResume: Wake Reason: PEDR=x%08x, PKSR=x%08x, ISCR=x%0"
	DCB	"8x, IER=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CP@BGOGCDBF@Xllp_SuspendResume?3?5Exit?3?5?$CIentry@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CP@BGOGCDBF@Xllp_SuspendResume?3?5Exit?3?5?$CIentry@| DCB "Xllp_S"
	DCB	"uspendResume: Exit: (entry_CPSR=x%08x)", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0EL@PEHMOFJC@Xllp_SuspendResume?3?5Exit?3?5RCNR?$DNx@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EL@PEHMOFJC@Xllp_SuspendResume?3?5Exit?3?5RCNR?$DNx@| DCB "Xllp_S"
	DCB	"uspendResume: Exit: RCNR=x%08x, RTAR=x%08x, RTSR=x%08x, "
	DCB	"PICR=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DF@HLFNJMBK@Xllp_SuspendResume?3?5Exit?3?5RYAR1?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DF@HLFNJMBK@Xllp_SuspendResume?3?5Exit?3?5RYAR1?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Exit: RYAR1=x%08x, RDAR1=x%08x", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0EB@BDGKFPCI@Xllp_SuspendResume?3?5Exit?3?5OSCR0?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EB@BDGKFPCI@Xllp_SuspendResume?3?5Exit?3?5OSCR0?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Exit: OSCR0=x%08x, OSMR0=x%08x, OIER=x%08x"
	DCB	0xd, 0xa, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_0EP@KOJOJDEG@Xllp_SuspendResume?3?5Exit?3?5OMCR4?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EP@KOJOJDEG@Xllp_SuspendResume?3?5Exit?3?5OMCR4?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Exit: OMCR4=x%08x, OMCR5=x%08x, OMCR6=x%08"
	DCB	"x, OMCR7=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DA@MNHDJAII@Xllp_SuspendResume?3?5Exit2?3?5?$CIentr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DA@MNHDJAII@Xllp_SuspendResume?3?5Exit2?3?5?$CIentr@| DCB "Xllp_S"
	DCB	"uspendResume: Exit2: (entry_CPSR=x%08x)", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CH@FAPBJLBJ@?6?$AN?5To?5make?5an?5OS?5Timer?5Interrupt@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CH@FAPBJLBJ@?6?$AN?5To?5make?5an?5OS?5Timer?5Interrupt@| DCB 0xa, 0xd
	DCB	" To make an OS Timer Interrupt dd ", 0xa, 0xd, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CM@CPEIKGIJ@Xllp_SuspendResume?3?5BSP_MAINSTON@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CM@CPEIKGIJ@Xllp_SuspendResume?3?5BSP_MAINSTON@| DCB "Xllp_Suspen"
	DCB	"dResume: BSP_MAINSTONE defined", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0EN@OFCHHAJE@Xllp_SuspendResume?3?5Entry?3?5PCFR?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EN@OFCHHAJE@Xllp_SuspendResume?3?5Entry?3?5PCFR?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Entry: PCFR==x%08x,OSCC==x%08x,CCSR==x%08x"
	DCB	",CCCR==x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0EO@IPDFPBGF@Xllp_SuspendResume?3?5Entry?3?5CPSR?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EO@IPDFPBGF@Xllp_SuspendResume?3?5Entry?3?5CPSR?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Entry: CPSR==x%08x, SPSR=x%08x, SP=x%08x, "
	DCB	"pBCRegS=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0EM@DFLLKJJB@Xllp_SuspendResume?3?5Entry?3?5RCNR?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EM@DFLLKJJB@Xllp_SuspendResume?3?5Entry?3?5RCNR?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Entry: RCNR=x%08x, RTAR=x%08x, RTSR=x%08x,"
	DCB	" PICR=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DG@NFDPLLBH@Xllp_SuspendResume?3?5Entry?3?5RYAR1@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DG@NFDPLLBH@Xllp_SuspendResume?3?5Entry?3?5RYAR1@| DCB "Xllp_Susp"
	DCB	"endResume: Entry: RYAR1=x%08x, RDAR1=x%08x", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0EC@NLBGEJKB@Xllp_SuspendResume?3?5Entry?3?5OSCR0@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EC@NLBGEJKB@Xllp_SuspendResume?3?5Entry?3?5OSCR0@| DCB "Xllp_Susp"
	DCB	"endResume: Entry: OSCR0=x%08x, OSMR0=x%08x, OIER=x%08x", 0xd
	DCB	0xa, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_0FA@NNCKJJFE@Xllp_SuspendResume?3?5Entry?3?5OSMR0@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0FA@NNCKJJFE@Xllp_SuspendResume?3?5Entry?3?5OSMR0@| DCB "Xllp_Susp"
	DCB	"endResume: Entry: OSMR0=x%08x, OSMR1=x%08x, OSMR2=x%08x,"
	DCB	" OSMR3=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0FA@LMDOHGKF@Xllp_SuspendResume?3?5Entry?3?5OSMR4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0FA@LMDOHGKF@Xllp_SuspendResume?3?5Entry?3?5OSMR4@| DCB "Xllp_Susp"
	DCB	"endResume: Entry: OSMR4=x%08x, OSMR5=x%08x, OSMR6=x%08x,"
	DCB	" OSMR7=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0FC@BKHKIANA@Xllp_SuspendResume?3?5Entry?3?5OSMR8@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0FC@BKHKIANA@Xllp_SuspendResume?3?5Entry?3?5OSMR8@| DCB "Xllp_Susp"
	DCB	"endResume: Entry: OSMR8=x%08x, OSMR9=x%08x, OSMR10=x%08x"
	DCB	", OSMR11=x%08x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DN@ENBKAJIG@Xllp_SuspendResume?3?5Entry?3?5Resum@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DN@ENBKAJIG@Xllp_SuspendResume?3?5Entry?3?5Resum@| DCB "Xllp_Susp"
	DCB	"endResume: Entry: ResumePhase2Data @ x%08x->x%08x", 0xd, 0xa
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DE@BABMLOJA@Xllp_SuspendResume?3?5Entry?3?5ICPR?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DE@BABMLOJA@Xllp_SuspendResume?3?5Entry?3?5ICPR?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Entry: ICPR=x%08x, ICMR=x%08x", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DE@LGBPNLIP@Xllp_SuspendResume?3?5Entry?3?5IMER?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DE@LGBPNLIP@Xllp_SuspendResume?3?5Entry?3?5IMER?$DN@| DCB "Xllp_S"
	DCB	"uspendResume: Entry: IMER=x%08x, ISCR=x%08x", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DJ@HLEJOCGD@Xllp_SuspendResume?3?5mode?5specifi@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DJ@HLEJOCGD@Xllp_SuspendResume?3?5mode?5specifi@| DCB "Xllp_Suspe"
	DCB	"ndResume: mode specific core registers saved", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0GB@MPMLBGEH@Xllp_SuspendResume?3?5PWER?$DNx?$CF08x?9?$DO@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0GB@MPMLBGEH@Xllp_SuspendResume?3?5PWER?$DNx?$CF08x?9?$DO@| DCB "X"
	DCB	"llp_SuspendResume: PWER=x%08x->x%08x, PRER=x%08x->x%08x,"
	DCB	" PFER=x%08x->x%08x, PKWR=x%08x->x%08x", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0FF@CENHMBHN@Xllp_SuspendResume?3?5PCFR?$DNx?$CF08x?9?$DO@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0FF@CENHMBHN@Xllp_SuspendResume?3?5PCFR?$DNx?$CF08x?9?$DO@| DCB "X"
	DCB	"llp_SuspendResume: PCFR=x%08x->x%08x, PSLR=x%08x->x%08x,"
	DCB	" PSSR=0x%08x, PMCR=0x%08x", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |Xllp_SuspendAndResume| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |Xllp_SuspendAndResume| PROC

; 458  :     {

  00000		 |$L2582|
  00000	e92d4ff0	 stmdb       sp!, {r4 - r11, lr}
  00004	e24dd014	 sub         sp, sp, #0x14
  00008		 |$M2580|
  00008	e1a07000	 mov         r7, r0

; 459  :         // This routine is called from a priveledged mode (eg. SVC, SYS).
; 460  :         // Stack space is therefore limited.
; 461  :         // Since this routine does/should not need to be re-entrant most variables are static.
; 462  :        //if(OST0_MAXCount == 1000)
; 463  : 	//   	 DBGMSG(("OST0_MAXCount == 1000\r\n"));
; 464  : 	//OST0_MAXCount = 1;
; 465  : 		
; 466  : 	entry_CPSR = Xllp_Get_ARM_CPSR();

  0000c	eb000000	 bl          Xllp_Get_ARM_CPSR
  00010	e59fb854	 ldr         r11, [pc, #0x854]
  00014	e1a03000	 mov         r3, r0

; 467  :         // Make sure all interrupts are disabled
; 468  :     Xllp_Set_ARM_CPSR(entry_CPSR | (XLLP_CPSR_I_bit | XLLP_CPSR_F_bit));

  00018	e38300c0	 orr         r0, r3, #0xC0
  0001c	e58b3000	 str         r3, [r11]
  00020	eb000000	 bl          Xllp_Set_ARM_CPSR

; 469  : 	
; 470  :     entry_SPSR = Xllp_Get_ARM_SPSR();

  00024	eb000000	 bl          Xllp_Get_ARM_SPSR
  00028	e59f372c	 ldr         r3, [pc, #0x72C]
  0002c	e5830000	 str         r0, [r3]

; 471  :     entry_SP   = Xllp_Get_ARM_SP();           // This is only for debugging

  00030	eb000000	 bl          Xllp_Get_ARM_SP
  00034	e59f582c	 ldr         r5, [pc, #0x82C]

; 472  : 
; 473  :     // Get OS dependent addresses passed in
; 474  :     pMEMCRegs       = (XLLP_MEMORY_CONTROL_REGISTER_T *)pOSDAddr->pMEMCRegs;

  00038	e59f97b0	 ldr         r9, [pc, #0x7B0]

; 475  :     pRTCRegs        = (XLLP_RTC_T *)pOSDAddr->pRTCRegs;

  0003c	e59f2730	 ldr         r2, [pc, #0x730]
  00040	e5850000	 str         r0, [r5]
  00044	e5973034	 ldr         r3, [r7, #0x34]

; 476  :     pOSTRegs        = (XLLP_OST_T *)pOSDAddr->pOSTRegs;

  00048	e59fa814	 ldr         r10, [pc, #0x814]

; 477  :     pGPIORegs       = (XLLP_GPIO_T *)pOSDAddr->pGPIORegs;

  0004c	e59fe74c	 ldr         lr, [pc, #0x74C]
  00050	e5893000	 str         r3, [r9]
  00054	e5973004	 ldr         r3, [r7, #4]

; 478  :     pINTCRegs       = (XLLP_INTC_T *)pOSDAddr->pINTCRegs;

  00058	e59f873c	 ldr         r8, [pc, #0x73C]

; 479  :     pPWRRegs        = (XLLP_PWRMGR_T *)pOSDAddr->pPWRRegs;

  0005c	e59f0780	 ldr         r0, [pc, #0x780]
  00060	e5823000	 str         r3, [r2]
  00064	e597400c	 ldr         r4, [r7, #0xC]

; 480  :     pCLKRegs        = (XLLP_CLKMGR_T *)pOSDAddr->pCLKRegs;

  00068	e59f9734	 ldr         r9, [pc, #0x734]

; 481  :     pI2CRegs        = (XLLP_I2C_T *)pOSDAddr->pI2CRegs;

  0006c	e59f27ec	 ldr         r2, [pc, #0x7EC]
  00070	e58a4000	 str         r4, [r10]
  00074	e5973014	 ldr         r3, [r7, #0x14]

; 482  : 
; 483  : 	PmuReg.ic_reg_base   = (XLLP_INTC_T *) pOSDAddr->pINTCRegs;
; 484  : 	PmuReg.gpio_reg_base = (XLLP_GPIO_T *) pOSDAddr->pGPIORegs;
; 485  : 	PmuReg.ost_reg_base  = (XLLP_OST_T *) pOSDAddr->pOSTRegs;
; 486  : 	PmuReg.pi2c_reg_base = (XLLP_PI2C_T *) pOSDAddr->pPWRRegs;
; 487  : 	PmuReg.clk_reg_base  = (XLLP_CLKMGR_T *) pOSDAddr->pCLKRegs;
; 488  : 	PmuReg.mem_regbase = (XLLP_MEMORY_CONTROL_REGISTER_T *)pOSDAddr->pMEMCRegs;
; 489  : 	pPmuReg=&PmuReg;
; 490  : 
; 491  : 	
; 492  : #ifdef BSP_MAINSTONE    	
; 493  :     pBCRegs         = (XLLP_BCR_T *)pOSDAddr->pBCRegs;

  00078	e59f67dc	 ldr         r6, [pc, #0x7DC]

; 494  : #endif // BSP_MAINSTONE
; 495  :     
; 496  :     pRestartData    = (RESTART_DATA_T *)pOSDAddr->pRestartData;
; 497  :     pResumePhase2Data     = (RESUMEPHASE2_DATA_T *)&(pRestartData->RESUME_DATA[0]);
; 498  :     ResumePhase2DataPA    = (XLLP_UINT32_T)&(((RESTART_DATA_T *)(pOSDAddr->RestartDataPA))->RESUME_DATA[0]);
; 499  :     
; 500  : #ifdef BSP_MAINSTONE    	
; 501  :     pBCRegS       = pBCRegs; // local static copy for HexLed functions
; 502  : #endif // BSP_MAINSTONE
; 503  :     //entry_hexleds = GetHexLeds();
; 504  :     //SetHexLeds(0xce050000);
; 505  :         // How OST registers should be handled across suspend/resume is in doubt.
; 506  :         // In general, it seems pointless to restore them to their pre-suspend state.
; 507  :         // This will probably be OS dependent.
; 508  :         // Currently... 
; 509  :         // WinCE seems to only use OSCR0 and seems to require an interrupt be generated on wakeup.
; 510  :     entry_OSCR0 = pOSTRegs->oscr0;

  0007c	e59f17d4	 ldr         r1, [pc, #0x7D4]
  00080	e58e3000	 str         r3, [lr]
  00084	e597301c	 ldr         r3, [r7, #0x1C]
  00088	e59fe7c4	 ldr         lr, [pc, #0x7C4]
  0008c	e5883000	 str         r3, [r8]
  00090	e5973024	 ldr         r3, [r7, #0x24]
  00094	e59f87b4	 ldr         r8, [pc, #0x7B4]
  00098	e5803000	 str         r3, [r0]
  0009c	e597302c	 ldr         r3, [r7, #0x2C]

; 511  :     entry_OSMR0 = pOSTRegs->osmr0;
; 512  :     entry_OIER  = pOSTRegs->oier;
; 513  : 
; 514  : #ifdef BSP_MAINSTONE
; 515  :     DBGMSG(("Xllp_SuspendResume: BSP_MAINSTONE defined\r\n"));

⌨️ 快捷键说明

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