; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
; 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-M4.fp.sp --apcs=interwork --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\M480\Include -I..\..\..\Library\StdDriver\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -D__MICROLIB -D__UVISION_VERSION=538 --omf_browse=.\obj\sys.crf ..\..\..\Library\StdDriver\src\sys.c]
                          THUMB

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

                  SYS_ClearResetSrc PROC
;;;42       */
;;;43     void SYS_ClearResetSrc(uint32_t u32Src)
000000  f04f4180          MOV      r1,#0x40000000
;;;44     {
;;;45         SYS->RSTSTS |= u32Src;
000004  684a              LDR      r2,[r1,#4]
000006  4302              ORRS     r2,r2,r0
000008  604a              STR      r2,[r1,#4]
;;;46     }
00000a  4770              BX       lr
;;;47     
                          ENDP


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

                  SYS_DisableBOD PROC
;;;233      */
;;;234    void SYS_DisableBOD(void)
000000  f04f4080          MOV      r0,#0x40000000
;;;235    {
;;;236        SYS->BODCTL &= ~SYS_BODCTL_BODEN_Msk;
000004  6981              LDR      r1,[r0,#0x18]
000006  f0210101          BIC      r1,r1,#1
00000a  6181              STR      r1,[r0,#0x18]
;;;237    }
00000c  4770              BX       lr
;;;238    
                          ENDP


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

                  SYS_EnableBOD PROC
;;;214      */
;;;215    void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel)
000000  f04f4280          MOV      r2,#0x40000000
;;;216    {
;;;217        /* Enable Brown-out Detector function */
;;;218        SYS->BODCTL |= SYS_BODCTL_BODEN_Msk;
000004  6993              LDR      r3,[r2,#0x18]
000006  f0430301          ORR      r3,r3,#1
00000a  6193              STR      r3,[r2,#0x18]
;;;219    
;;;220        /* Enable Brown-out interrupt or reset function */
;;;221        SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCTL_BODRSTEN_Msk) | (uint32_t)i32Mode;
00000c  6993              LDR      r3,[r2,#0x18]
00000e  f0230308          BIC      r3,r3,#8
000012  4303              ORRS     r3,r3,r0
000014  6193              STR      r3,[r2,#0x18]
;;;222    
;;;223        /* Select Brown-out Detector threshold voltage */
;;;224        SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCTL_BODVL_Msk) | u32BODLevel;
000016  6990              LDR      r0,[r2,#0x18]
000018  f42020e0          BIC      r0,r0,#0x70000
00001c  4308              ORRS     r0,r0,r1
00001e  6190              STR      r0,[r2,#0x18]
;;;225    }
000020  4770              BX       lr
;;;226    
                          ENDP


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

                  SYS_GetBODStatus PROC
;;;54       */
;;;55     uint32_t SYS_GetBODStatus(void)
000000  f04f4080          MOV      r0,#0x40000000
;;;56     {
;;;57         return ((SYS->BODCTL & SYS_BODCTL_BODOUT_Msk) >> SYS_BODCTL_BODOUT_Pos);
000004  6980              LDR      r0,[r0,#0x18]
000006  f3c01080          UBFX     r0,r0,#6,#1
;;;58     }
00000a  4770              BX       lr
;;;59     
                          ENDP


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

                  SYS_GetResetSrc PROC
;;;65       */
;;;66     uint32_t SYS_GetResetSrc(void)
000000  f04f4080          MOV      r0,#0x40000000
;;;67     {
;;;68         return (SYS->RSTSTS);
000004  6840              LDR      r0,[r0,#4]
;;;69     }
000006  4770              BX       lr
;;;70     
                          ENDP


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

                  SYS_IsRegLocked PROC
;;;77       */
;;;78     uint32_t SYS_IsRegLocked(void)
000000  f04f4080          MOV      r0,#0x40000000
;;;79     {
;;;80         return SYS->REGLCTL & 1UL ? 0UL : 1UL;
000004  f8d00100          LDR      r0,[r0,#0x100]
000008  f3400000          SBFX     r0,r0,#0,#1
00000c  1c40              ADDS     r0,r0,#1
;;;81     }
00000e  4770              BX       lr
;;;82     
                          ENDP


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

                  SYS_ReadPDID PROC
;;;88       */
;;;89     uint32_t  SYS_ReadPDID(void)
000000  f04f4080          MOV      r0,#0x40000000
;;;90     {
;;;91         return SYS->PDID;
000004  6800              LDR      r0,[r0,#0]
;;;92     }
000006  4770              BX       lr
;;;93     
                          ENDP


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

                  SYS_ResetCPU PROC
;;;112      */
;;;113    void SYS_ResetCPU(void)
000000  f04f4080          MOV      r0,#0x40000000
;;;114    {
;;;115        SYS->IPRST0 |= SYS_IPRST0_CPURST_Msk;
000004  6881              LDR      r1,[r0,#8]
000006  f0410102          ORR      r1,r1,#2
00000a  6081              STR      r1,[r0,#8]
;;;116    }
00000c  4770              BX       lr
;;;117    
                          ENDP


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

                  SYS_ResetChip PROC
;;;100      */
;;;101    void SYS_ResetChip(void)
000000  f04f4080          MOV      r0,#0x40000000
;;;102    {
;;;103        SYS->IPRST0 |= SYS_IPRST0_CHIPRST_Msk;
000004  6881              LDR      r1,[r0,#8]
000006  f0410101          ORR      r1,r1,#1
00000a  6081              STR      r1,[r0,#8]
;;;104    }
00000c  4770              BX       lr
;;;105    
                          ENDP


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

                  SYS_ResetModule PROC
;;;182      */
;;;183    void SYS_ResetModule(uint32_t u32ModuleIndex)
000000  2101              MOVS     r1,#1
;;;184    {
;;;185        uint32_t u32tmpVal = 0UL, u32tmpAddr = 0UL;
;;;186    
;;;187        /* Generate reset signal to the corresponding module */
;;;188        u32tmpVal = (1UL << (u32ModuleIndex & 0x00ffffffUL));
;;;189        u32tmpAddr = (uint32_t)&SYS->IPRST0 + ((u32ModuleIndex >> 24UL));
000002  4a04              LDR      r2,|L10.20|
000004  4081              LSLS     r1,r1,r0              ;188
000006  eb026010          ADD      r0,r2,r0,LSR #24
;;;190        *(uint32_t *)u32tmpAddr |= u32tmpVal;
00000a  6802              LDR      r2,[r0,#0]
00000c  430a              ORRS     r2,r2,r1
;;;191    
;;;192        /* Release corresponding module from reset state */
;;;193        u32tmpVal = ~(1UL << (u32ModuleIndex & 0x00ffffffUL));
;;;194        *(uint32_t *)u32tmpAddr &= u32tmpVal;
00000e  438a              BICS     r2,r2,r1
000010  6002              STR      r2,[r0,#0]
;;;195    }
000012  4770              BX       lr
;;;196    
                          ENDP

                  |L10.20|
                          DCD      0x40000008

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

                  SYS_SetPowerLevel PROC
;;;247      */
;;;248    void SYS_SetPowerLevel(uint32_t u32PowerLevel)
000000  f04f4180          MOV      r1,#0x40000000
;;;249    {
;;;250        /* Set power voltage level */
;;;251        SYS->PLCTL = (SYS->PLCTL & (~SYS_PLCTL_PLSEL_Msk)) | (u32PowerLevel);
000004  f8d121f8          LDR      r2,[r1,#0x1f8]
000008  f0220203          BIC      r2,r2,#3
00000c  4302              ORRS     r2,r2,r0
00000e  f8c121f8          STR      r2,[r1,#0x1f8]
;;;252    }
000012  4770              BX       lr
;;;253    
                          ENDP


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

                  SYS_SetVRef PROC
;;;266      */
;;;267    void SYS_SetVRef(uint32_t u32VRefCTL)
000000  f04f4180          MOV      r1,#0x40000000
;;;268    {
;;;269        /* Set reference voltage */
;;;270        SYS->VREFCTL = (SYS->VREFCTL & (~SYS_VREFCTL_VREFCTL_Msk)) | (u32VRefCTL);
000004  6a8a              LDR      r2,[r1,#0x28]
000006  f022021f          BIC      r2,r2,#0x1f
00000a  4302              ORRS     r2,r2,r0
00000c  628a              STR      r2,[r1,#0x28]
;;;271    }
00000e  4770              BX       lr
;;;272    
                          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
	AREA ||.rrx_text||, CODE
	THUMB
	EXPORT |__asm___5_sys_c_962b9fbe____RRX|
#line 587
|__asm___5_sys_c_962b9fbe____RRX| PROC
#line 588

 rrx r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
