; generated by Component: ARM Compiler 5.04 update 1 (build 49) Tool: ArmCC [5040049]
; 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..\..\..\..\Library\CMSIS\Include -I..\..\..\..\Library\Device\Nuvoton\NM1120\Include -I..\..\..\..\Library\StdDriver\inc -I.\source -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\3.20.4\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
;;;40       */
;;;41     void SYS_ClearResetSrc(uint32_t u32Src)
000000  2105              MOVS     r1,#5
;;;42     {
;;;43         SYS->RSTSTS |= 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]
;;;44     }
00000a  4770              BX       lr
;;;45     
                          ENDP


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

                  SYS_DisableBOD PROC
;;;160      */
;;;161    void SYS_DisableBOD(void)
000000  2005              MOVS     r0,#5
;;;162    {
;;;163        SYS->BODCTL = SYS->BODCTL & ~(SYS_BODCTL_BODEN_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]
;;;164    }
00000c  4770              BX       lr
;;;165    
                          ENDP


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

                  SYS_EnableBOD PROC
;;;150      */
;;;151    void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel)
000000  2205              MOVS     r2,#5
;;;152    {
;;;153        SYS->BODCTL = (SYS->BODCTL & ~0xFFFF) | SYS_BODCTL_BODEN_Msk | (i32Mode | u32BODLevel);
000002  0712              LSLS     r2,r2,#28
000004  6993              LDR      r3,[r2,#0x18]
000006  4308              ORRS     r0,r0,r1
000008  0c1b              LSRS     r3,r3,#16
00000a  041b              LSLS     r3,r3,#16
00000c  4303              ORRS     r3,r3,r0
00000e  2001              MOVS     r0,#1
000010  4303              ORRS     r3,r3,r0
000012  6193              STR      r3,[r2,#0x18]
;;;154    }
000014  4770              BX       lr
;;;155    
                          ENDP


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

                  SYS_GetBODStatus PROC
;;;53       */
;;;54     uint32_t SYS_GetBODStatus(void)
000000  2005              MOVS     r0,#5
;;;55     {
;;;56         return ((SYS->BODCTL & SYS_BODCTL_BODOUT_Msk) >> SYS_BODCTL_BODOUT_Pos);
000002  0700              LSLS     r0,r0,#28
000004  6980              LDR      r0,[r0,#0x18]
000006  0600              LSLS     r0,r0,#24
000008  0fc0              LSRS     r0,r0,#31
;;;57     }
00000a  4770              BX       lr
;;;58     
                          ENDP


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

                  SYS_GetResetSrc PROC
;;;63       */
;;;64     uint32_t SYS_GetResetSrc(void)
000000  2005              MOVS     r0,#5
;;;65     {
;;;66         return (SYS->RSTSTS);
000002  0700              LSLS     r0,r0,#28
000004  6840              LDR      r0,[r0,#4]
;;;67     }
000006  4770              BX       lr
;;;68     
                          ENDP


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

                  SYS_IsRegLocked PROC
;;;74       */
;;;75     uint32_t SYS_IsRegLocked(void)
000000  4802              LDR      r0,|L6.12|
;;;76     {
;;;77         return !(SYS->REGLCTL & SYS_REGLCTL_REGLCTL_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
;;;78     }
00000a  4770              BX       lr
;;;79     
                          ENDP

                  |L6.12|
                          DCD      0x50000100

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

                  SYS_ReadPDID PROC
;;;84       */
;;;85     uint32_t  SYS_ReadPDID(void)
000000  2005              MOVS     r0,#5
;;;86     {
;;;87         return SYS->PDID & SYS_PDID_PDID_Msk;
000002  0700              LSLS     r0,r0,#28
000004  6800              LDR      r0,[r0,#0]
;;;88     }
000006  4770              BX       lr
;;;89     
                          ENDP


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

                  SYS_ResetCPU PROC
;;;104      */
;;;105    void SYS_ResetCPU(void)
000000  2005              MOVS     r0,#5
;;;106    {
;;;107        SYS->IPRST0 |= SYS_IPRST0_CPURST_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]
;;;108    }
00000c  4770              BX       lr
;;;109    
                          ENDP


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

                  SYS_ResetChip PROC
;;;94       */
;;;95     void SYS_ResetChip(void)
000000  2005              MOVS     r0,#5
;;;96     {
;;;97         SYS->IPRST0 |= SYS_IPRST0_CHIPRST_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]
;;;98     }
00000c  4770              BX       lr
;;;99     
                          ENDP


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

                  SYS_ResetModule PROC
;;;125      */
;;;126    void SYS_ResetModule(uint32_t u32ModuleIndex)
000000  2105              MOVS     r1,#5
;;;127    {
;;;128        SYS->IPRST1 |= u32ModuleIndex;      // generate reset signals to module controller
000002  0709              LSLS     r1,r1,#28
000004  68ca              LDR      r2,[r1,#0xc]
000006  4302              ORRS     r2,r2,r0
000008  60ca              STR      r2,[r1,#0xc]
;;;129        SYS->IPRST1 &= (~u32ModuleIndex);   // release from reset state
00000a  68ca              LDR      r2,[r1,#0xc]
00000c  4382              BICS     r2,r2,r0
00000e  60ca              STR      r2,[r1,#0xc]
;;;130        // *(volatile uint32_t *)((uint32_t)&(SYS->IPRST1) + (u32ModuleIndex>>32)) |= 1<<(u32ModuleIndex & 0xffffffff);
;;;131        // *(volatile uint32_t *)((uint32_t)&(SYS->IPRST1) + (u32ModuleIndex>>32)) &= ~(1<<(u32ModuleIndex & 0xffffffff));
;;;132    }
000010  4770              BX       lr
;;;133    
                          ENDP


;*** Start embedded assembler ***

#line 1 "..\\..\\..\\..\\Library\\StdDriver\\src\\sys.c"
	AREA ||.rev16_text||, CODE
	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
	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 ***
