; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\obj\gpio.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\gpio.d --cpu=Cortex-M4.fp.sp --apcs=interwork --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\M480\Include -I..\..\..\Library\StdDriver\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -D__MICROLIB -D__UVISION_VERSION=538 --omf_browse=.\obj\gpio.crf ..\..\..\Library\StdDriver\src\gpio.c]
                          THUMB

                          AREA ||i.GPIO_DisableInt||, CODE, READONLY, ALIGN=1

                  GPIO_DisableInt PROC
;;;85      */
;;;86     void GPIO_DisableInt(GPIO_T *port, uint32_t u32Pin)
000000  6982              LDR      r2,[r0,#0x18]
;;;87     {
;;;88         port->INTTYPE &= ~(1UL << u32Pin);
000002  2301              MOVS     r3,#1
000004  408b              LSLS     r3,r3,r1
000006  439a              BICS     r2,r2,r3
000008  6182              STR      r2,[r0,#0x18]
;;;89         port->INTEN &= ~((0x00010001UL) << u32Pin);
00000a  69c2              LDR      r2,[r0,#0x1c]
00000c  f04f1301          MOV      r3,#0x10001
000010  408b              LSLS     r3,r3,r1
000012  439a              BICS     r2,r2,r3
000014  61c2              STR      r2,[r0,#0x1c]
;;;90     }
000016  4770              BX       lr
;;;91     
                          ENDP


                          AREA ||i.GPIO_EnableInt||, CODE, READONLY, ALIGN=1

                  GPIO_EnableInt PROC
;;;65      */
;;;66     void GPIO_EnableInt(GPIO_T *port, uint32_t u32Pin, uint32_t u32IntAttribs)
000000  b510              PUSH     {r4,lr}
;;;67     {
;;;68         port->INTTYPE = (port->INTTYPE&~(1ul<<u32Pin)) | (((u32IntAttribs >> 24) & 0xFFUL) << u32Pin);
000002  6983              LDR      r3,[r0,#0x18]
000004  2401              MOVS     r4,#1
000006  408c              LSLS     r4,r4,r1
000008  43a3              BICS     r3,r3,r4
00000a  0e14              LSRS     r4,r2,#24
00000c  408c              LSLS     r4,r4,r1
00000e  4323              ORRS     r3,r3,r4
000010  6183              STR      r3,[r0,#0x18]
;;;69         port->INTEN = (port->INTEN&~(0x00010001ul<<u32Pin)) | ((u32IntAttribs & 0xFFFFFFUL) << u32Pin);
000012  69c3              LDR      r3,[r0,#0x1c]
000014  f04f1401          MOV      r4,#0x10001
000018  408c              LSLS     r4,r4,r1
00001a  f022427f          BIC      r2,r2,#0xff000000
00001e  43a3              BICS     r3,r3,r4
000020  408a              LSLS     r2,r2,r1
000022  4313              ORRS     r3,r3,r2
000024  61c3              STR      r3,[r0,#0x1c]
;;;70     }
000026  bd10              POP      {r4,pc}
;;;71     
                          ENDP


                          AREA ||i.GPIO_SetMode||, CODE, READONLY, ALIGN=1

                  GPIO_SetMode PROC
;;;37      */
;;;38     void GPIO_SetMode(GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode)
000000  b5f0              PUSH     {r4-r7,lr}
;;;39     {
;;;40         uint32_t i;
;;;41     
;;;42         for(i = 0ul; i < GPIO_PIN_MAX; i++)
000002  2300              MOVS     r3,#0
;;;43         {
;;;44             if((u32PinMask & (1ul << i))==(1ul << i))
000004  2701              MOVS     r7,#1
;;;45             {
;;;46                 port->MODE = (port->MODE & ~(0x3ul << (i << 1))) | (u32Mode << (i << 1));
000006  2503              MOVS     r5,#3
                  |L3.8|
000008  fa07f403          LSL      r4,r7,r3              ;44
00000c  438c              BICS     r4,r4,r1              ;44
00000e  d109              BNE      |L3.36|
000010  6806              LDR      r6,[r0,#0]
000012  005c              LSLS     r4,r3,#1
000014  fa05fc04          LSL      r12,r5,r4
000018  ea26060c          BIC      r6,r6,r12
00001c  fa02f404          LSL      r4,r2,r4
000020  4326              ORRS     r6,r6,r4
000022  6006              STR      r6,[r0,#0]
                  |L3.36|
000024  1c5b              ADDS     r3,r3,#1
000026  2b10              CMP      r3,#0x10              ;42
000028  d3ee              BCC      |L3.8|
;;;47             }
;;;48         }
;;;49     }
00002a  bdf0              POP      {r4-r7,pc}
;;;50     
                          ENDP


                          AREA ||i.GPIO_SetPullCtl||, CODE, READONLY, ALIGN=1

                  GPIO_SetPullCtl PROC
;;;131     */
;;;132    void GPIO_SetPullCtl(GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode)
000000  b5f0              PUSH     {r4-r7,lr}
;;;133    {
;;;134        uint32_t i;
;;;135    
;;;136        for(i = 0ul; i < GPIO_PIN_MAX; i++)
000002  2300              MOVS     r3,#0
;;;137        {
;;;138            if(u32PinMask & (1ul << i))
000004  2701              MOVS     r7,#1
;;;139            {
;;;140                port->PUSEL = (port->PUSEL & ~(0x3ul << (i << 1))) | (u32Mode << (i << 1));
000006  2503              MOVS     r5,#3
                  |L4.8|
000008  fa07f403          LSL      r4,r7,r3              ;138
00000c  420c              TST      r4,r1                 ;138
00000e  d009              BEQ      |L4.36|
000010  6b06              LDR      r6,[r0,#0x30]
000012  005c              LSLS     r4,r3,#1
000014  fa05fc04          LSL      r12,r5,r4
000018  ea26060c          BIC      r6,r6,r12
00001c  fa02f404          LSL      r4,r2,r4
000020  4326              ORRS     r6,r6,r4
000022  6306              STR      r6,[r0,#0x30]
                  |L4.36|
000024  1c5b              ADDS     r3,r3,#1
000026  2b10              CMP      r3,#0x10              ;136
000028  d3ee              BCC      |L4.8|
;;;141            }
;;;142        }
;;;143    }
00002a  bdf0              POP      {r4-r7,pc}
;;;144    
                          ENDP


                          AREA ||i.GPIO_SetSlewCtl||, CODE, READONLY, ALIGN=1

                  GPIO_SetSlewCtl PROC
;;;104     */
;;;105    void GPIO_SetSlewCtl(GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode)
000000  b5f0              PUSH     {r4-r7,lr}
;;;106    {
;;;107        uint32_t i;
;;;108    
;;;109        for(i = 0ul; i < GPIO_PIN_MAX; i++)
000002  2300              MOVS     r3,#0
;;;110        {
;;;111            if(u32PinMask & (1ul << i))
000004  2701              MOVS     r7,#1
;;;112            {
;;;113                port->SLEWCTL = (port->SLEWCTL & ~(0x3ul << (i << 1))) | (u32Mode << (i << 1));
000006  2503              MOVS     r5,#3
                  |L5.8|
000008  fa07f403          LSL      r4,r7,r3              ;111
00000c  420c              TST      r4,r1                 ;111
00000e  d009              BEQ      |L5.36|
000010  6a86              LDR      r6,[r0,#0x28]
000012  005c              LSLS     r4,r3,#1
000014  fa05fc04          LSL      r12,r5,r4
000018  ea26060c          BIC      r6,r6,r12
00001c  fa02f404          LSL      r4,r2,r4
000020  4326              ORRS     r6,r6,r4
000022  6286              STR      r6,[r0,#0x28]
                  |L5.36|
000024  1c5b              ADDS     r3,r3,#1
000026  2b10              CMP      r3,#0x10              ;109
000028  d3ee              BCC      |L5.8|
;;;114            }
;;;115        }
;;;116    }
00002a  bdf0              POP      {r4-r7,pc}
;;;117    
                          ENDP


;*** Start embedded assembler ***

#line 1 "..\\..\\..\\Library\\StdDriver\\src\\gpio.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___6_gpio_c_f8f858a7____REV16|
#line 388 "..\\..\\..\\Library\\CMSIS\\Include\\cmsis_armcc.h"
|__asm___6_gpio_c_f8f858a7____REV16| PROC
#line 389

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

 revsh r0, r0
 bx lr
	ENDP
	AREA ||.rrx_text||, CODE
	THUMB
	EXPORT |__asm___6_gpio_c_f8f858a7____RRX|
#line 587
|__asm___6_gpio_c_f8f858a7____RRX| PROC
#line 588

 rrx r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
