添加PAN159资料
This commit is contained in:
@@ -0,0 +1,419 @@
|
||||
; 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\retarget.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\retarget.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\retarget.crf ..\..\..\Library\StdDriver\src\retarget.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.GetChar||, CODE, READONLY, ALIGN=2
|
||||
|
||||
GetChar PROC
|
||||
;;;371
|
||||
;;;372 char GetChar(void)
|
||||
000000 4803 LDR r0,|L1.16|
|
||||
|L1.2|
|
||||
;;;373 {
|
||||
;;;374 #if defined(DEBUG_ENABLE_SEMIHOST)
|
||||
;;;375 # if defined ( __CC_ARM )
|
||||
;;;376 int nRet;
|
||||
;;;377 while(SH_DoCommand(0x101, 0, &nRet) != 0)
|
||||
;;;378 {
|
||||
;;;379 if(nRet != 0)
|
||||
;;;380 {
|
||||
;;;381 SH_DoCommand(0x07, 0, &nRet);
|
||||
;;;382 return (char)nRet;
|
||||
;;;383 }
|
||||
;;;384 }
|
||||
;;;385 # else
|
||||
;;;386 int nRet;
|
||||
;;;387 while(SH_DoCommand(0x7, 0, &nRet) != 0)
|
||||
;;;388 {
|
||||
;;;389 if(nRet != 0)
|
||||
;;;390 return (char)nRet;
|
||||
;;;391 }
|
||||
;;;392 # endif
|
||||
;;;393 #endif
|
||||
;;;394 #ifndef DISABLE_UART
|
||||
;;;395 while (1){
|
||||
;;;396 if(!(DEBUG_PORT->FIFOSTS & UART_FIFOSTS_RXEMPTY_Msk))
|
||||
000002 6981 LDR r1,[r0,#0x18]
|
||||
000004 0449 LSLS r1,r1,#17
|
||||
000006 d4fc BMI |L1.2|
|
||||
;;;397 {
|
||||
;;;398 return (DEBUG_PORT->DAT);
|
||||
000008 6800 LDR r0,[r0,#0]
|
||||
00000a b2c0 UXTB r0,r0
|
||||
;;;399
|
||||
;;;400 }
|
||||
;;;401 }
|
||||
;;;402 #else
|
||||
;;;403 return(0);
|
||||
;;;404 #endif
|
||||
;;;405 }
|
||||
00000c 4770 BX lr
|
||||
;;;406
|
||||
ENDP
|
||||
|
||||
00000e 0000 DCW 0x0000
|
||||
|L1.16|
|
||||
DCD 0x40050000
|
||||
|
||||
AREA ||i.Hard_Fault_Handler||, CODE, READONLY, ALIGN=2
|
||||
|
||||
Hard_Fault_Handler PROC
|
||||
||__tagsym$$used||
|
||||
;;;60
|
||||
;;;61 void Hard_Fault_Handler(uint32_t stack[])
|
||||
000000 4604 MOV r4,r0
|
||||
;;;62 {
|
||||
;;;63 printf("In Hard Fault Handler\n");
|
||||
000002 a003 ADR r0,|L2.16|
|
||||
000004 f7fffffe BL __2printf
|
||||
;;;64
|
||||
;;;65 stackDump(stack);
|
||||
000008 4620 MOV r0,r4
|
||||
00000a f7fffffe BL stackDump
|
||||
|L2.14|
|
||||
;;;66
|
||||
;;;67 //Chip Reset
|
||||
;;;68 //SYS_UnlockReg();
|
||||
;;;69 //SYS->IPRSTC1 |= SYS_IPRSTC1_CHIP_RST_Msk;
|
||||
;;;70
|
||||
;;;71 while(1);
|
||||
00000e e7fe B |L2.14|
|
||||
;;;72 }
|
||||
;;;73
|
||||
ENDP
|
||||
|
||||
|L2.16|
|
||||
000010 496e2048 DCB "In Hard Fault Handler\n",0
|
||||
000014 61726420
|
||||
000018 4661756c
|
||||
00001c 74204861
|
||||
000020 6e646c65
|
||||
000024 720a00
|
||||
000027 00 DCB 0
|
||||
|
||||
AREA ||i.IsDebugFifoEmpty||, CODE, READONLY, ALIGN=2
|
||||
|
||||
IsDebugFifoEmpty PROC
|
||||
;;;430 */
|
||||
;;;431 int IsDebugFifoEmpty(void)
|
||||
000000 4802 LDR r0,|L3.12|
|
||||
;;;432 {
|
||||
;;;433 #ifndef DISABLE_UART
|
||||
;;;434 return (DEBUG_PORT->FIFOSTS & UART_FIFOSTS_TXEMPTYF_Msk) ? 1 : 0;
|
||||
000002 6980 LDR r0,[r0,#0x18]
|
||||
000004 00c0 LSLS r0,r0,#3
|
||||
000006 0fc0 LSRS r0,r0,#31
|
||||
;;;435 #else
|
||||
;;;436 return(1);
|
||||
;;;437 #endif
|
||||
;;;438
|
||||
;;;439 }
|
||||
000008 4770 BX lr
|
||||
;;;440
|
||||
ENDP
|
||||
|
||||
00000a 0000 DCW 0x0000
|
||||
|L3.12|
|
||||
DCD 0x40050000
|
||||
|
||||
AREA ||i.SendChar||, CODE, READONLY, ALIGN=1
|
||||
|
||||
SendChar PROC
|
||||
;;;334
|
||||
;;;335 void SendChar(int ch)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;336 {
|
||||
;;;337 #if defined(DEBUG_ENABLE_SEMIHOST)
|
||||
;;;338 g_buf[g_buf_len++] = ch;
|
||||
;;;339 g_buf[g_buf_len] = '\0';
|
||||
;;;340 if(g_buf_len + 1 >= sizeof(g_buf) || ch == '\n' || ch == '\0')
|
||||
;;;341 {
|
||||
;;;342
|
||||
;;;343 /* Send the char */
|
||||
;;;344
|
||||
;;;345 if(SH_DoCommand(0x04, (int)g_buf, NULL) != 0)
|
||||
;;;346 {
|
||||
;;;347 g_buf_len = 0;
|
||||
;;;348 return;
|
||||
;;;349 }
|
||||
;;;350 else
|
||||
;;;351 {
|
||||
;;;352 int i;
|
||||
;;;353
|
||||
;;;354 for(i=0;i<g_buf_len;i++)
|
||||
;;;355 SendChar_ToUART(g_buf[i]);
|
||||
;;;356 g_buf_len = 0;
|
||||
;;;357 }
|
||||
;;;358 }
|
||||
;;;359 #else
|
||||
;;;360 SendChar_ToUART(ch);
|
||||
000002 f7fffffe BL SendChar_ToUART
|
||||
;;;361 #endif
|
||||
;;;362 }
|
||||
000006 bd00 POP {pc}
|
||||
;;;363
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.SendChar_ToUART||, CODE, READONLY, ALIGN=2
|
||||
|
||||
SendChar_ToUART PROC
|
||||
;;;315
|
||||
;;;316 void SendChar_ToUART(int ch)
|
||||
000000 4906 LDR r1,|L5.28|
|
||||
|L5.2|
|
||||
;;;317 {
|
||||
;;;318 #ifndef DISABLE_UART
|
||||
;;;319 while(DEBUG_PORT->FIFOSTS & UART_FIFOSTS_TXFULL_Msk);
|
||||
000002 698a LDR r2,[r1,#0x18]
|
||||
000004 0212 LSLS r2,r2,#8
|
||||
000006 d4fc BMI |L5.2|
|
||||
;;;320 DEBUG_PORT->DAT = ch;
|
||||
000008 6008 STR r0,[r1,#0]
|
||||
;;;321 if(ch == '\n'){
|
||||
00000a 280a CMP r0,#0xa
|
||||
00000c d104 BNE |L5.24|
|
||||
|L5.14|
|
||||
;;;322 while(DEBUG_PORT->FIFOSTS & UART_FIFOSTS_TXFULL_Msk);
|
||||
00000e 6988 LDR r0,[r1,#0x18]
|
||||
000010 0200 LSLS r0,r0,#8
|
||||
000012 d4fc BMI |L5.14|
|
||||
;;;323 DEBUG_PORT->DAT = '\r';
|
||||
000014 200d MOVS r0,#0xd
|
||||
000016 6008 STR r0,[r1,#0]
|
||||
|L5.24|
|
||||
;;;324 }
|
||||
;;;325 #endif
|
||||
;;;326 }
|
||||
000018 4770 BX lr
|
||||
;;;327
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L5.28|
|
||||
DCD 0x40050000
|
||||
|
||||
AREA ||i._ttywrch||, CODE, READONLY, ALIGN=1
|
||||
|
||||
_ttywrch PROC
|
||||
;;;443 /*---------------------------------------------------------------------------------------------------------*/
|
||||
;;;444 void _ttywrch(int ch)
|
||||
000000 b500 PUSH {lr}
|
||||
000002 f7fffffe BL SendChar_ToUART
|
||||
;;;445 {
|
||||
;;;446 SendChar(ch);
|
||||
;;;447 return;
|
||||
;;;448 }
|
||||
000006 bd00 POP {pc}
|
||||
;;;449
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.ferror||, CODE, READONLY, ALIGN=1
|
||||
|
||||
ferror PROC
|
||||
;;;460
|
||||
;;;461 int ferror(FILE *f) {
|
||||
000000 2000 MOVS r0,#0
|
||||
;;;462 return EOF;
|
||||
000002 43c0 MVNS r0,r0
|
||||
;;;463 }
|
||||
000004 4770 BX lr
|
||||
;;;464
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.fgetc||, CODE, READONLY, ALIGN=1
|
||||
|
||||
fgetc PROC
|
||||
;;;455
|
||||
;;;456 int fgetc(FILE *f) {
|
||||
000000 b500 PUSH {lr}
|
||||
;;;457 return (GetChar());
|
||||
000002 f7fffffe BL GetChar
|
||||
;;;458 }
|
||||
000006 bd00 POP {pc}
|
||||
;;;459
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.fputc||, CODE, READONLY, ALIGN=1
|
||||
|
||||
fputc PROC
|
||||
;;;449
|
||||
;;;450 int fputc(int ch, FILE *f)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;451 {
|
||||
000002 4603 MOV r3,r0
|
||||
000004 f7fffffe BL SendChar_ToUART
|
||||
;;;452 SendChar(ch);
|
||||
;;;453 return ch;
|
||||
000008 4618 MOV r0,r3
|
||||
;;;454 }
|
||||
00000a bd00 POP {pc}
|
||||
;;;455
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.kbhit||, CODE, READONLY, ALIGN=2
|
||||
|
||||
kbhit PROC
|
||||
;;;414 */
|
||||
;;;415 int kbhit(void)
|
||||
000000 4802 LDR r0,|L10.12|
|
||||
;;;416 {
|
||||
;;;417 #ifndef DISABLE_UART
|
||||
;;;418 return !(DEBUG_PORT->FIFOSTS & UART_FIFOSTS_RXEMPTY_Msk);
|
||||
000002 6980 LDR r0,[r0,#0x18]
|
||||
000004 0440 LSLS r0,r0,#17
|
||||
000006 17c0 ASRS r0,r0,#31
|
||||
000008 1c40 ADDS r0,r0,#1
|
||||
;;;419 #else
|
||||
;;;420 return(0);
|
||||
;;;421 #endif
|
||||
;;;422 }
|
||||
00000a 4770 BX lr
|
||||
;;;423
|
||||
ENDP
|
||||
|
||||
|L10.12|
|
||||
DCD 0x40050000
|
||||
|
||||
AREA ||i.stackDump||, CODE, READONLY, ALIGN=2
|
||||
|
||||
REQUIRE _printf_percent
|
||||
REQUIRE _printf_x
|
||||
REQUIRE _printf_longlong_hex
|
||||
stackDump PROC
|
||||
;;;48
|
||||
;;;49 void stackDump(uint32_t stack[])
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;50 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;51 printf("r0 = 0x%x\n", stack[r0]);
|
||||
000004 6801 LDR r1,[r0,#0]
|
||||
000006 a010 ADR r0,|L11.72|
|
||||
000008 f7fffffe BL __2printf
|
||||
;;;52 printf("r1 = 0x%x\n", stack[r1]);
|
||||
00000c a011 ADR r0,|L11.84|
|
||||
00000e 6861 LDR r1,[r4,#4]
|
||||
000010 f7fffffe BL __2printf
|
||||
;;;53 printf("r2 = 0x%x\n", stack[r2]);
|
||||
000014 a012 ADR r0,|L11.96|
|
||||
000016 68a1 LDR r1,[r4,#8]
|
||||
000018 f7fffffe BL __2printf
|
||||
;;;54 printf("r3 = 0x%x\n", stack[r3]);
|
||||
00001c a013 ADR r0,|L11.108|
|
||||
00001e 68e1 LDR r1,[r4,#0xc]
|
||||
000020 f7fffffe BL __2printf
|
||||
;;;55 printf("r12 = 0x%x\n", stack[r12]);
|
||||
000024 a014 ADR r0,|L11.120|
|
||||
000026 6921 LDR r1,[r4,#0x10]
|
||||
000028 f7fffffe BL __2printf
|
||||
;;;56 printf("lr = 0x%x\n", stack[lr]);
|
||||
00002c a015 ADR r0,|L11.132|
|
||||
00002e 6961 LDR r1,[r4,#0x14]
|
||||
000030 f7fffffe BL __2printf
|
||||
;;;57 printf("pc = 0x%x\n", stack[pc]);
|
||||
000034 a016 ADR r0,|L11.144|
|
||||
000036 69a1 LDR r1,[r4,#0x18]
|
||||
000038 f7fffffe BL __2printf
|
||||
;;;58 printf("psr = 0x%x\n", stack[psr]);
|
||||
00003c a017 ADR r0,|L11.156|
|
||||
00003e 69e1 LDR r1,[r4,#0x1c]
|
||||
000040 f7fffffe BL __2printf
|
||||
;;;59 }
|
||||
000044 bd10 POP {r4,pc}
|
||||
;;;60
|
||||
ENDP
|
||||
|
||||
000046 0000 DCW 0x0000
|
||||
|L11.72|
|
||||
000048 72302020 DCB "r0 = 0x%x\n",0
|
||||
00004c 3d203078
|
||||
000050 25780a00
|
||||
|L11.84|
|
||||
000054 72312020 DCB "r1 = 0x%x\n",0
|
||||
000058 3d203078
|
||||
00005c 25780a00
|
||||
|L11.96|
|
||||
000060 72322020 DCB "r2 = 0x%x\n",0
|
||||
000064 3d203078
|
||||
000068 25780a00
|
||||
|L11.108|
|
||||
00006c 72332020 DCB "r3 = 0x%x\n",0
|
||||
000070 3d203078
|
||||
000074 25780a00
|
||||
|L11.120|
|
||||
000078 72313220 DCB "r12 = 0x%x\n",0
|
||||
00007c 3d203078
|
||||
000080 25780a00
|
||||
|L11.132|
|
||||
000084 6c722020 DCB "lr = 0x%x\n",0
|
||||
000088 3d203078
|
||||
00008c 25780a00
|
||||
|L11.144|
|
||||
000090 70632020 DCB "pc = 0x%x\n",0
|
||||
000094 3d203078
|
||||
000098 25780a00
|
||||
|L11.156|
|
||||
00009c 70737220 DCB "psr = 0x%x\n",0
|
||||
0000a0 3d203078
|
||||
0000a4 25780a00
|
||||
|
||||
AREA ||.data||, DATA, ALIGN=2
|
||||
|
||||
__stdout
|
||||
DCD 0x00000000
|
||||
|
||||
AREA ||area_number.15||, DATA, ALIGN=2
|
||||
|
||||
EXPORTAS ||area_number.15||, ||.data||
|
||||
__stdin
|
||||
DCD 0x00000000
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\..\\Library\\StdDriver\\src\\retarget.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___10_retarget_c_8c64092a____REV16|
|
||||
#line 388 "..\\..\\..\\Library\\CMSIS\\Include\\cmsis_armcc.h"
|
||||
|__asm___10_retarget_c_8c64092a____REV16| PROC
|
||||
#line 389
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___10_retarget_c_8c64092a____REVSH|
|
||||
#line 402
|
||||
|__asm___10_retarget_c_8c64092a____REVSH| PROC
|
||||
#line 403
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.emb_text||, CODE
|
||||
THUMB
|
||||
EXPORT |HardFault_Handler|
|
||||
#line 289 "..\\..\\..\\Library\\StdDriver\\src\\retarget.c"
|
||||
|HardFault_Handler| PROC
|
||||
#line 290
|
||||
|
||||
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 ***
|
||||
Reference in New Issue
Block a user