; generated by Component: ARM Compiler 5.06 update 1 (build 61) Tool: ArmCC [4d35ad]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\board_init.o --asm_dir=.\Obj\ --list_dir=.\Obj\ --depend=.\obj\board_init.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931 -I. -I.\Core_CM3 -ID:\work\arm\lpc1769_eth_bootloader\RTE -I"C:\Program Files\Keil\ARM\PACK\Keil\LPC1700_DFP\2.2.0\Device\Include" -I"C:\Program Files\Keil\ARM\CMSIS\Include" -D__UVISION_VERSION=517 -DLPC175x_6x --omf_browse=.\obj\board_init.crf board_init\board_init.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  init_PLL PROC
;;;17     
;;;18     void init_PLL(void)
000000  4836              LDR      r0,|L1.220|
;;;19     {
;;;20       // disconnect PLL0
;;;21       LPC_SC->PLL0CON &= ~0x02;
000002  6800              LDR      r0,[r0,#0]
000004  f0200002          BIC      r0,r0,#2
000008  4934              LDR      r1,|L1.220|
00000a  3980              SUBS     r1,r1,#0x80
00000c  f8c10080          STR      r0,[r1,#0x80]
;;;22       // feed
;;;23       LPC_SC->PLL0FEED = 0xAA;
000010  20aa              MOVS     r0,#0xaa
000012  4932              LDR      r1,|L1.220|
000014  310c              ADDS     r1,r1,#0xc
000016  6008              STR      r0,[r1,#0]
;;;24       LPC_SC->PLL0FEED = 0x55;
000018  2055              MOVS     r0,#0x55
00001a  6008              STR      r0,[r1,#0]
;;;25     
;;;26       // disable PLL0
;;;27       LPC_SC->PLL0CON = 0x00;
00001c  2000              MOVS     r0,#0
00001e  492f              LDR      r1,|L1.220|
000020  6008              STR      r0,[r1,#0]
;;;28       // feed
;;;29       LPC_SC->PLL0FEED = 0xAA;
000022  20aa              MOVS     r0,#0xaa
000024  492d              LDR      r1,|L1.220|
000026  310c              ADDS     r1,r1,#0xc
000028  6008              STR      r0,[r1,#0]
;;;30       LPC_SC->PLL0FEED = 0x55;
00002a  2055              MOVS     r0,#0x55
00002c  6008              STR      r0,[r1,#0]
;;;31     
;;;32       // enable main oscillator, 1MHz - 20MHz
;;;33       LPC_SC->SCS = 0x20;
00002e  2020              MOVS     r0,#0x20
000030  492a              LDR      r1,|L1.220|
000032  3980              SUBS     r1,r1,#0x80
000034  f8c101a0          STR      r0,[r1,#0x1a0]
;;;34       // wait until ready
;;;35       while (!(LPC_SC->SCS >> 6 & 0x1));
000038  bf00              NOP      
                  |L1.58|
00003a  4829              LDR      r0,|L1.224|
00003c  6800              LDR      r0,[r0,#0]
00003e  f3c01080          UBFX     r0,r0,#6,#1
000042  2800              CMP      r0,#0
000044  d0f9              BEQ      |L1.58|
;;;36       // select main oscillator (10MHz) as input for PLL0
;;;37       LPC_SC->CLKSRCSEL = 0x01;
000046  2001              MOVS     r0,#1
000048  4924              LDR      r1,|L1.220|
00004a  318c              ADDS     r1,r1,#0x8c
00004c  6008              STR      r0,[r1,#0]
;;;38     
;;;39       // configure PLL0
;;;40       LPC_SC->PLL0CFG = (PLL_NSEL << 16) | PLL_MSEL;
00004e  4825              LDR      r0,|L1.228|
000050  0381              LSLS     r1,r0,#14
000052  f8c10084          STR      r0,[r1,#0x84]
;;;41       // feed
;;;42       LPC_SC->PLL0FEED = 0xAA;
000056  20aa              MOVS     r0,#0xaa
000058  4920              LDR      r1,|L1.220|
00005a  310c              ADDS     r1,r1,#0xc
00005c  6008              STR      r0,[r1,#0]
;;;43       LPC_SC->PLL0FEED = 0x55;
00005e  2055              MOVS     r0,#0x55
000060  6008              STR      r0,[r1,#0]
;;;44     
;;;45       // enable PLL0
;;;46       LPC_SC->PLL0CON = 0x01;
000062  2001              MOVS     r0,#1
000064  491d              LDR      r1,|L1.220|
000066  6008              STR      r0,[r1,#0]
;;;47       // feed
;;;48       LPC_SC->PLL0FEED = 0xAA;
000068  20aa              MOVS     r0,#0xaa
00006a  491c              LDR      r1,|L1.220|
00006c  310c              ADDS     r1,r1,#0xc
00006e  6008              STR      r0,[r1,#0]
;;;49       LPC_SC->PLL0FEED = 0x55;
000070  2055              MOVS     r0,#0x55
000072  6008              STR      r0,[r1,#0]
;;;50     
;;;51       // set CPU clock divider - CCLK = 70MHz
;;;52       LPC_SC->CCLKCFG = CCLK_DIV;
000074  2003              MOVS     r0,#3
000076  4919              LDR      r1,|L1.220|
000078  3980              SUBS     r1,r1,#0x80
00007a  f8c10104          STR      r0,[r1,#0x104]
;;;53     
;;;54       // wait for lock
;;;55       while (!((LPC_SC->PLL0STAT >> 26) & 0x1));
00007e  bf00              NOP      
                  |L1.128|
000080  4816              LDR      r0,|L1.220|
000082  3008              ADDS     r0,r0,#8
000084  6800              LDR      r0,[r0,#0]
000086  f3c06080          UBFX     r0,r0,#26,#1
00008a  2800              CMP      r0,#0
00008c  d0f8              BEQ      |L1.128|
;;;56     
;;;57       // connect PLL0
;;;58       LPC_SC->PLL0CON = 0x03;
00008e  2003              MOVS     r0,#3
000090  4912              LDR      r1,|L1.220|
000092  6008              STR      r0,[r1,#0]
;;;59       // feed
;;;60       LPC_SC->PLL0FEED = 0xAA;
000094  20aa              MOVS     r0,#0xaa
000096  4911              LDR      r1,|L1.220|
000098  3980              SUBS     r1,r1,#0x80
00009a  f8c1008c          STR      r0,[r1,#0x8c]
;;;61       LPC_SC->PLL0FEED = 0x55;
00009e  2055              MOVS     r0,#0x55
0000a0  490e              LDR      r1,|L1.220|
0000a2  310c              ADDS     r1,r1,#0xc
0000a4  6008              STR      r0,[r1,#0]
;;;62     
;;;63       // wait for connected
;;;64       while (!((LPC_SC->PLL0STAT >> 25) & 0x1));
0000a6  bf00              NOP      
                  |L1.168|
0000a8  480c              LDR      r0,|L1.220|
0000aa  3008              ADDS     r0,r0,#8
0000ac  6800              LDR      r0,[r0,#0]
0000ae  f3c06040          UBFX     r0,r0,#25,#1
0000b2  2800              CMP      r0,#0
0000b4  d0f8              BEQ      |L1.168|
;;;65     }
0000b6  4770              BX       lr
;;;66     
                          ENDP

                  init_MAM PROC
;;;67     void init_MAM(void)
0000b8  4770              BX       lr
;;;68     {
;;;69     }
;;;70     
                          ENDP

                  init_PCB PROC
;;;71     void init_PCB(void)
0000ba  4770              BX       lr
;;;72     {
;;;73     }
;;;74     
                          ENDP

                  VectorsRemap PROC
;;;75     void VectorsRemap(void)
0000bc  4770              BX       lr
;;;76     {
;;;77     }
;;;78     
                          ENDP

                  board_init PROC
;;;79     void board_init(void)
0000be  b510              PUSH     {r4,lr}
;;;80     {
;;;81       init_PLL();
0000c0  f7fffffe          BL       init_PLL
;;;82       Timer_init();
0000c4  f7fffffe          BL       Timer_init
;;;83     	// wait for PLL to complete initialization after POR
;;;84     	Timer_Delay(100);
0000c8  2064              MOVS     r0,#0x64
0000ca  f7fffffe          BL       Timer_Delay
;;;85     	init_MAM();
0000ce  f7fffffe          BL       init_MAM
;;;86     	init_PCB();
0000d2  f7fffffe          BL       init_PCB
;;;87     	VectorsRemap();
0000d6  f7fffffe          BL       VectorsRemap
;;;88     }
0000da  bd10              POP      {r4,pc}
                          ENDP

                  |L1.220|
                          DCD      0x400fc080
                  |L1.224|
                          DCD      0x400fc1a0
                  |L1.228|
                          DCD      0x0005003f
