; generated by ARM C/C++ Compiler, 4.1 [Build 894]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\Obj\led_lpc43xx.o --asm_dir=.\Lst\ --list_dir=.\Lst\ --depend=.\Obj\led_lpc43xx.d --cpu=Cortex-M4 --apcs=interwork -O0 -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -IC:\Keil\ARM\Inc\NXP\LPC43xx -D__MICROLIB --omf_browse=.\Obj\led_lpc43xx.crf LED_LPC43xx.c]
                          THUMB

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

                  LED_Init PROC
;;;40      *----------------------------------------------------------------------------*/
;;;41     void LED_Init (void) {
000000  2003              MOVS     r0,#3
;;;42     
;;;43       /* Enable clock and init GPIO outputs */
;;;44       LPC_CCU1->CLK_M4_GPIO_CFG  = CCU_CLK_CFG_AUTO | CCU_CLK_CFG_RUN;
000002  4948              LDR      r1,|L1.292|
000004  6008              STR      r0,[r1,#0]
;;;45       while (!(LPC_CCU1->CLK_M4_GPIO_STAT & CCU_CLK_STAT_RUN));
000006  bf00              NOP      
                  |L1.8|
000008  4846              LDR      r0,|L1.292|
00000a  1d00              ADDS     r0,r0,#4
00000c  6800              LDR      r0,[r0,#0]
00000e  f0100f01          TST      r0,#1
000012  d0f9              BEQ      |L1.8|
;;;46     
;;;47       LPC_SCU->SFSPD_10  =  4;              /* GPIO6[24]                          */
000014  2004              MOVS     r0,#4
000016  4944              LDR      r1,|L1.296|
000018  6008              STR      r0,[r1,#0]
;;;48       LPC_SCU->SFSPD_11  =  4;              /* GPIO6[25]                          */
00001a  1d09              ADDS     r1,r1,#4
00001c  6008              STR      r0,[r1,#0]
;;;49       LPC_SCU->SFSPD_12  =  4;              /* GPIO6[26]                          */
00001e  1d09              ADDS     r1,r1,#4
000020  6008              STR      r0,[r1,#0]
;;;50       LPC_SCU->SFSPD_13  =  4;              /* GPIO6[27]                          */
000022  1d09              ADDS     r1,r1,#4
000024  6008              STR      r0,[r1,#0]
;;;51       LPC_SCU->SFSPD_14  =  4;              /* GPIO6[28]                          */
000026  1d09              ADDS     r1,r1,#4
000028  6008              STR      r0,[r1,#0]
;;;52       LPC_SCU->SFSP9_0   =  0;              /* GPIO4[12]                          */
00002a  2000              MOVS     r0,#0
00002c  493f              LDR      r1,|L1.300|
00002e  6008              STR      r0,[r1,#0]
;;;53       LPC_SCU->SFSP9_1   =  0;              /* GPIO4[13]                          */
000030  1d09              ADDS     r1,r1,#4
000032  6008              STR      r0,[r1,#0]
;;;54       LPC_SCU->SFSP9_2   =  0;              /* GPIO4[14]                          */
000034  1d09              ADDS     r1,r1,#4
000036  6008              STR      r0,[r1,#0]
;;;55     
;;;56       LPC_GPIO_PORT->DIR[6] |= (led_mask[3] | led_mask[4] | led_mask[5] |
000038  483d              LDR      r0,|L1.304|
00003a  68c0              LDR      r0,[r0,#0xc]  ; led_mask
00003c  493c              LDR      r1,|L1.304|
00003e  6909              LDR      r1,[r1,#0x10]  ; led_mask
000040  4308              ORRS     r0,r0,r1
000042  493b              LDR      r1,|L1.304|
000044  6949              LDR      r1,[r1,#0x14]  ; led_mask
000046  4308              ORRS     r0,r0,r1
000048  4939              LDR      r1,|L1.304|
00004a  6989              LDR      r1,[r1,#0x18]  ; led_mask
00004c  4308              ORRS     r0,r0,r1
00004e  4938              LDR      r1,|L1.304|
000050  69c9              LDR      r1,[r1,#0x1c]  ; led_mask
000052  4308              ORRS     r0,r0,r1
000054  4937              LDR      r1,|L1.308|
000056  6989              LDR      r1,[r1,#0x18]
000058  4308              ORRS     r0,r0,r1
00005a  4936              LDR      r1,|L1.308|
00005c  6188              STR      r0,[r1,#0x18]
;;;57                                 led_mask[6] | led_mask[7]);
;;;58     
;;;59       LPC_GPIO_PORT->DIR[4] |= (led_mask[0] | led_mask[1] | led_mask[2]);
00005e  4834              LDR      r0,|L1.304|
000060  6800              LDR      r0,[r0,#0]  ; led_mask
000062  4933              LDR      r1,|L1.304|
000064  6849              LDR      r1,[r1,#4]  ; led_mask
000066  4308              ORRS     r0,r0,r1
000068  4931              LDR      r1,|L1.304|
00006a  6889              LDR      r1,[r1,#8]  ; led_mask
00006c  4308              ORRS     r0,r0,r1
00006e  4931              LDR      r1,|L1.308|
000070  6909              LDR      r1,[r1,#0x10]
000072  4308              ORRS     r0,r0,r1
000074  492f              LDR      r1,|L1.308|
000076  6108              STR      r0,[r1,#0x10]
;;;60     }
000078  4770              BX       lr
;;;61     
                          ENDP

                  LED_UnInit PROC
;;;68      *----------------------------------------------------------------------------*/
;;;69     void LED_UnInit(void) {
00007a  482d              LDR      r0,|L1.304|
;;;70       LPC_GPIO_PORT->DIR[6] &= ~(led_mask[3] | led_mask[4] | led_mask[5] |
00007c  68c0              LDR      r0,[r0,#0xc]  ; led_mask
00007e  492c              LDR      r1,|L1.304|
000080  6909              LDR      r1,[r1,#0x10]  ; led_mask
000082  4308              ORRS     r0,r0,r1
000084  492a              LDR      r1,|L1.304|
000086  6949              LDR      r1,[r1,#0x14]  ; led_mask
000088  4308              ORRS     r0,r0,r1
00008a  4929              LDR      r1,|L1.304|
00008c  6989              LDR      r1,[r1,#0x18]  ; led_mask
00008e  4308              ORRS     r0,r0,r1
000090  4927              LDR      r1,|L1.304|
000092  69c9              LDR      r1,[r1,#0x1c]  ; led_mask
000094  4308              ORRS     r0,r0,r1
000096  4927              LDR      r1,|L1.308|
000098  6989              LDR      r1,[r1,#0x18]
00009a  4381              BICS     r1,r1,r0
00009c  4825              LDR      r0,|L1.308|
00009e  6181              STR      r1,[r0,#0x18]
;;;71                                  led_mask[6] | led_mask[7]);
;;;72     
;;;73       LPC_GPIO_PORT->DIR[4] &= ~(led_mask[0] | led_mask[1] | led_mask[2]);
0000a0  4823              LDR      r0,|L1.304|
0000a2  6800              LDR      r0,[r0,#0]  ; led_mask
0000a4  4922              LDR      r1,|L1.304|
0000a6  6849              LDR      r1,[r1,#4]  ; led_mask
0000a8  4308              ORRS     r0,r0,r1
0000aa  4921              LDR      r1,|L1.304|
0000ac  6889              LDR      r1,[r1,#8]  ; led_mask
0000ae  4308              ORRS     r0,r0,r1
0000b0  4920              LDR      r1,|L1.308|
0000b2  6909              LDR      r1,[r1,#0x10]
0000b4  ea210000          BIC      r0,r1,r0
0000b8  491e              LDR      r1,|L1.308|
0000ba  6108              STR      r0,[r1,#0x10]
;;;74     }
0000bc  4770              BX       lr
;;;75     
                          ENDP

                  LED_On PROC
;;;81      *----------------------------------------------------------------------------*/
;;;82     void LED_On (uint32_t num) {
0000be  2803              CMP      r0,#3
;;;83     
;;;84       if (num < 3) {
0000c0  d205              BCS      |L1.206|
;;;85         LPC_GPIO_PORT->SET[4] = led_mask[num];
0000c2  491b              LDR      r1,|L1.304|
0000c4  f8512020          LDR      r2,[r1,r0,LSL #2]
0000c8  491b              LDR      r1,|L1.312|
0000ca  610a              STR      r2,[r1,#0x10]
0000cc  e004              B        |L1.216|
                  |L1.206|
;;;86       }
;;;87       else {
;;;88         LPC_GPIO_PORT->SET[6] = led_mask[num];
0000ce  4918              LDR      r1,|L1.304|
0000d0  f8512020          LDR      r2,[r1,r0,LSL #2]
0000d4  4918              LDR      r1,|L1.312|
0000d6  618a              STR      r2,[r1,#0x18]
                  |L1.216|
;;;89       }
;;;90     }
0000d8  4770              BX       lr
;;;91     
                          ENDP

                  LED_Off PROC
;;;97      *----------------------------------------------------------------------------*/
;;;98     void LED_Off (uint32_t num) {
0000da  2803              CMP      r0,#3
;;;99     
;;;100      if (num < 3) {
0000dc  d206              BCS      |L1.236|
;;;101        LPC_GPIO_PORT->CLR[4] = led_mask[num];
0000de  4914              LDR      r1,|L1.304|
0000e0  f8512020          LDR      r2,[r1,r0,LSL #2]
0000e4  4914              LDR      r1,|L1.312|
0000e6  3180              ADDS     r1,r1,#0x80
0000e8  610a              STR      r2,[r1,#0x10]
0000ea  e005              B        |L1.248|
                  |L1.236|
;;;102      }
;;;103      else {
;;;104        LPC_GPIO_PORT->CLR[6] = led_mask[num];
0000ec  4910              LDR      r1,|L1.304|
0000ee  f8512020          LDR      r2,[r1,r0,LSL #2]
0000f2  4911              LDR      r1,|L1.312|
0000f4  3180              ADDS     r1,r1,#0x80
0000f6  618a              STR      r2,[r1,#0x18]
                  |L1.248|
;;;105      }
;;;106    }
0000f8  4770              BX       lr
;;;107    
                          ENDP

                  LED_Val PROC
;;;113     *----------------------------------------------------------------------------*/
;;;114    void LED_Val (uint32_t val) {
0000fa  b510              PUSH     {r4,lr}
0000fc  4604              MOV      r4,r0
;;;115      int i;
;;;116    
;;;117      for (i = 0; i < NUM_LEDS; i++) {
0000fe  2300              MOVS     r3,#0
000100  e00b              B        |L1.282|
                  |L1.258|
;;;118        if (val & (1<<i)) {
000102  2001              MOVS     r0,#1
000104  4098              LSLS     r0,r0,r3
000106  4220              TST      r0,r4
000108  d003              BEQ      |L1.274|
;;;119          LED_On (i);
00010a  4618              MOV      r0,r3
00010c  f7fffffe          BL       LED_On
000110  e002              B        |L1.280|
                  |L1.274|
;;;120        } else {
;;;121          LED_Off(i);
000112  4618              MOV      r0,r3
000114  f7fffffe          BL       LED_Off
                  |L1.280|
000118  1c5b              ADDS     r3,r3,#1              ;117
                  |L1.282|
00011a  2b08              CMP      r3,#8                 ;117
00011c  dbf1              BLT      |L1.258|
;;;122        }
;;;123      }
;;;124    }
00011e  bd10              POP      {r4,pc}
;;;125    
                          ENDP

                  LED_Num PROC
;;;131     *----------------------------------------------------------------------------*/
;;;132    uint32_t LED_Num (void) {
000120  2008              MOVS     r0,#8
;;;133      return (NUM_LEDS);
;;;134    }
000122  4770              BX       lr
;;;135    
                          ENDP

                  |L1.292|
                          DCD      0x40051410
                  |L1.296|
                          DCD      0x400866a8
                  |L1.300|
                          DCD      0x40086480
                  |L1.304|
                          DCD      led_mask
                  |L1.308|
                          DCD      0x400f6000
                  |L1.312|
                          DCD      0x400f6200

                          AREA ||.constdata||, DATA, READONLY, ALIGN=2

                  led_mask
                          DCD      0x00004000
                          DCD      0x00002000
                          DCD      0x00001000
                          DCD      0x10000000
                          DCD      0x08000000
                          DCD      0x04000000
                          DCD      0x02000000
                          DCD      0x01000000

;*** Start embedded assembler ***

#line 1 "LED_LPC43xx.c"
	AREA ||.rev16_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___13_LED_LPC43xx_c_led_mask____REV16|
#line 115 "C:\\Keil\\ARM\\CMSIS\\Include\\core_cmInstr.h"
|__asm___13_LED_LPC43xx_c_led_mask____REV16| PROC
#line 116

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___13_LED_LPC43xx_c_led_mask____REVSH|
#line 130
|__asm___13_LED_LPC43xx_c_led_mask____REVSH| PROC
#line 131

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
