; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; 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 --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\NM1240\Include -I..\..\..\Library\StdDriver\inc -I.\RTE\_Template -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.4.0\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\Nuvoton\NuMicro_DFP\1.3.9\Device\NM1230\Include -D__MICROLIB -D__UVISION_VERSION=526 -D_RTE_ --omf_browse=.\obj\sys.crf ..\..\..\Library\StdDriver\src\sys.c]
                          THUMB

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

                  SYS_ClearResetSrc PROC
;;;41       */
;;;42     void SYS_ClearResetSrc(uint32_t u32Src)
000000  2105              MOVS     r1,#5
;;;43     {
;;;44         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]
;;;45     }
00000a  4770              BX       lr
;;;46     
                          ENDP


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

                  SYS_DisableBOD PROC
;;;173      */
;;;174    void SYS_DisableBOD(void)
000000  2005              MOVS     r0,#5
;;;175    {
;;;176        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]
;;;177    }
00000c  4770              BX       lr
;;;178    
                          ENDP


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

                  SYS_EnableBOD PROC
;;;163      */
;;;164    void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel)
000000  2205              MOVS     r2,#5
;;;165    {
;;;166        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]
;;;167    }
000014  4770              BX       lr
;;;168    
                          ENDP


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

                  SYS_GetBODStatus PROC
;;;54       */
;;;55     uint32_t SYS_GetBODStatus(void)
000000  2005              MOVS     r0,#5
;;;56     {
;;;57         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
;;;58     }
00000a  4770              BX       lr
;;;59     
                          ENDP


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

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


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

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

                  |L6.12|
                          DCD      0x50000100

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

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


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

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


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

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


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

                  SYS_ResetGDMA PROC
;;;115      */
;;;116    void SYS_ResetGDMA(void)
000000  2005              MOVS     r0,#5
;;;117    {
;;;118        SYS->IPRST0 |= SYS_IPRST0_GDMARST_Msk;
000002  0700              LSLS     r0,r0,#28
000004  6881              LDR      r1,[r0,#8]
000006  2204              MOVS     r2,#4
000008  4311              ORRS     r1,r1,r2
00000a  6081              STR      r1,[r0,#8]
;;;119    }
00000c  4770              BX       lr
;;;120    
                          ENDP


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

                  SYS_ResetModule PROC
;;;140      */
;;;141    void SYS_ResetModule(uint32_t u32ModuleIndex)
000000  2105              MOVS     r1,#5
;;;142    {
;;;143        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]
;;;144        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]
;;;145    }
000010  4770              BX       lr
;;;146    
                          ENDP


;*** Start embedded assembler ***

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

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
