; generated by Component: ARM Compiler 5.06 update 4 (build 422) Tool: ArmCC [4d3604]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o.\obj\lib_driver_gpio_pan159.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\lib_driver_gpio_pan159.d --cpu=Cortex-M0 --apcs=interwork -O3 --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\Mini58Series\Include -I..\..\..\Library\StdDriver\inc -I..\..\Template -I..\..\..\Library\StdDriver\driver -I.\RTE\_Template -ID:\Keil_v5\ARM\PACK\Nuvoton\NuMicro_DFP\1.0.9\Device\Mini58\Include -ID:\Keil_v5\ARM\CMSIS\Include -D__MICROLIB -D__UVISION_VERSION=523 --omf_browse=.\obj\lib_driver_gpio_pan159.crf ..\..\..\Library\StdDriver\driver\lib_driver_gpio_pan159.c]
                          THUMB

                          AREA ||i.EINT0_IRQHandler||, CODE, READONLY, ALIGN=2

                  EINT0_IRQHandler PROC
;;;31     
;;;32     void EINT0_IRQHandler(void)
000000  4904              LDR      r1,|L1.20|
;;;33     {
;;;34         /* For P3.2, clear the INT flag */
;;;35         P3->INTSRC = BIT2;
000002  2004              MOVS     r0,#4
000004  6208              STR      r0,[r1,#0x20]
;;;36         if(__s_lib_driver_EINT0_pan159_irq_handler){
000006  4804              LDR      r0,|L1.24|
000008  6840              LDR      r0,[r0,#4]  ; __s_lib_driver_EINT0_pan159_irq_handler
00000a  2800              CMP      r0,#0
00000c  d000              BEQ      |L1.16|
;;;37             __s_lib_driver_EINT0_pan159_irq_handler();
00000e  4700              BX       r0
                  |L1.16|
;;;38         }
;;;39         
;;;40     }
000010  4770              BX       lr
;;;41     void EINT1_IRQHandler(void)
                          ENDP

000012  0000              DCW      0x0000
                  |L1.20|
                          DCD      0x500040c0
                  |L1.24|
                          DCD      ||.data||

                          AREA ||i.EINT1_IRQHandler||, CODE, READONLY, ALIGN=2

                  EINT1_IRQHandler PROC
;;;40     }
;;;41     void EINT1_IRQHandler(void)
000000  4904              LDR      r1,|L2.20|
;;;42     {
;;;43         /* For P5.2, clear the INT flag */
;;;44         P5->INTSRC = BIT2;
000002  2004              MOVS     r0,#4
000004  6208              STR      r0,[r1,#0x20]
;;;45         if(__s_lib_driver_EINT1_pan159_irq_handler){
000006  4804              LDR      r0,|L2.24|
000008  6800              LDR      r0,[r0,#0]  ; __s_lib_driver_EINT1_pan159_irq_handler
00000a  2800              CMP      r0,#0
00000c  d000              BEQ      |L2.16|
;;;46             __s_lib_driver_EINT1_pan159_irq_handler();
00000e  4700              BX       r0
                  |L2.16|
;;;47         }
;;;48         
;;;49     }
000010  4770              BX       lr
                          ENDP

000012  0000              DCW      0x0000
                  |L2.20|
                          DCD      0x50004140
                  |L2.24|
                          DCD      ||.data||

                          AREA ||i.gpio_ext0_int_init||, CODE, READONLY, ALIGN=2

                  gpio_ext0_int_init PROC
;;;22     }
;;;23     void gpio_ext0_int_init(TCallback cbk)
000000  b510              PUSH     {r4,lr}
;;;24     {
000002  0004              MOVS     r4,r0
000004  d007              BEQ      |L3.22|
;;;25         if(cbk){
;;;26             GPIO_EnableEINT1(P3, 2, GPIO_INT_FALLING);
000006  2201              MOVS     r2,#1
000008  2102              MOVS     r1,#2
00000a  4804              LDR      r0,|L3.28|
00000c  f7fffffe          BL       GPIO_EnableInt
000010  4903              LDR      r1,|L3.32|
000012  2004              MOVS     r0,#4
000014  6008              STR      r0,[r1,#0]
                  |L3.22|
;;;27             NVIC_EnableIRQ(EINT0_IRQn);
;;;28         }
;;;29         __s_lib_driver_EINT0_pan159_irq_handler =  cbk;   
000016  4803              LDR      r0,|L3.36|
000018  6044              STR      r4,[r0,#4]  ; __s_lib_driver_EINT0_pan159_irq_handler
;;;30     }
00001a  bd10              POP      {r4,pc}
;;;31     
                          ENDP

                  |L3.28|
                          DCD      0x500040c0
                  |L3.32|
                          DCD      0xe000e100
                  |L3.36|
                          DCD      ||.data||

                          AREA ||i.gpio_ext1_int_init||, CODE, READONLY, ALIGN=2

                  gpio_ext1_int_init PROC
;;;14     static void (*__s_lib_driver_EINT0_pan159_irq_handler)(void) = NULL;
;;;15     void gpio_ext1_int_init(TCallback cbk)
000000  b510              PUSH     {r4,lr}
;;;16     {
000002  0004              MOVS     r4,r0
000004  d007              BEQ      |L4.22|
;;;17         if(cbk){
;;;18             GPIO_EnableEINT1(P5, 2, GPIO_INT_FALLING);
000006  2201              MOVS     r2,#1
000008  2102              MOVS     r1,#2
00000a  4804              LDR      r0,|L4.28|
00000c  f7fffffe          BL       GPIO_EnableInt
000010  4903              LDR      r1,|L4.32|
000012  2008              MOVS     r0,#8
000014  6008              STR      r0,[r1,#0]
                  |L4.22|
;;;19             NVIC_EnableIRQ(EINT1_IRQn);
;;;20         }
;;;21         __s_lib_driver_EINT1_pan159_irq_handler =  cbk;   
000016  4803              LDR      r0,|L4.36|
000018  6004              STR      r4,[r0,#0]  ; __s_lib_driver_EINT1_pan159_irq_handler
;;;22     }
00001a  bd10              POP      {r4,pc}
;;;23     void gpio_ext0_int_init(TCallback cbk)
                          ENDP

                  |L4.28|
                          DCD      0x50004140
                  |L4.32|
                          DCD      0xe000e100
                  |L4.36|
                          DCD      ||.data||

                          AREA ||.data||, DATA, ALIGN=2

                  __s_lib_driver_EINT1_pan159_irq_handler
                          DCD      0x00000000
                  __s_lib_driver_EINT0_pan159_irq_handler
                          DCD      0x00000000

;*** Start embedded assembler ***

#line 1 "..\\..\\..\\Library\\StdDriver\\driver\\lib_driver_gpio_pan159.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___24_lib_driver_gpio_pan159_c_0a0fc15c____REV16|
#line 388 "..\\..\\..\\Library\\CMSIS\\Include\\cmsis_armcc.h"
|__asm___24_lib_driver_gpio_pan159_c_0a0fc15c____REV16| PROC
#line 389

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___24_lib_driver_gpio_pan159_c_0a0fc15c____REVSH|
#line 402
|__asm___24_lib_driver_gpio_pan159_c_0a0fc15c____REVSH| PROC
#line 403

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
