; generated by ARM C/C++ Compiler, 4.1 [Build 894]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\obj\sys.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\sys.d --feedback=.\obj\PWM_Capture.fed --cpu=Cortex-M0 --apcs=interwork -O0 -I..\..\..\..\Library\CMSIS\Include -I..\..\..\..\Library\Device\Nuvoton\Nano100Series\Include -I..\..\..\..\Library\StdDriver\inc -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -D__MICROLIB --omf_browse=.\obj\sys.crf ..\..\..\..\Library\StdDriver\src\sys.c]
                          THUMB

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

                  SYS_ClearResetSrc PROC
;;;30       */
;;;31     void SYS_ClearResetSrc(uint32_t u32Src)
000000  2105              MOVS     r1,#5
;;;32     {
;;;33         SYS->RST_SRC |= u32Src;
000002  0709              LSLS     r1,r1,#28
000004  6849              LDR      r1,[r1,#4]
000006  4301              ORRS     r1,r1,r0
000008  2205              MOVS     r2,#5
00000a  0712              LSLS     r2,r2,#28
00000c  6051              STR      r1,[r2,#4]
;;;34     }
00000e  4770              BX       lr
;;;35     
                          ENDP


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

                  SYS_DisableBOD PROC
;;;185      */
;;;186    void SYS_DisableBOD(void)
000000  4803              LDR      r0,|L2.16|
;;;187    {
;;;188        SYS->BODCTL = SYS->BODCTL & ~(SYS_BODCTL_BOD25_EN_Msk | SYS_BODCTL_BOD20_EN_Msk | SYS_BODCTL_BOD17_EN_Msk);
000002  6a40              LDR      r0,[r0,#0x24]
000004  08c0              LSRS     r0,r0,#3
000006  00c0              LSLS     r0,r0,#3
000008  4901              LDR      r1,|L2.16|
00000a  6248              STR      r0,[r1,#0x24]
;;;189    }
00000c  4770              BX       lr
;;;190    
                          ENDP

00000e  0000              DCW      0x0000
                  |L2.16|
                          DCD      0x50000040

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

                  SYS_EnableBOD PROC
;;;175      */
;;;176    void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel)
000000  4a04              LDR      r2,|L3.20|
;;;177    {
;;;178        SYS->BODCTL = (SYS->BODCTL & ~0xFFF) | (i32Mode | u32BODLevel);
000002  6a52              LDR      r2,[r2,#0x24]
000004  0b12              LSRS     r2,r2,#12
000006  0312              LSLS     r2,r2,#12
000008  4603              MOV      r3,r0
00000a  430b              ORRS     r3,r3,r1
00000c  431a              ORRS     r2,r2,r3
00000e  4b01              LDR      r3,|L3.20|
000010  625a              STR      r2,[r3,#0x24]
;;;179    }
000012  4770              BX       lr
;;;180    
                          ENDP

                  |L3.20|
                          DCD      0x50000040

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

                  SYS_GetBODStatus PROC
;;;42       */
;;;43     uint32_t SYS_GetBODStatus()
000000  4801              LDR      r0,|L4.8|
;;;44     {
;;;45         return (SYS->BODSTS);
000002  6a80              LDR      r0,[r0,#0x28]
;;;46     }
000004  4770              BX       lr
;;;47     
                          ENDP

000006  0000              DCW      0x0000
                  |L4.8|
                          DCD      0x50000040

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

                  SYS_GetResetSrc PROC
;;;52       */
;;;53     uint32_t SYS_GetResetSrc(void)
000000  2005              MOVS     r0,#5
;;;54     {
;;;55         return (SYS->RST_SRC);
000002  0700              LSLS     r0,r0,#28
000004  6840              LDR      r0,[r0,#4]
;;;56     }
000006  4770              BX       lr
;;;57     
                          ENDP


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

                  SYS_IsRegLocked PROC
;;;63       */
;;;64     uint32_t SYS_IsRegLocked(void)
000000  4802              LDR      r0,|L6.12|
;;;65     {
;;;66         return (SYS->RegLockAddr & SYS_RegLockAddr_RegUnLock_Msk);
000002  6800              LDR      r0,[r0,#0]
000004  07c0              LSLS     r0,r0,#31
000006  0fc0              LSRS     r0,r0,#31
;;;67     }
000008  4770              BX       lr
;;;68     
                          ENDP

00000a  0000              DCW      0x0000
                  |L6.12|
                          DCD      0x50000100

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

                  SYS_LockReg PROC
;;;74       */
;;;75     void SYS_LockReg(void)
000000  2000              MOVS     r0,#0
;;;76     {
;;;77         SYS->RegLockAddr = 0;
000002  4901              LDR      r1,|L7.8|
000004  6008              STR      r0,[r1,#0]
;;;78     }
000006  4770              BX       lr
;;;79     
                          ENDP

                  |L7.8|
                          DCD      0x50000100

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

                  SYS_ReadPDID PROC
;;;100      */
;;;101    uint32_t  SYS_ReadPDID(void)
000000  2005              MOVS     r0,#5
;;;102    {
;;;103        return SYS->PDID;
000002  0700              LSLS     r0,r0,#28
000004  6800              LDR      r0,[r0,#0]
;;;104    }
000006  4770              BX       lr
;;;105    
                          ENDP


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

                  SYS_ResetCPU PROC
;;;120      */
;;;121    void SYS_ResetCPU(void)
000000  2005              MOVS     r0,#5
;;;122    {
;;;123        SYS->IPRST_CTL1 |= SYS_IPRST_CTL1_CPU_RST_Msk;
000002  0700              LSLS     r0,r0,#28
000004  6880              LDR      r0,[r0,#8]
000006  2102              MOVS     r1,#2
000008  4308              ORRS     r0,r0,r1
00000a  2105              MOVS     r1,#5
00000c  0709              LSLS     r1,r1,#28
00000e  6088              STR      r0,[r1,#8]
;;;124    }
000010  4770              BX       lr
;;;125    
                          ENDP


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

                  SYS_ResetChip PROC
;;;110      */
;;;111    void SYS_ResetChip(void)
000000  2005              MOVS     r0,#5
;;;112    {
;;;113        SYS->IPRST_CTL1 |= SYS_IPRST_CTL1_CHIP_RST_Msk;
000002  0700              LSLS     r0,r0,#28
000004  6880              LDR      r0,[r0,#8]
000006  2101              MOVS     r1,#1
000008  4308              ORRS     r0,r0,r1
00000a  2105              MOVS     r1,#5
00000c  0709              LSLS     r1,r1,#28
00000e  6088              STR      r0,[r1,#8]
;;;114    }
000010  4770              BX       lr
;;;115    
                          ENDP


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

                  SYS_ResetModule PROC
;;;154      */
;;;155    void SYS_ResetModule(uint32_t u32ModuleIndex)
000000  4908              LDR      r1,|L11.36|
;;;156    {
;;;157        *(volatile uint32_t *)((uint32_t)&(SYS->IPRST_CTL1) + (u32ModuleIndex>>24)) |= 1<<(u32ModuleIndex & 0x00ffffff);
000002  0e02              LSRS     r2,r0,#24
000004  5889              LDR      r1,[r1,r2]
000006  2201              MOVS     r2,#1
000008  4082              LSLS     r2,r2,r0
00000a  430a              ORRS     r2,r2,r1
00000c  4905              LDR      r1,|L11.36|
00000e  0e03              LSRS     r3,r0,#24
000010  50ca              STR      r2,[r1,r3]
;;;158        *(volatile uint32_t *)((uint32_t)&(SYS->IPRST_CTL1) + (u32ModuleIndex>>24)) &= ~(1<<(u32ModuleIndex & 0x00ffffff));
000012  0e02              LSRS     r2,r0,#24
000014  5889              LDR      r1,[r1,r2]
000016  2201              MOVS     r2,#1
000018  4082              LSLS     r2,r2,r0
00001a  4391              BICS     r1,r1,r2
00001c  4a01              LDR      r2,|L11.36|
00001e  0e03              LSRS     r3,r0,#24
000020  50d1              STR      r1,[r2,r3]
;;;159    }
000022  4770              BX       lr
;;;160    
                          ENDP

                  |L11.36|
                          DCD      0x50000008

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

                  SYS_UnlockReg PROC
;;;86       */
;;;87     void SYS_UnlockReg(void)
000000  e006              B        |L12.16|
                  |L12.2|
;;;88     {
;;;89         while(SYS->RegLockAddr != SYS_RegLockAddr_RegUnLock_Msk) {
;;;90             SYS->RegLockAddr = 0x59;
000002  2059              MOVS     r0,#0x59
000004  4905              LDR      r1,|L12.28|
000006  6008              STR      r0,[r1,#0]
;;;91             SYS->RegLockAddr = 0x16;
000008  2016              MOVS     r0,#0x16
00000a  6008              STR      r0,[r1,#0]
;;;92             SYS->RegLockAddr = 0x88;
00000c  2088              MOVS     r0,#0x88
00000e  6008              STR      r0,[r1,#0]
                  |L12.16|
000010  4802              LDR      r0,|L12.28|
000012  6800              LDR      r0,[r0,#0]            ;89
000014  2801              CMP      r0,#1                 ;89
000016  d1f4              BNE      |L12.2|
;;;93         }
;;;94     }
000018  4770              BX       lr
;;;95     
                          ENDP

00001a  0000              DCW      0x0000
                  |L12.28|
                          DCD      0x50000100

;*** Start embedded assembler ***

#line 1 "..\\..\\..\\..\\Library\\StdDriver\\src\\sys.c"
	AREA ||.rev16_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___5_sys_c_962b9fbe____REV16|
#line 118 "..\\..\\..\\..\\Library\\CMSIS\\Include\\core_cmInstr.h"
|__asm___5_sys_c_962b9fbe____REV16| PROC
#line 119

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___5_sys_c_962b9fbe____REVSH|
#line 132
|__asm___5_sys_c_962b9fbe____REVSH| PROC
#line 133

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
