; generated by ARM C/C++ Compiler, 5.03 [Build 24]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\obj\sys.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\sys.d --cpu=Cortex-M0 --apcs=interwork -I.\ -I..\..\..\..\Library\CMSIS\Include -I..\..\..\..\Library\Device\Nuvoton\NUC200Series\Include -I..\..\..\..\Library\StdDriver\inc -IC:\Keil\ARM\RV31\INC -IC:\Keil\ARM\CMSIS\Include -IC:\Keil\ARM\Inc\?ST\STM32F10x -D__MICROLIB --omf_browse=.\obj\sys.crf ..\..\..\..\Library\StdDriver\src\sys.c]
                          THUMB

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

                  SYS_ClearResetSrc PROC
;;;36       */
;;;37     void SYS_ClearResetSrc(uint32_t u32Src)
000000  2105              MOVS     r1,#5
;;;38     { 
;;;39       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]
;;;40     }
00000a  4770              BX       lr
;;;41     
                          ENDP


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

                  SYS_DisableBOD PROC
;;;163      */
;;;164    void SYS_DisableBOD(void)
000000  2005              MOVS     r0,#5
;;;165    { 
;;;166        SYS->BODCR &= ~SYS_BODCR_BOD_EN_Msk;
000002  0700              LSLS     r0,r0,#28
000004  6981              LDR      r1,[r0,#0x18]
000006  0849              LSRS     r1,r1,#1
000008  0049              LSLS     r1,r1,#1
00000a  6181              STR      r1,[r0,#0x18]
;;;167    }
00000c  4770              BX       lr
;;;168    
                          ENDP


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

                  SYS_EnableBOD PROC
;;;152      */
;;;153    void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel)
000000  b510              PUSH     {r4,lr}
;;;154    {   
;;;155        SYS->BODCR |= SYS_BODCR_BOD_EN_Msk;
000002  2205              MOVS     r2,#5
000004  0712              LSLS     r2,r2,#28
000006  6993              LDR      r3,[r2,#0x18]
000008  2401              MOVS     r4,#1
00000a  4323              ORRS     r3,r3,r4
00000c  6193              STR      r3,[r2,#0x18]
;;;156        SYS->BODCR = (SYS->BODCR & ~SYS_BODCR_BOD_RSTEN_Msk) | i32Mode; 
00000e  6993              LDR      r3,[r2,#0x18]
000010  2408              MOVS     r4,#8
000012  43a3              BICS     r3,r3,r4
000014  4303              ORRS     r3,r3,r0
000016  6193              STR      r3,[r2,#0x18]
;;;157        SYS->BODCR = (SYS->BODCR & ~SYS_BODCR_BOD_VL_Msk) | u32BODLevel;  
000018  6990              LDR      r0,[r2,#0x18]
00001a  2306              MOVS     r3,#6
00001c  4398              BICS     r0,r0,r3
00001e  4308              ORRS     r0,r0,r1
000020  6190              STR      r0,[r2,#0x18]
;;;158    }
000022  bd10              POP      {r4,pc}
;;;159    
                          ENDP


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

                  SYS_GetBODStatus PROC
;;;47       */
;;;48     uint32_t SYS_GetBODStatus(void)
000000  2005              MOVS     r0,#5
;;;49     {
;;;50       return (SYS->BODCR & SYS_BODCR_BOD_OUT_Msk)?1:0;
000002  0700              LSLS     r0,r0,#28
000004  6980              LDR      r0,[r0,#0x18]
000006  0640              LSLS     r0,r0,#25
000008  0fc0              LSRS     r0,r0,#31
;;;51     }
00000a  4770              BX       lr
;;;52     
                          ENDP


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

                  SYS_GetResetSrc PROC
;;;56       */
;;;57     uint32_t SYS_GetResetSrc(void)
000000  2005              MOVS     r0,#5
;;;58     {
;;;59       return (SYS->RSTSRC);
000002  0700              LSLS     r0,r0,#28
000004  6840              LDR      r0,[r0,#4]
;;;60     }
000006  4770              BX       lr
;;;61     
                          ENDP


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

                  SYS_IsRegLocked PROC
;;;66       */
;;;67     uint32_t SYS_IsRegLocked(void)
000000  4802              LDR      r0,|L6.12|
;;;68     {
;;;69         return !(SYS->REGWRPROT & SYS_REGWRPROT_REGPROTDIS_Msk);
000002  6800              LDR      r0,[r0,#0]
000004  07c0              LSLS     r0,r0,#31
000006  17c0              ASRS     r0,r0,#31
000008  1c40              ADDS     r0,r0,#1
;;;70     }
00000a  4770              BX       lr
;;;71     
                          ENDP

                  |L6.12|
                          DCD      0x50000100

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

                  SYS_ReadPDID PROC
;;;75       */
;;;76     uint32_t  SYS_ReadPDID(void)
000000  2005              MOVS     r0,#5
;;;77     {
;;;78       return SYS->PDID;
000002  0700              LSLS     r0,r0,#28
000004  6800              LDR      r0,[r0,#0]
;;;79     }
000006  4770              BX       lr
;;;80     
                          ENDP


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

                  SYS_ResetCPU PROC
;;;93       */
;;;94     void SYS_ResetCPU(void)
000000  2005              MOVS     r0,#5
;;;95     {
;;;96       SYS->IPRSTC1 |= SYS_IPRSTC1_CPU_RST_Msk;
000002  0700              LSLS     r0,r0,#28
000004  6881              LDR      r1,[r0,#8]
000006  2202              MOVS     r2,#2
000008  4311              ORRS     r1,r1,r2
00000a  6081              STR      r1,[r0,#8]
;;;97     }
00000c  4770              BX       lr
;;;98     
                          ENDP


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

                  SYS_ResetChip PROC
;;;84       */
;;;85     void SYS_ResetChip(void)
000000  2005              MOVS     r0,#5
;;;86     {
;;;87       SYS->IPRSTC1 |= SYS_IPRSTC1_CHIP_RST_Msk;
000002  0700              LSLS     r0,r0,#28
000004  6881              LDR      r1,[r0,#8]
000006  2201              MOVS     r2,#1
000008  4311              ORRS     r1,r1,r2
00000a  6081              STR      r1,[r0,#8]
;;;88     }
00000c  4770              BX       lr
;;;89     
                          ENDP


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

                  SYS_ResetModule PROC
;;;132      */
;;;133    void SYS_ResetModule(uint32_t u32ModuleIndex)
000000  0e01              LSRS     r1,r0,#24
;;;134    {
;;;135      *(volatile uint32_t *)(&(SYS->IPRSTC1) + (u32ModuleIndex>>24)) |= 1<<(u32ModuleIndex & 0x00ffffff);
000002  008a              LSLS     r2,r1,#2
000004  2105              MOVS     r1,#5
000006  0709              LSLS     r1,r1,#28
000008  1851              ADDS     r1,r2,r1
00000a  688b              LDR      r3,[r1,#8]
00000c  2201              MOVS     r2,#1
00000e  4082              LSLS     r2,r2,r0
000010  4313              ORRS     r3,r3,r2
000012  608b              STR      r3,[r1,#8]
;;;136      *(volatile uint32_t *)(&(SYS->IPRSTC1) + (u32ModuleIndex>>24)) &= ~(1<<(u32ModuleIndex & 0x00ffffff));
000014  6888              LDR      r0,[r1,#8]
000016  4390              BICS     r0,r0,r2
000018  6088              STR      r0,[r1,#8]
;;;137    }
00001a  4770              BX       lr
;;;138    
                          ENDP


;*** 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 ***
