; generated by Component: ARM Compiler 5.05 update 2 (build 169) Tool: ArmCC [4d0f38]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\sys.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\sys.d --cpu=Cortex-M4.fp --apcs=interwork -O0 --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\M451Series\Include -I..\..\..\Library\StdDriver\inc -I..\Bsp -I..\User -I..\lcd_driver -I..\exti_driver -I..\led_driver -I..\touch -I..\dotmatix_lcd -I..\KH -ID:\\A\LCD\͹ϵ_VKL\VKL\VKL060_TESTCODE\project\VKL060_FUNC\Keil\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -D__UVISION_VERSION=515 -D_RTE_ --omf_browse=.\obj\sys.crf ..\..\..\Library\StdDriver\src\sys.c]
                          THUMB

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

                  SYS_ClearResetSrc PROC
;;;44       */
;;;45     void SYS_ClearResetSrc(unsigned int u32Src)
000000  f04f4180          MOV      r1,#0x40000000
;;;46     {
;;;47         SYS->RSTSTS |= u32Src;
000004  6849              LDR      r1,[r1,#4]
000006  4301              ORRS     r1,r1,r0
000008  f04f4280          MOV      r2,#0x40000000
00000c  6051              STR      r1,[r2,#4]
;;;48     }
00000e  4770              BX       lr
;;;49     
                          ENDP

                  SYS_GetBODStatus PROC
;;;56       */
;;;57     unsigned int SYS_GetBODStatus(void)
000010  f04f4080          MOV      r0,#0x40000000
;;;58     {
;;;59         return ((SYS->BODCTL & SYS_BODCTL_BODOUT_Msk) >> SYS_BODCTL_BODOUT_Pos);
000014  6980              LDR      r0,[r0,#0x18]
000016  f3c01080          UBFX     r0,r0,#6,#1
;;;60     }
00001a  4770              BX       lr
;;;61     
                          ENDP

                  SYS_GetResetSrc PROC
;;;67       */
;;;68     unsigned int SYS_GetResetSrc(void)
00001c  f04f4080          MOV      r0,#0x40000000
;;;69     {
;;;70         return (SYS->RSTSTS);
000020  6840              LDR      r0,[r0,#4]
;;;71     }
000022  4770              BX       lr
;;;72     
                          ENDP

                  SYS_IsRegLocked PROC
;;;79       */
;;;80     unsigned int SYS_IsRegLocked(void)
000024  4829              LDR      r0,|L1.204|
;;;81     {
;;;82         return !(SYS->REGLCTL & 0x1);
000026  6800              LDR      r0,[r0,#0]
000028  f0000001          AND      r0,r0,#1
00002c  f0800001          EOR      r0,r0,#1
;;;83     }
000030  4770              BX       lr
;;;84     
                          ENDP

                  SYS_ReadPDID PROC
;;;90       */
;;;91     unsigned int  SYS_ReadPDID(void)
000032  f04f4080          MOV      r0,#0x40000000
;;;92     {
;;;93         return SYS->PDID;
000036  6800              LDR      r0,[r0,#0]
;;;94     }
000038  4770              BX       lr
;;;95     
                          ENDP

                  SYS_ResetChip PROC
;;;102      */
;;;103    void SYS_ResetChip(void)
00003a  f04f4080          MOV      r0,#0x40000000
;;;104    {
;;;105        SYS->IPRST0 |= SYS_IPRST0_CHIPRST_Msk;
00003e  6880              LDR      r0,[r0,#8]
000040  f0400001          ORR      r0,r0,#1
000044  f04f4180          MOV      r1,#0x40000000
000048  6088              STR      r0,[r1,#8]
;;;106    }
00004a  4770              BX       lr
;;;107    
                          ENDP

                  SYS_ResetCPU PROC
;;;114      */
;;;115    void SYS_ResetCPU(void)
00004c  f04f4080          MOV      r0,#0x40000000
;;;116    {
;;;117        SYS->IPRST0 |= SYS_IPRST0_CPURST_Msk;
000050  6880              LDR      r0,[r0,#8]
000052  f0400002          ORR      r0,r0,#2
000056  f04f4180          MOV      r1,#0x40000000
00005a  6088              STR      r0,[r1,#8]
;;;118    }
00005c  4770              BX       lr
;;;119    
                          ENDP

                  SYS_ResetModule PROC
;;;153      */
;;;154    void SYS_ResetModule(unsigned int u32ModuleIndex)
00005e  0e01              LSRS     r1,r0,#24
;;;155    {
;;;156        /* Generate reset signal to the corresponding module */
;;;157        *(volatile unsigned int *)((unsigned int)&SYS->IPRST0 + (u32ModuleIndex >> 24))  |= 1 << (u32ModuleIndex & 0x00ffffff);
000060  f1014180          ADD      r1,r1,#0x40000000
000064  6889              LDR      r1,[r1,#8]
000066  2201              MOVS     r2,#1
000068  4082              LSLS     r2,r2,r0
00006a  4311              ORRS     r1,r1,r2
00006c  0e02              LSRS     r2,r0,#24
00006e  f1024280          ADD      r2,r2,#0x40000000
000072  6091              STR      r1,[r2,#8]
;;;158    
;;;159        /* Release corresponding module from reset state */
;;;160        *(volatile unsigned int *)((unsigned int)&SYS->IPRST0 + (u32ModuleIndex >> 24))  &= ~(1 << (u32ModuleIndex & 0x00ffffff));
000074  0e01              LSRS     r1,r0,#24
000076  f1014180          ADD      r1,r1,#0x40000000
00007a  688a              LDR      r2,[r1,#8]
00007c  2101              MOVS     r1,#1
00007e  4081              LSLS     r1,r1,r0
000080  ea220101          BIC      r1,r2,r1
000084  0e02              LSRS     r2,r0,#24
000086  f1024280          ADD      r2,r2,#0x40000000
00008a  6091              STR      r1,[r2,#8]
;;;161    }
00008c  4770              BX       lr
;;;162    
                          ENDP

                  SYS_EnableBOD PROC
;;;176      */
;;;177    void SYS_EnableBOD(int32_t i32Mode, unsigned int u32BODLevel)
00008e  f04f4280          MOV      r2,#0x40000000
;;;178    {
;;;179        /* Enable Brown-out Detector function */
;;;180        SYS->BODCTL |= SYS_BODCTL_BODEN_Msk;
000092  6992              LDR      r2,[r2,#0x18]
000094  f0420201          ORR      r2,r2,#1
000098  f04f4380          MOV      r3,#0x40000000
00009c  619a              STR      r2,[r3,#0x18]
;;;181    
;;;182        /* Enable Brown-out interrupt or reset function */
;;;183        SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCTL_BODRSTEN_Msk) | i32Mode;
00009e  461a              MOV      r2,r3
0000a0  6992              LDR      r2,[r2,#0x18]
0000a2  f0220208          BIC      r2,r2,#8
0000a6  4302              ORRS     r2,r2,r0
0000a8  619a              STR      r2,[r3,#0x18]
;;;184    
;;;185        /* Select Brown-out Detector threshold voltage */
;;;186        SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCTL_BODVL_Msk) | u32BODLevel;
0000aa  461a              MOV      r2,r3
0000ac  6992              LDR      r2,[r2,#0x18]
0000ae  f0220206          BIC      r2,r2,#6
0000b2  430a              ORRS     r2,r2,r1
0000b4  619a              STR      r2,[r3,#0x18]
;;;187    }
0000b6  4770              BX       lr
;;;188    
                          ENDP

                  SYS_DisableBOD PROC
;;;195      */
;;;196    void SYS_DisableBOD(void)
0000b8  f04f4080          MOV      r0,#0x40000000
;;;197    {
;;;198        SYS->BODCTL &= ~SYS_BODCTL_BODEN_Msk;
0000bc  6980              LDR      r0,[r0,#0x18]
0000be  f0200001          BIC      r0,r0,#1
0000c2  f04f4180          MOV      r1,#0x40000000
0000c6  6188              STR      r0,[r1,#0x18]
;;;199    }
0000c8  4770              BX       lr
;;;200    
                          ENDP

0000ca  0000              DCW      0x0000
                  |L1.204|
                          DCD      0x40000100

;*** Start embedded assembler ***

#line 1 "..\\..\\..\\Library\\StdDriver\\src\\sys.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___5_sys_c_962b9fbe____REV16|
#line 114 "..\\..\\..\\Library\\CMSIS\\Include\\core_cmInstr.h"
|__asm___5_sys_c_962b9fbe____REV16| PROC
#line 115

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
