; 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\retarget.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\retarget.d --cpu=Cortex-M0 --apcs=interwork -Otime --diag_suppress=9931 -I..\..\..\..\Library\CMSIS\Include -I..\..\..\..\Library\Device\Nuvoton\M0A21\Include -I..\..\..\..\Library\StdDriver\inc -I..\ -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -D__MICROLIB -D__UVISION_VERSION=538 --omf_browse=.\obj\retarget.crf ..\..\..\..\Library\StdDriver\src\retarget.c]
                          THUMB

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

                          REQUIRE _printf_percent
                          REQUIRE _printf_x
                          REQUIRE _printf_longlong_hex
                  Hard_Fault_Handler PROC
                  ||__tagsym$$used||
;;;78      */
;;;79     void Hard_Fault_Handler(uint32_t stack[])
000000  4604              MOV      r4,r0
;;;80     {
;;;81         printf("In Hard Fault Handler\n");
000002  a012              ADR      r0,|L1.76|
000004  f7fffffe          BL       __2printf
000008  a016              ADR      r0,|L1.100|
00000a  6821              LDR      r1,[r4,#0]
00000c  f7fffffe          BL       __2printf
000010  a017              ADR      r0,|L1.112|
000012  6861              LDR      r1,[r4,#4]
000014  f7fffffe          BL       __2printf
000018  a018              ADR      r0,|L1.124|
00001a  68a1              LDR      r1,[r4,#8]
00001c  f7fffffe          BL       __2printf
000020  a019              ADR      r0,|L1.136|
000022  68e1              LDR      r1,[r4,#0xc]
000024  f7fffffe          BL       __2printf
000028  a01a              ADR      r0,|L1.148|
00002a  6921              LDR      r1,[r4,#0x10]
00002c  f7fffffe          BL       __2printf
000030  a01b              ADR      r0,|L1.160|
000032  6961              LDR      r1,[r4,#0x14]
000034  f7fffffe          BL       __2printf
000038  a01c              ADR      r0,|L1.172|
00003a  69a1              LDR      r1,[r4,#0x18]
00003c  f7fffffe          BL       __2printf
000040  a01d              ADR      r0,|L1.184|
000042  69e1              LDR      r1,[r4,#0x1c]
000044  f7fffffe          BL       __2printf
                  |L1.72|
;;;82     
;;;83         stackDump(stack);
;;;84         /* Replace while(1) with chip reset if WDT is not enabled for end product */
;;;85         while(1);
000048  e7fe              B        |L1.72|
;;;86         /* SYS->IPRST0 = SYS_IPRST0_CHIPRST_Msk; */
;;;87     }
;;;88     
                          ENDP

00004a  0000              DCW      0x0000
                  |L1.76|
00004c  496e2048          DCB      "In Hard Fault Handler\n",0
000050  61726420
000054  4661756c
000058  74204861
00005c  6e646c65
000060  720a00  
000063  00                DCB      0
                  |L1.100|
000064  72302020          DCB      "r0  = 0x%x\n",0
000068  3d203078
00006c  25780a00
                  |L1.112|
000070  72312020          DCB      "r1  = 0x%x\n",0
000074  3d203078
000078  25780a00
                  |L1.124|
00007c  72322020          DCB      "r2  = 0x%x\n",0
000080  3d203078
000084  25780a00
                  |L1.136|
000088  72332020          DCB      "r3  = 0x%x\n",0
00008c  3d203078
000090  25780a00
                  |L1.148|
000094  72313220          DCB      "r12 = 0x%x\n",0
000098  3d203078
00009c  25780a00
                  |L1.160|
0000a0  6c722020          DCB      "lr  = 0x%x\n",0
0000a4  3d203078
0000a8  25780a00
                  |L1.172|
0000ac  70632020          DCB      "pc  = 0x%x\n",0
0000b0  3d203078
0000b4  25780a00
                  |L1.184|
0000b8  70737220          DCB      "psr = 0x%x\n",0
0000bc  3d203078
0000c0  25780a00

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

                  IsDebugFifoEmpty PROC
;;;632    
;;;633    int IsDebugFifoEmpty(void)
000000  4802              LDR      r0,|L2.12|
;;;634    {
;;;635    #ifndef DISABLE_UART
;;;636        return ((DEBUG_PORT->FIFOSTS & UART_FIFOSTS_TXEMPTYF_Msk) != 0);
000002  6980              LDR      r0,[r0,#0x18]
000004  00c0              LSLS     r0,r0,#3
000006  0fc0              LSRS     r0,r0,#31
;;;637    #else
;;;638        return 1;
;;;639    #endif
;;;640    }
000008  4770              BX       lr
;;;641    
                          ENDP

00000a  0000              DCW      0x0000
                  |L2.12|
                          DCD      0x40070000

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

                  _ttywrch PROC
;;;651    
;;;652    void _ttywrch(int ch)
000000  4906              LDR      r1,|L3.28|
                  |L3.2|
000002  698a              LDR      r2,[r1,#0x18]
000004  0212              LSLS     r2,r2,#8
000006  d4fc              BMI      |L3.2|
000008  280a              CMP      r0,#0xa
00000a  d104              BNE      |L3.22|
00000c  220d              MOVS     r2,#0xd
00000e  600a              STR      r2,[r1,#0]
                  |L3.16|
000010  698a              LDR      r2,[r1,#0x18]
000012  0212              LSLS     r2,r2,#8
000014  d4fc              BMI      |L3.16|
                  |L3.22|
000016  6008              STR      r0,[r1,#0]
;;;653    {
;;;654        SendChar(ch);
;;;655        return;
;;;656    }
000018  4770              BX       lr
;;;657    
                          ENDP

00001a  0000              DCW      0x0000
                  |L3.28|
                          DCD      0x40070000

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

                  ferror PROC
;;;746    
;;;747    int ferror(FILE *stream)
000000  2000              MOVS     r0,#0
;;;748    {
;;;749        return EOF;
000002  43c0              MVNS     r0,r0
;;;750    }
000004  4770              BX       lr
;;;751    #endif
                          ENDP


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

                  fgetc PROC
;;;726    
;;;727    int fgetc(FILE *stream)
000000  4803              LDR      r0,|L5.16|
                  |L5.2|
000002  6981              LDR      r1,[r0,#0x18]
000004  0449              LSLS     r1,r1,#17
000006  d4fc              BMI      |L5.2|
000008  6800              LDR      r0,[r0,#0]
00000a  b2c0              UXTB     r0,r0
;;;728    {
;;;729        return (GetChar());
;;;730    }
00000c  4770              BX       lr
;;;731    
                          ENDP

00000e  0000              DCW      0x0000
                  |L5.16|
                          DCD      0x40070000

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

                  fputc PROC
;;;676    
;;;677    int fputc(int ch, FILE *stream)
000000  4906              LDR      r1,|L6.28|
                  |L6.2|
000002  698a              LDR      r2,[r1,#0x18]
000004  0212              LSLS     r2,r2,#8
000006  d4fc              BMI      |L6.2|
000008  280a              CMP      r0,#0xa
00000a  d104              BNE      |L6.22|
00000c  220d              MOVS     r2,#0xd
00000e  600a              STR      r2,[r1,#0]
                  |L6.16|
000010  698a              LDR      r2,[r1,#0x18]
000012  0212              LSLS     r2,r2,#8
000014  d4fc              BMI      |L6.16|
                  |L6.22|
000016  6008              STR      r0,[r1,#0]
;;;678    {
;;;679        SendChar(ch);
;;;680        return ch;
;;;681    }
000018  4770              BX       lr
;;;682    
                          ENDP

00001a  0000              DCW      0x0000
                  |L6.28|
                          DCD      0x40070000

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

                  kbhit PROC
;;;613    
;;;614    int kbhit(void)
000000  4802              LDR      r0,|L7.12|
;;;615    {
;;;616    #ifndef DISABLE_UART
;;;617        return !((DEBUG_PORT->FIFOSTS & UART_FIFOSTS_RXEMPTY_Msk) == 0);
000002  6980              LDR      r0,[r0,#0x18]
000004  0440              LSLS     r0,r0,#17
000006  0fc0              LSRS     r0,r0,#31
;;;618    #else
;;;619        return 0;
;;;620    #endif
;;;621    }
000008  4770              BX       lr
;;;622    /**
                          ENDP

00000a  0000              DCW      0x0000
                  |L7.12|
                          DCD      0x40070000

                          AREA ||.data||, DATA, ALIGN=2

                  __stdout
                          DCD      0x00000000

                          AREA ||area_number.11||, DATA, ALIGN=2

                          EXPORTAS ||area_number.11||, ||.data||
                  __stdin
                          DCD      0x00000000

;*** Start embedded assembler ***

#line 1 "..\\..\\..\\..\\Library\\StdDriver\\src\\retarget.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___10_retarget_c_d5a1b03f____REV16|
#line 464 "..\\..\\..\\..\\Library\\CMSIS\\Include\\cmsis_armcc.h"
|__asm___10_retarget_c_d5a1b03f____REV16| PROC
#line 465

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___10_retarget_c_d5a1b03f____REVSH|
#line 479
|__asm___10_retarget_c_d5a1b03f____REVSH| PROC
#line 480

 revsh r0, r0
 bx lr
	ENDP
	AREA ||.emb_text||, CODE
	THUMB
	EXPORT |HardFault_Handler|
#line 413 "..\\..\\..\\..\\Library\\StdDriver\\src\\retarget.c"
|HardFault_Handler| PROC
#line 414

 MOVS r0, #4
 MOV r1, LR
 TST r0, r1  
 BEQ Stack_Use_MSP  
 MRS R0, PSP  
 B Get_LR_and_Branch
Stack_Use_MSP
 MRS R0, MSP  
Get_LR_and_Branch
 MOV R1, LR  
 LDR R2,= |Hard_Fault_Handler|  
 BX R2
	ENDP

;*** End   embedded assembler ***
