; generated by Component: ARM Compiler 5.06 update 4 (build 422) Tool: ArmCC [4d3604] ; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o.\obj\system_mini58series.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\system_mini58series.d --cpu=Cortex-M0 --apcs=interwork -O3 --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\Mini58Series\Include -I..\..\..\Library\StdDriver\inc -I..\..\Template -I..\..\..\Library\StdDriver\driver -I.\RTE\_Template -ID:\Keil_v5\ARM\PACK\Nuvoton\NuMicro_DFP\1.0.9\Device\Mini58\Include -ID:\Keil_v5\ARM\CMSIS\Include -D__MICROLIB -D__UVISION_VERSION=523 --omf_browse=.\obj\system_mini58series.crf ..\..\..\Library\Device\Nuvoton\Mini58Series\Source\system_Mini58Series.c] THUMB AREA ||i.SystemCoreClockUpdate||, CODE, READONLY, ALIGN=2 SystemCoreClockUpdate PROC ;;;41 ;;;42 void SystemCoreClockUpdate (void) 000000 b5f8 PUSH {r3-r7,lr} 000002 a020 ADR r0,|L1.132| 000004 6800 LDR r0,[r0,#0] 000006 4e20 LDR r6,|L1.136| 000008 9000 STR r0,[sp,#0] 00000a 6a31 LDR r1,[r6,#0x20] 00000c 1330 ASRS r0,r6,#12 00000e 4c1f LDR r4,|L1.140| 000010 4f1f LDR r7,|L1.144| 000012 4201 TST r1,r0 ;;;43 { 000014 d001 BEQ |L1.26| 000016 2000 MOVS r0,#0 000018 e016 B |L1.72| |L1.26| 00001a 0308 LSLS r0,r1,#12 00001c d501 BPL |L1.34| 00001e 4620 MOV r0,r4 000020 e000 B |L1.36| |L1.34| 000022 4638 MOV r0,r7 |L1.36| 000024 038a LSLS r2,r1,#14 000026 d40f BMI |L1.72| 000028 040a LSLS r2,r1,#16 00002a 0f92 LSRS r2,r2,#30 00002c 466b MOV r3,sp 00002e 5c9b LDRB r3,[r3,r2] 000030 05ca LSLS r2,r1,#23 000032 0489 LSLS r1,r1,#18 000034 0dd2 LSRS r2,r2,#23 000036 0ec9 LSRS r1,r1,#27 000038 1c89 ADDS r1,r1,#2 00003a 0880 LSRS r0,r0,#2 00003c 1c92 ADDS r2,r2,#2 00003e 4359 MULS r1,r3,r1 000040 4350 MULS r0,r2,r0 000042 f7fffffe BL __aeabi_uidivmod 000046 0080 LSLS r0,r0,#2 |L1.72| ;;;44 uint32_t u32CoreFreq, u32ClkSrc; ;;;45 ;;;46 /* Update PLL Clock */ ;;;47 PllClock = CLK_GetPLLClockFreq(); 000048 4d12 LDR r5,|L1.148| ;;;48 ;;;49 u32ClkSrc = CLK->CLKSEL0 & CLK_CLKSEL0_HCLKSEL_Msk; 00004a 6028 STR r0,[r5,#0] ; PllClock 00004c 6931 LDR r1,[r6,#0x10] 00004e 0749 LSLS r1,r1,#29 000050 0f49 LSRS r1,r1,#29 ;;;50 ;;;51 if (u32ClkSrc == 0) 000052 d012 BEQ |L1.122| ;;;52 u32CoreFreq = __XTAL; /* External crystal clock */ ;;;53 else if (u32ClkSrc ==2) 000054 2902 CMP r1,#2 000056 d002 BEQ |L1.94| ;;;54 u32CoreFreq = PllClock; /* PLL clock */ ;;;55 else if (u32ClkSrc == 3) 000058 2903 CMP r1,#3 00005a d010 BEQ |L1.126| ;;;56 u32CoreFreq = __IRC10K; /* Internal 10K crystal clock */ ;;;57 else if (u32ClkSrc == 7) ;;;58 u32CoreFreq = __HIRC; /* Factory Default is internal RC */ 00005c 4620 MOV r0,r4 |L1.94| ;;;59 else ;;;60 u32CoreFreq = __HIRC; /* unknown value, use Factory Default is internal RC */ ;;;61 ;;;62 SystemCoreClock = (u32CoreFreq/((CLK->CLKDIV & CLK_CLKDIV_HCLKDIV_Msk) + 1)); 00005e 69b1 LDR r1,[r6,#0x18] 000060 0709 LSLS r1,r1,#28 000062 0f09 LSRS r1,r1,#28 000064 1c49 ADDS r1,r1,#1 000066 f7fffffe BL __aeabi_uidivmod ;;;63 CyclesPerUs = (SystemCoreClock + 500000) / 1000000; 00006a 490b LDR r1,|L1.152| 00006c 6068 STR r0,[r5,#4] ; SystemCoreClock 00006e 104a ASRS r2,r1,#1 000070 1880 ADDS r0,r0,r2 000072 f7fffffe BL __aeabi_uidivmod 000076 60a8 STR r0,[r5,#8] ; CyclesPerUs ;;;64 } 000078 bdf8 POP {r3-r7,pc} |L1.122| 00007a 4638 MOV r0,r7 ;52 00007c e7ef B |L1.94| |L1.126| 00007e 4807 LDR r0,|L1.156| 000080 e7ed B |L1.94| ;;;65 ENDP 000082 0000 DCW 0x0000 |L1.132| 000084 01020204 DCB 1,2,2,4 |L1.136| DCD 0x50000200 |L1.140| DCD 0x01518000 |L1.144| DCD 0x00b71b00 |L1.148| DCD ||area_number.6|| |L1.152| DCD 0x000f4240 |L1.156| DCD 0x00002710 AREA ||i.SystemInit||, CODE, READONLY, ALIGN=1 SystemInit PROC ;;;29 ;;;30 void SystemInit (void) 000000 4770 BX lr ;;;31 { ;;;32 ;;;33 } ;;;34 ENDP AREA ||.data||, DATA, ALIGN=2 __HSI DCD 0x01518000 AREA ||area_number.6||, DATA, ALIGN=2 EXPORTAS ||area_number.6||, ||.data|| PllClock DCD 0x01518000 SystemCoreClock DCD 0x00000000 CyclesPerUs DCD 0x00000000 ;*** Start embedded assembler *** #line 1 "..\\..\\..\\Library\\Device\\Nuvoton\\Mini58Series\\Source\\system_Mini58Series.c" AREA ||.rev16_text||, CODE THUMB EXPORT |__asm___21_system_Mini58Series_c___HSI____REV16| #line 388 "..\\..\\..\\Library\\CMSIS\\Include\\cmsis_armcc.h" |__asm___21_system_Mini58Series_c___HSI____REV16| PROC #line 389 rev16 r0, r0 bx lr ENDP AREA ||.revsh_text||, CODE THUMB EXPORT |__asm___21_system_Mini58Series_c___HSI____REVSH| #line 402 |__asm___21_system_Mini58Series_c___HSI____REVSH| PROC #line 403 revsh r0, r0 bx lr ENDP ;*** End embedded assembler ***