; generated by Component: ARM Compiler 5.05 update 2 (build 169) Tool: ArmCC [4d0f38]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\gpio.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\gpio.d --cpu=Cortex-M4.fp --apcs=interwork -O0 --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\M451Series\Include -I..\..\..\Library\StdDriver\inc -I..\Bsp -I..\User -I..\touch_driver -I.\RTE\_project -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -IDevice\M451\Include -D__UVISION_VERSION=527 -D_RTE_ --omf_browse=.\obj\gpio.crf ..\..\..\Library\StdDriver\src\gpio.c]
                          THUMB

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

                  GPIO_SetMode PROC
;;;40      */
;;;41     void GPIO_SetMode(GPIO_T *port, unsigned int u32PinMask, unsigned int u32Mode)
000000  b570              PUSH     {r4-r6,lr}
;;;42     {
000002  4603              MOV      r3,r0
;;;43         unsigned int i;
;;;44     
;;;45         for(i = 0; i < GPIO_PIN_MAX; i++)
000004  2000              MOVS     r0,#0
000006  e00e              B        |L1.38|
                  |L1.8|
;;;46         {
;;;47             if(u32PinMask & (1 << i))
000008  2401              MOVS     r4,#1
00000a  4084              LSLS     r4,r4,r0
00000c  400c              ANDS     r4,r4,r1
00000e  b14c              CBZ      r4,|L1.36|
;;;48             {
;;;49                 port->MODE = (port->MODE & ~(0x3 << (i << 1))) | (u32Mode << (i << 1));
000010  681c              LDR      r4,[r3,#0]
000012  0046              LSLS     r6,r0,#1
000014  2503              MOVS     r5,#3
000016  40b5              LSLS     r5,r5,r6
000018  43ac              BICS     r4,r4,r5
00001a  0045              LSLS     r5,r0,#1
00001c  fa02f505          LSL      r5,r2,r5
000020  432c              ORRS     r4,r4,r5
000022  601c              STR      r4,[r3,#0]
                  |L1.36|
000024  1c40              ADDS     r0,r0,#1              ;45
                  |L1.38|
000026  2810              CMP      r0,#0x10              ;45
000028  d3ee              BCC      |L1.8|
;;;50             }
;;;51         }
;;;52     }
00002a  bd70              POP      {r4-r6,pc}
;;;53     
                          ENDP

                  GPIO_EnableInt PROC
;;;68      */
;;;69     void GPIO_EnableInt(GPIO_T *port, unsigned int u32Pin, unsigned int u32IntAttribs)
00002c  b510              PUSH     {r4,lr}
;;;70     {
;;;71         port->INTTYPE |= (((u32IntAttribs >> 24) & 0xFFUL) << u32Pin);
00002e  6984              LDR      r4,[r0,#0x18]
000030  0e13              LSRS     r3,r2,#24
000032  408b              LSLS     r3,r3,r1
000034  431c              ORRS     r4,r4,r3
000036  6184              STR      r4,[r0,#0x18]
;;;72         port->INTEN |= ((u32IntAttribs & 0xFFFFFFUL) << u32Pin);
000038  69c4              LDR      r4,[r0,#0x1c]
00003a  f022437f          BIC      r3,r2,#0xff000000
00003e  408b              LSLS     r3,r3,r1
000040  431c              ORRS     r4,r4,r3
000042  61c4              STR      r4,[r0,#0x1c]
;;;73     }
000044  bd10              POP      {r4,pc}
;;;74     
                          ENDP

                  GPIO_DisableInt PROC
;;;88      */
;;;89     void GPIO_DisableInt(GPIO_T *port, unsigned int u32Pin)
000046  6982              LDR      r2,[r0,#0x18]
;;;90     {
;;;91         port->INTTYPE &= ~(1UL << u32Pin);
000048  2301              MOVS     r3,#1
00004a  408b              LSLS     r3,r3,r1
00004c  439a              BICS     r2,r2,r3
00004e  6182              STR      r2,[r0,#0x18]
;;;92         port->INTEN &= ~((0x00010001UL) << u32Pin);
000050  69c2              LDR      r2,[r0,#0x1c]
000052  f04f1301          MOV      r3,#0x10001
000056  408b              LSLS     r3,r3,r1
000058  439a              BICS     r2,r2,r3
00005a  61c2              STR      r2,[r0,#0x1c]
;;;93     }
00005c  4770              BX       lr
;;;94     
                          ENDP


;*** Start embedded assembler ***

#line 1 "..\\..\\..\\Library\\StdDriver\\src\\gpio.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___6_gpio_c_f8f858a7____REV16|
#line 114 "..\\..\\..\\Library\\CMSIS\\Include\\core_cmInstr.h"
|__asm___6_gpio_c_f8f858a7____REV16| PROC
#line 115

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___6_gpio_c_f8f858a7____REVSH|
#line 128
|__asm___6_gpio_c_f8f858a7____REVSH| PROC
#line 129

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
