; generated by Component: ARM Compiler 5.05 (build 41) Tool: ArmCC [4d0eb9]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\sys.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\sys.d --cpu=Cortex-M0 --apcs=interwork -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\Mini51Series\Include -I..\..\..\Library\StdDriver\inc -I.\StdDriver\inc -I.\CMSIS -IG:\Geek\Projects\Zulolo_F\Force\Code\Zulolo_F_Force\RTE -ID:\Keil_v5\ARM\PACK\Nuvoton\NuMicro_DFP\1.0.2\Device\Mini51\Include -ID:\Keil_v5\ARM\CMSIS\Include -I\ -D__MICROLIB --omf_browse=.\obj\sys.crf StdDriver\src\sys.c]
                          THUMB

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

                  SYS_ClearResetSrc PROC
;;;29       */
;;;30     void SYS_ClearResetSrc(uint32_t u32Src)
000000  2105              MOVS     r1,#5
;;;31     { 
;;;32       SYS->RSTSRC |= u32Src;
000002  0709              LSLS     r1,r1,#28
000004  684a              LDR      r2,[r1,#4]
000006  4302              ORRS     r2,r2,r0
000008  604a              STR      r2,[r1,#4]
;;;33     }
00000a  4770              BX       lr
;;;34     
                          ENDP

                  SYS_GetBODStatus PROC
;;;40       */
;;;41     uint32_t SYS_GetBODStatus(void)
00000c  2005              MOVS     r0,#5
;;;42     {
;;;43       return (SYS->BODCTL & SYS_BODCR_BOD_OUT_Msk)?1:0;
00000e  0700              LSLS     r0,r0,#28
000010  6980              LDR      r0,[r0,#0x18]
000012  0640              LSLS     r0,r0,#25
000014  0fc0              LSRS     r0,r0,#31
;;;44     }
000016  4770              BX       lr
;;;45     
                          ENDP

                  SYS_GetResetSrc PROC
;;;49       */
;;;50     uint32_t SYS_GetResetSrc(void)
000018  2005              MOVS     r0,#5
;;;51     {
;;;52       return (SYS->RSTSRC);
00001a  0700              LSLS     r0,r0,#28
00001c  6840              LDR      r0,[r0,#4]
;;;53     }
00001e  4770              BX       lr
;;;54     
                          ENDP

                  SYS_IsRegLocked PROC
;;;59       */
;;;60     uint32_t SYS_IsRegLocked(void)
000020  4829              LDR      r0,|L1.200|
;;;61     {
;;;62       return (SYS->RegLockAddr & SYS_RegLockAddr_RegUnLock_Msk);
000022  6800              LDR      r0,[r0,#0]
000024  07c0              LSLS     r0,r0,#31
000026  0fc0              LSRS     r0,r0,#31
;;;63     }
000028  4770              BX       lr
;;;64     
                          ENDP

                  SYS_LockReg PROC
;;;69       */
;;;70     void SYS_LockReg(void)
00002a  4927              LDR      r1,|L1.200|
;;;71     {
;;;72       SYS->RegLockAddr = 0;
00002c  2000              MOVS     r0,#0
00002e  6008              STR      r0,[r1,#0]
;;;73     }
000030  4770              BX       lr
;;;74     
                          ENDP

                  SYS_UnlockReg PROC
;;;79       */
;;;80     void SYS_UnlockReg(void)
000032  b510              PUSH     {r4,lr}
;;;81     {
;;;82       while(SYS->RegLockAddr != SYS_RegLockAddr_RegUnLock_Msk) {
;;;83         SYS->RegLockAddr = 0x59;
000034  2159              MOVS     r1,#0x59
;;;84         SYS->RegLockAddr = 0x16;
000036  2316              MOVS     r3,#0x16
000038  4823              LDR      r0,|L1.200|
;;;85         SYS->RegLockAddr = 0x88;  
00003a  2288              MOVS     r2,#0x88
00003c  e002              B        |L1.68|
                  |L1.62|
00003e  6001              STR      r1,[r0,#0]            ;83
000040  6003              STR      r3,[r0,#0]            ;84
000042  6002              STR      r2,[r0,#0]
                  |L1.68|
000044  6804              LDR      r4,[r0,#0]            ;82
000046  2c01              CMP      r4,#1                 ;82
000048  d1f9              BNE      |L1.62|
;;;86       }
;;;87     }
00004a  bd10              POP      {r4,pc}
;;;88     
                          ENDP

                  SYS_ReadPDID PROC
;;;92       */
;;;93     uint32_t  SYS_ReadPDID(void)
00004c  2005              MOVS     r0,#5
;;;94     {
;;;95       return SYS->PDID;
00004e  0700              LSLS     r0,r0,#28
000050  6800              LDR      r0,[r0,#0]
;;;96     }
000052  4770              BX       lr
;;;97     
                          ENDP

                  SYS_ResetChip PROC
;;;101      */
;;;102    void SYS_ResetChip(void)
000054  2005              MOVS     r0,#5
;;;103    {
;;;104      SYS->IPRSTC1 |= SYS_IPRSTC1_CHIP_RST_Msk;
000056  0700              LSLS     r0,r0,#28
000058  6881              LDR      r1,[r0,#8]
00005a  2201              MOVS     r2,#1
00005c  4311              ORRS     r1,r1,r2
00005e  6081              STR      r1,[r0,#8]
;;;105    }
000060  4770              BX       lr
;;;106    
                          ENDP

                  SYS_ResetCPU PROC
;;;110      */
;;;111    void SYS_ResetCPU(void)
000062  2005              MOVS     r0,#5
;;;112    {
;;;113      SYS->IPRSTC1 |= SYS_IPRSTC1_CPU_RST_Msk;
000064  0700              LSLS     r0,r0,#28
000066  6881              LDR      r1,[r0,#8]
000068  2202              MOVS     r2,#2
00006a  4311              ORRS     r1,r1,r2
00006c  6081              STR      r1,[r0,#8]
;;;114    }
00006e  4770              BX       lr
;;;115    
                          ENDP

                  SYS_ResetModule PROC
;;;131      */
;;;132    void SYS_ResetModule(uint32_t u32ModuleIndex)
000070  0e01              LSRS     r1,r0,#24
;;;133    {
;;;134      *(volatile uint32_t *)(&(SYS->IPRSTC1) + (u32ModuleIndex>>24)) |= 1<<(u32ModuleIndex & 0x00ffffff);
000072  008a              LSLS     r2,r1,#2
000074  2105              MOVS     r1,#5
000076  0709              LSLS     r1,r1,#28
000078  1851              ADDS     r1,r2,r1
00007a  688b              LDR      r3,[r1,#8]
00007c  2201              MOVS     r2,#1
00007e  4082              LSLS     r2,r2,r0
000080  4313              ORRS     r3,r3,r2
000082  608b              STR      r3,[r1,#8]
;;;135      *(volatile uint32_t *)(&(SYS->IPRSTC1) + (u32ModuleIndex>>24)) &= ~(1<<(u32ModuleIndex & 0x00ffffff));
000084  6888              LDR      r0,[r1,#8]
000086  4390              BICS     r0,r0,r2
000088  6088              STR      r0,[r1,#8]
;;;136    }
00008a  4770              BX       lr
;;;137    
                          ENDP

                  SYS_EnableBOD PROC
;;;151      */
;;;152    void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel)
00008c  b510              PUSH     {r4,lr}
;;;153    {   
;;;154        SYS->BODCTL |= SYS_BODCR_BOD_VL_EXT_Msk;
00008e  2205              MOVS     r2,#5
000090  0712              LSLS     r2,r2,#28
000092  6993              LDR      r3,[r2,#0x18]
000094  2401              MOVS     r4,#1
000096  4323              ORRS     r3,r3,r4
000098  6193              STR      r3,[r2,#0x18]
;;;155        SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCR_BOD_RSTEN_Msk) | i32Mode; 
00009a  6993              LDR      r3,[r2,#0x18]
00009c  2408              MOVS     r4,#8
00009e  43a3              BICS     r3,r3,r4
0000a0  4303              ORRS     r3,r3,r0
0000a2  6193              STR      r3,[r2,#0x18]
;;;156        SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCR_BOD_VL_Msk) | u32BODLevel;  
0000a4  6990              LDR      r0,[r2,#0x18]
0000a6  2306              MOVS     r3,#6
0000a8  4398              BICS     r0,r0,r3
0000aa  4308              ORRS     r0,r0,r1
0000ac  6190              STR      r0,[r2,#0x18]
;;;157    }
0000ae  bd10              POP      {r4,pc}
;;;158    
                          ENDP

                  SYS_DisableBOD PROC
;;;162      */
;;;163    void SYS_DisableBOD(void)
0000b0  2005              MOVS     r0,#5
;;;164    { 
;;;165      SYS->BODCTL &= ~SYS_BODCR_BOD_VL_EXT_Msk;
0000b2  0700              LSLS     r0,r0,#28
0000b4  6981              LDR      r1,[r0,#0x18]
0000b6  0849              LSRS     r1,r1,#1
0000b8  0049              LSLS     r1,r1,#1
0000ba  6181              STR      r1,[r0,#0x18]
;;;166      SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCR_BOD_VL_Msk) | SYS_BODCR_BOD_DISABLE ; 
0000bc  6981              LDR      r1,[r0,#0x18]
0000be  2206              MOVS     r2,#6
0000c0  4311              ORRS     r1,r1,r2
0000c2  6181              STR      r1,[r0,#0x18]
;;;167    }
0000c4  4770              BX       lr
;;;168    
                          ENDP

0000c6  0000              DCW      0x0000
                  |L1.200|
                          DCD      0x50000100

;*** Start embedded assembler ***

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

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	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 ***
