   1              		.file	"System.c"
   9              	.Ltext0:
  10              		.align	2
  12              	IRQ_Handler:
  13              	.LFB2:
  14              		.file 1 "System.c"
   1:System.c      **** // System.c
   2:System.c      **** 
   3:System.c      **** #include "defs.h"
   4:System.c      **** 
   5:System.c      **** static void IRQ_Handler(void)
   6:System.c      **** {
  15              	 args = 0, pretend = 0, frame = 0
  16              		@ frame_needed = 0, uses_anonymous_args = 0
  17              		@ link register save eliminated.
  18              		.loc 1 7 0
   7:System.c      ****   if (IRQSTA & WAKEUP_TIMER_BIT) {
  19              		r1, #61440
  20 0000 0F1AE0E3 		ldr	r3, [r1, #-4095]
  21 0004 FF3F11E5 		tst	r3, #16
  22 0008 100013E3 		.loc 1 6 0
  23              		@ lr needed for prologue
  24              		.loc 1 8 0
   8:System.c      ****     T2CON = 0;	// Disable T2
  25              	2, #0
  26 000c 0020A0E3 		.loc 1 7 0
  27              		bxeq	lr
  28 0010 1EFF2F01 		.loc 1 12 0
   9:System.c      **** 	T2CLRI = 0;	// Clear T2 interrupt
  10:System.c      **** 
  11:System.c      ****     // Standard POWCON Write Sequence
  12:System.c      ****     POWKEY1 = 0x01;
  29              		r3, #1
  30 0014 0130A0E3 		.loc 1 8 0
  31              		str	r2, [r1, #-3255]
  32 0018 B72C01E5 		.loc 1 9 0
  33              		str	r2, [r1, #-3251]
  34 001c B32C01E5 		.loc 1 12 0
  35              		str	r3, [r1, #-3067]
  36 0020 FB3B01E5 		.loc 1 13 0
  13:System.c      ****     POWCON = 0x03;	// Set Core working mode, CD = 3
  37              	 r2, #3
  38 0024 032082E2 		.loc 1 14 0
  14:System.c      ****     POWKEY2 = 0xF4;	
  39              	dd	r3, r3, #243
  40 0028 F33083E2 		.loc 1 13 0
  41              		str	r2, [r1, #-3063]
  42 002c F72B01E5 		.loc 1 14 0
  43              		str	r3, [r1, #-3059]
  44 0030 F33B01E5 		bx	lr
  45 0034 1EFF2FE1 	.LFE2:
  47              		.align	2
  48              		.global	InitController
  50              	InitController:
  51              	.LFB3:
  52              		.loc 1 20 0
  15:System.c      ****   } 
  16:System.c      **** }
  17:System.c      **** 
  18:System.c      **** 
  19:System.c      **** void InitController(void)
  20:System.c      **** {
  53              	retend = 0, frame = 0
  54              		@ frame_needed = 0, uses_anonymous_args = 0
  55              		.loc 1 25 0
  21:System.c      **** #ifdef ExternalCrystal
  22:System.c      ****   int t2val_old;
  23:System.c      **** #endif
  24:System.c      **** 
  25:System.c      ****   IRQ = IRQ_Handler;
  56              	r	r3, .L13
  57 0038 A4309FE5 		ldr	r0, .L13+4
  58 003c A4009FE5 		.loc 1 29 0
  26:System.c      **** 
  27:System.c      **** #ifdef ExternalCrystal
  28:System.c      ****   // WAKEUP (T2) Timer settings
  29:System.c      ****   t2val_old = T2VAL;
  59              	n	r1, #61440
  60 0040 0F1AE0E3 		.loc 1 25 0
  61              		str	r0, [r3, #0]
  62 0044 000083E5 		.loc 1 33 0
  30:System.c      **** 
  31:System.c      ****   // Select External Crystal
  32:System.c      ****   // 5 periodes of 32kHz internal oscillator.  T >= 120us
  33:System.c      ****   T2LD = 5;
  63              		r2, #5
  64 0048 0520A0E3 		.loc 1 35 0
  34:System.c      ****   // Enable the Timer2 interrupt
  35:System.c      ****   T2CON = 0x480;
  65              	ov	r3, #1152
  66 004c 123DA0E3 		.loc 1 20 0
  67              		stmfd	sp!, {r4, lr}
  68 0050 10402DE9 	.LCFI0:
  69              		.loc 1 29 0
  70              		ldr	lr, [r1, #-3259]
  71 0054 BBEC11E5 		.loc 1 33 0
  72              		str	r2, [r1, #-3263]
  73 0058 BF2C01E5 		.loc 1 35 0
  74              		str	r3, [r1, #-3255]
  75 005c B73C01E5 		mov	ip, r1
  76 0060 01C0A0E1 		mov	r4, #16
  77 0064 1040A0E3 	.L7:
  78              		.loc 1 37 0
  36:System.c      ****   // Ensures timer value loaded
  37:System.c      ****   while ((T2VAL == t2val_old) || (T2VAL > 3))
  79              	#-3259]
  80 0068 BB3C1CE5 		cmp	r3, lr
  81 006c 0E0053E1 		beq	.L8
  82 0070 0200000A 		ldr	r3, [ip, #-3259]
  83 0074 BB3C1CE5 		cmp	r3, #3
  84 0078 030053E3 		bls	.L12
  85 007c 0100009A 	.L8:
  86              		.loc 1 38 0
  38:System.c      ****     IRQEN = 0x10;	// enable T2 interrupt
  87              	 [ip, #-4087]
  88 0080 F74F0CE5 		b	.L7
  89 0084 F7FFFFEA 	.L12:
  90              		.loc 1 41 0
  39:System.c      **** 	
  40:System.c      ****   // Standard PLLCON Write Sequence
  41:System.c      ****   PLLKEY1 = 0xAA;
  91              		r3, #170
  92 0088 AA30A0E3 		str	r3, [ip, #-3055]
  93 008c EF3B0CE5 		.loc 1 42 0
  42:System.c      ****   PLLCON = 0x01;	// External Crystal
  94              	v	r2, #1
  95 0090 0120A0E3 		.loc 1 43 0
  43:System.c      ****   PLLKEY2 = 0x55;
  96              	ub	r3, r3, #85
  97 0094 553043E2 		.loc 1 42 0
  98              		str	r2, [ip, #-3051]
  99 0098 EB2B0CE5 		.loc 1 43 0
 100              		str	r3, [ip, #-3047]
 101 009c E73B0CE5 		.loc 1 46 0
  44:System.c      ****   
  45:System.c      ****   // Standard POWCON Write Sequence
  46:System.c      ****   POWKEY1 = 0x01;
 102              	2, [ip, #-3067]
 103 00a0 FB2B0CE5 		.loc 1 47 0
  47:System.c      ****   POWCON = 0x27;	// Set Core into NAP mode, CD = 7
 104              	ub	r3, r3, #46
 105 00a4 2E3043E2 		.loc 1 48 0
  48:System.c      ****   POWKEY2 = 0xF4;	
 106              	dd	r2, r2, #243
 107 00a8 F32082E2 		.loc 1 47 0
 108              		str	r3, [ip, #-3063]
 109 00ac F73B0CE5 		.loc 1 51 0
  49:System.c      **** #endif
  50:System.c      **** 
  51:System.c      ****   GP0DAT = 0x80000000;		//	Configure P0.7 as output (TXEN)
 110              		r1, #0
 111 00b0 0010E0E3 		.loc 1 48 0
 112              		str	r2, [ip, #-3059]
 113 00b4 F32B0CE5 		.loc 1 51 0
 114              		sub	r3, r3, #-2147483609
 115 00b8 9E3143E2 		.loc 1 52 0
  52:System.c      ****   GP1DAT = 0x04000000;		//	Configure P1.2 as output (PowerEN)
 116              	2, #67108864
 117 00bc 0123A0E3 		.loc 1 51 0
 118              		str	r3, [r1, #-3039]
 119 00c0 DF3B01E5 		.loc 1 52 0
 120              		str	r2, [r1, #-3023]
 121 00c4 CF2B01E5 		.loc 1 55 0
  53:System.c      **** 
  54:System.c      ****   // Timer1: HCLK + Count Up + Enable + Free Running + Binary + SourceClock/1
  55:System.c      ****   T1CON = 0x180;
 122              	3, #384
 123 00c8 063DA0E3 		.loc 1 58 0
  56:System.c      **** 
  57:System.c      ****   // DAC0, DAC1: Enable + Vref(2.5V) reference
  58:System.c      ****   DAC1CON = DAC0CON = 0X12;
 124              	ov	r2, #18
 125 00cc 1220A0E3 		.loc 1 55 0
 126              		str	r3, [ip, #-3287]
 127 00d0 D73C0CE5 		.loc 1 58 0
 128              		str	r2, [ip, #-2559]
 129 00d4 FF290CE5 		ldr	r3, [ip, #-2559]
 130 00d8 FF391CE5 		str	r3, [ip, #-2551]
 131 00dc F7390CE5 		.loc 1 61 0
  59:System.c      **** //  DAC0DAT = 0xFFF0000;
  60:System.c      **** //  DAC1DAT = 0xFFF0000;
  61:System.c      **** }
 132              	p!, {r4, pc}
 133 00e0 1080BDE8 	.L14:
 134              		.align	2
 135              	.L13:
 136              		.word	IRQ
 137 00e4 00000000 		.word	IRQ_Handler
 138 00e8 00000000 	.LFE3:
 140              		.align	2
 141              		.global	delay
 143              	delay:
 144              	.LFB4:
 145              		.loc 1 64 0
  62:System.c      **** 
  63:System.c      **** void delay(u32 duration /*us*/)
  64:System.c      **** {
 146              	retend = 0, frame = 0
 147              		@ frame_needed = 0, uses_anonymous_args = 0
 148              		@ link register save eliminated.
 149              	.LVL0:
 150              		.loc 1 68 0
  65:System.c      ****   u32 i;
  66:System.c      **** 
  67:System.c      ****   i = (duration-1)*TiksPerUs;
  68:System.c      ****   if ((u32)T1VAL > 0x80000000L) {
 151              	r2, #61440
 152 00ec 0F2AE0E3 		ldr	r3, [r2, #-3291]
 153 00f0 DB3C12E5 		cmp	r3, #-2147483648
 154 00f4 020153E3 		.loc 1 67 0
 155              		add	r0, r0, r0, asl #2
 156 00f8 000180E0 	.LVL1:
 157              		.loc 1 73 0
  69:System.c      ****     i += T1VAL - 0x80000000L;
  70:System.c      **** 	while ((u32)(T1VAL - 0x80000000L) < i);
  71:System.c      ****   }
  72:System.c      ****   else {
  73:System.c      ****     i += T1VAL;
 158              	r3, [r2, #-3291]
 159 00fc DB3C1295 		.loc 1 67 0
 160              		sub	r0, r0, #5
 161 0100 050040E2 	.LVL2:
 162              		.loc 1 64 0
 163              		@ lr needed for prologue
 164              		.loc 1 73 0
 165              		addls	r0, r0, r3
 166 0104 03008090 	.LVL3:
 167              		.loc 1 68 0
 168              		bls	.L20
 169 0108 0B00009A 		.loc 1 69 0
 170              		ldr	r3, [r2, #-3291]
 171 010c DB3C12E5 	.LVL4:
 172              		add	r3, r0, r3
 173 0110 033080E0 		add	r0, r3, #-2147483648
 174 0114 020183E2 	.LVL5:
 175              	.L18:
 176              		.loc 1 70 0
 177              		ldr	r3, [r2, #-3291]
 178 0118 DB3C12E5 		add	r3, r3, #-2147483648
 179 011c 023183E2 		cmp	r0, r3
 180 0120 030050E1 		bxls	lr
 181 0124 1EFF2F91 		ldr	r3, [r2, #-3291]
 182 0128 DB3C12E5 		add	r3, r3, #-2147483648
 183 012c 023183E2 		cmp	r0, r3
 184 0130 030050E1 		bhi	.L18
 185 0134 F7FFFF8A 		bx	lr
 186 0138 1EFF2FE1 	.LVL6:
 187              	.L20:
 188              		.loc 1 74 0
  74:System.c      ****     while (T1VAL < i);
 189              	r3
 190 013c DB3C12E5 		bhi	.L20
 191 0140 030050E1 		bx	lr
 192 0144 FCFFFF8A 	.LFE4:
 194              		.comm	IRQ,4,4
 195              		.comm	SWI,4,4
 196              		.comm	FIQ,4,4
 197              		.comm	UNDEF,4,4
 198              		.comm	PABORT,4,4
 199              		.comm	DABORT,4,4
 200              		.section	.debug_frame,"",%progbits
 201              	.Lframe0:
 252              	.Ldebug_loc0:
DEFINED SYMBOLS
                            *ABS*:00000000 System.c
C:\DOCUME~1\David\LOCALS~1\Temp/cch3EfZY.s:12     .text:00000000 IRQ_Handler
C:\DOCUME~1\David\LOCALS~1\Temp/cch3EfZY.s:20     .text:00000000 $a
C:\DOCUME~1\David\LOCALS~1\Temp/cch3EfZY.s:51     .text:00000038 InitController
C:\DOCUME~1\David\LOCALS~1\Temp/cch3EfZY.s:137    .text:000000e4 $d
                            *COM*:00000004 IRQ
C:\DOCUME~1\David\LOCALS~1\Temp/cch3EfZY.s:144    .text:000000ec delay
C:\DOCUME~1\David\LOCALS~1\Temp/cch3EfZY.s:152    .text:000000ec $a
                            *COM*:00000004 SWI
                            *COM*:00000004 FIQ
                            *COM*:00000004 UNDEF
                            *COM*:00000004 PABORT
                            *COM*:00000004 DABORT

NO UNDEFINED SYMBOLS
