From 6b71f42d3c66ccf11bab58786127abdfa7eeb722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E9=97=BB=E9=A3=8E?= <53944749+wuwenfengmi1998@users.noreply.github.com> Date: Mon, 15 Mar 2021 21:52:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E6=88=90=E4=BA=86=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E5=AD=97=E8=8A=82=E4=B8=A4=E4=B8=AA=E5=AD=97=E8=8A=82=E7=9A=84?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=EF=BC=8C=E5=B9=B6=E4=B8=94=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E4=BA=86=E5=8D=95=E5=90=91=E6=BB=A1=E9=A1=B5=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 无闻风 <53944749+wuwenfengmi1998@users.noreply.github.com> --- 103ze/Debug/103ze_code.bin | Bin 30240 -> 30248 bytes 103ze/Debug/103ze_code.elf | Bin 1021956 -> 1022120 bytes 103ze/Debug/103ze_code.list | 7573 ++++++++++++++++++----------------- 103ze/Debug/103ze_code.map | 397 +- 103ze/Debug/mycode/c.o | Bin 805712 -> 805948 bytes 103ze/Debug/mycode/c.su | 2 +- 103ze/mycode/c.c | 57 +- 7 files changed, 4021 insertions(+), 4008 deletions(-) diff --git a/103ze/Debug/103ze_code.bin b/103ze/Debug/103ze_code.bin index 680542d7c5af17f07a6234df77e8cea74d9662b7..5e8ce8aefed1ef4f61fd894920aee02be26dde45 100644 GIT binary patch delta 1099 zcmaKse`r%z6vxkbNqkprX8jSGu0BlOv(u43)P=sH{ijZ-O@>5kT3hNLsrHwx8?CWW z_D=(XI+%Z5(XN)^He?%2W4XlQL^}T{{l{&Mf{-z=qGbpzMs54j{8&6M8jv#f;B(J8 z-+SJ<_nympSLg7jIlO6=lxHV^v6$tviZP4NQXhQ{5q1~o`5M6WjJu_3JR@49avR>~ zVYz?xH`%6=Aau+6G6V^sz5JlDMmS}brSNs)@lXL^3GG1p@BpwPqoSqFkk+@8^aWvlrekfudPG~hhK)}; zfGraJEBG(X(gm!t6WAl6RY=0m` JXV0%|-vA=6ke2`e delta 1129 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 delta 11050 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: 8000208: b508 push {r3, lr} @@ -74,7 +74,7 @@ Disassembly of section .text: 8000216: bd08 pop {r3, pc} 8000218: 00000000 .word 0x00000000 800021c: 2000008c .word 0x2000008c - 8000220: 080069e0 .word 0x080069e0 + 8000220: 080069e4 .word 0x080069e4 08000224
: /** @@ -138,7 +138,7 @@ void SystemClock_Config(void) 8000250: 2228 movs r2, #40 ; 0x28 8000252: 2100 movs r1, #0 8000254: 4618 mov r0, r3 - 8000256: f005 ff81 bl 800615c + 8000256: f005 ff83 bl 8006160 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 800025a: 1d3b adds r3, r7, #4 800025c: 2200 movs r2, #0 @@ -1157,7 +1157,7 @@ void *_sbrk(ptrdiff_t incr) 800076e: d207 bcs.n 8000780 <_sbrk+0x40> { errno = ENOMEM; - 8000770: f005 fcca bl 8006108 <__errno> + 8000770: f005 fccc bl 800610c <__errno> 8000774: 4603 mov r3, r0 8000776: 220c movs r2, #12 8000778: 601a str r2, [r3, #0] @@ -1274,14 +1274,14 @@ LoopFillZerobss: 80007de: f7ff ffe5 bl 80007ac /* Call static constructors */ bl __libc_init_array - 80007e2: f005 fc97 bl 8006114 <__libc_init_array> + 80007e2: f005 fc99 bl 8006118 <__libc_init_array> /* Call the application's entry point.*/ bl main 80007e6: f7ff fd1d bl 8000224
bx lr 80007ea: 4770 bx lr ldr r3, =_sidata - 80007ec: 08007598 .word 0x08007598 + 80007ec: 080075a0 .word 0x080075a0 ldr r0, =_sdata 80007f0: 20000000 .word 0x20000000 ldr r3, =_edata @@ -3650,7 +3650,7 @@ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK 800151e: bf00 nop 8001520: 40022000 .word 0x40022000 8001524: 40021000 .word 0x40021000 - 8001528: 08006a68 .word 0x08006a68 + 8001528: 08006a70 .word 0x08006a70 800152c: 20000000 .word 0x20000000 8001530: 20000004 .word 0x20000004 @@ -3798,7 +3798,7 @@ uint32_t HAL_RCC_GetSysClockFreq(void) 80015de: bc90 pop {r4, r7} 80015e0: 4770 bx lr 80015e2: bf00 nop - 80015e4: 080069f8 .word 0x080069f8 + 80015e4: 080069fc .word 0x080069fc 80015e8: 40021000 .word 0x40021000 80015ec: 007a1200 .word 0x007a1200 80015f0: 003d0900 .word 0x003d0900 @@ -6269,7 +6269,7 @@ DSTATUS USER_initialize ( Stat = SD_disk_initialize(pdrv); 80023a6: 79fb ldrb r3, [r7, #7] 80023a8: 4618 mov r0, r3 - 80023aa: f002 fce7 bl 8004d7c + 80023aa: f002 fce9 bl 8004d80 80023ae: 4603 mov r3, r0 80023b0: 461a mov r2, r3 80023b2: 4b04 ldr r3, [pc, #16] ; (80023c4 ) @@ -6302,7 +6302,7 @@ DSTATUS USER_status ( Stat = SD_disk_status (pdrv); 80023d2: 79fb ldrb r3, [r7, #7] 80023d4: 4618 mov r0, r3 - 80023d6: f002 fdc5 bl 8004f64 + 80023d6: f002 fdc7 bl 8004f68 80023da: 4603 mov r3, r0 80023dc: 461a mov r2, r3 80023de: 4b04 ldr r3, [pc, #16] ; (80023f0 ) @@ -6340,7 +6340,7 @@ DSTATUS USER_status ( 8002406: 683b ldr r3, [r7, #0] 8002408: 687a ldr r2, [r7, #4] 800240a: 68b9 ldr r1, [r7, #8] - 800240c: f002 fdbe bl 8004f8c + 800240c: f002 fdc0 bl 8004f90 8002410: 4603 mov r3, r0 /* USER CODE END READ */ } @@ -6371,7 +6371,7 @@ DSTATUS USER_status ( 800242c: 683b ldr r3, [r7, #0] 800242e: 687a ldr r2, [r7, #4] 8002430: 68b9 ldr r1, [r7, #8] - 8002432: f002 fe15 bl 8005060 + 8002432: f002 fe17 bl 8005064 8002436: 4603 mov r3, r0 /* USER CODE END WRITE */ } @@ -6401,7 +6401,7 @@ DRESULT USER_ioctl ( 8002452: 79fb ldrb r3, [r7, #7] 8002454: 683a ldr r2, [r7, #0] 8002456: 4618 mov r0, r3 - 8002458: f002 fe86 bl 8005168 + 8002458: f002 fe88 bl 800516c 800245c: 4603 mov r3, r0 800245e: 73fb strb r3, [r7, #15] return res; @@ -9371,8 +9371,8 @@ FRESULT create_name ( 8003726: 3720 adds r7, #32 8003728: 46bd mov sp, r7 800372a: bd80 pop {r7, pc} - 800372c: 08006a78 .word 0x08006a78 - 8003730: 08006a08 .word 0x08006a08 + 800372c: 08006a80 .word 0x08006a80 + 8003730: 08006a0c .word 0x08006a0c 08003734 : static @@ -11656,5009 +11656,5016 @@ uint8_t FATFS_LinkDriver(Diskio_drvTypeDef *drv, char *path) ... 08004798 : -FATFS SD; - -#define fuck 256 +#define text_size 16 +#define max_page_y 14 +#define max_page_x 20 int my_main() { 8004798: b580 push {r7, lr} - 800479a: f5ad 6d8b sub.w sp, sp, #1112 ; 0x458 + 800479a: f5ad 6dd6 sub.w sp, sp, #1712 ; 0x6b0 800479e: af04 add r7, sp, #16 uint8_t res; FIL fil; char fil_buff[fuck+1]={0}; - 80047a0: f507 7384 add.w r3, r7, #264 ; 0x108 + 80047a0: f507 7359 add.w r3, r7, #868 ; 0x364 80047a4: 2200 movs r2, #0 80047a6: 601a str r2, [r3, #0] 80047a8: 3304 adds r3, #4 80047aa: 22fd movs r2, #253 ; 0xfd 80047ac: 2100 movs r1, #0 80047ae: 4618 mov r0, r3 - 80047b0: f001 fcd4 bl 800615c + 80047b0: f001 fcd6 bl 8006160 char fuck_flag=0; 80047b4: 2300 movs r3, #0 - 80047b6: f887 3447 strb.w r3, [r7, #1095] ; 0x447 + 80047b6: f887 3697 strb.w r3, [r7, #1687] ; 0x697 char fuck_buff; uint16_t br=0; - 80047ba: f507 7383 add.w r3, r7, #262 ; 0x106 + 80047ba: f207 3362 addw r3, r7, #866 ; 0x362 80047be: 2200 movs r2, #0 80047c0: 801a strh r2, [r3, #0] char str[fuck+1]={0}; - 80047c2: 1d3b adds r3, r7, #4 - 80047c4: 2200 movs r2, #0 - 80047c6: 601a str r2, [r3, #0] - 80047c8: 3304 adds r3, #4 - 80047ca: 22fd movs r2, #253 ; 0xfd - 80047cc: 2100 movs r1, #0 - 80047ce: 4618 mov r0, r3 - 80047d0: f001 fcc4 bl 800615c + 80047c2: f507 7318 add.w r3, r7, #608 ; 0x260 + 80047c6: 2200 movs r2, #0 + 80047c8: 601a str r2, [r3, #0] + 80047ca: 3304 adds r3, #4 + 80047cc: 22fd movs r2, #253 ; 0xfd + 80047ce: 2100 movs r1, #0 + 80047d0: 4618 mov r0, r3 + 80047d2: f001 fcc5 bl 8006160 + + char dis_text_buff[600]; + uint16_t page_num=0; + 80047d6: 2300 movs r3, #0 + 80047d8: f8a7 369e strh.w r3, [r7, #1694] ; 0x69e + char text_buff[2]; + uint16_t data_num=0; + 80047dc: 2300 movs r3, #0 + 80047de: f8a7 369c strh.w r3, [r7, #1692] ; 0x69c + uint16_t page_y=0; + 80047e2: 2300 movs r3, #0 + 80047e4: f8a7 369a strh.w r3, [r7, #1690] ; 0x69a + uint16_t page_x=0; + 80047e8: 2300 movs r3, #0 + 80047ea: f8a7 3698 strh.w r3, [r7, #1688] ; 0x698 + LCD_BL(0); - 80047d4: 2200 movs r2, #0 - 80047d6: 2101 movs r1, #1 - 80047d8: 4865 ldr r0, [pc, #404] ; (8004970 ) - 80047da: f7fc fb28 bl 8000e2e + 80047ee: 2200 movs r2, #0 + 80047f0: 2101 movs r1, #1 + 80047f2: 4860 ldr r0, [pc, #384] ; (8004974 ) + 80047f4: f7fc fb1b bl 8000e2e LCDx_Init(); - 80047de: f001 f871 bl 80058c4 + 80047f8: f001 f866 bl 80058c8 LCD_Clear(GRAY); - 80047e2: f248 4030 movw r0, #33840 ; 0x8430 - 80047e6: f001 fa13 bl 8005c10 + 80047fc: f248 4030 movw r0, #33840 ; 0x8430 + 8004800: f001 fa08 bl 8005c14 if(font_init()) - 80047ea: f001 fa63 bl 8005cb4 - 80047ee: 4603 mov r3, r0 - 80047f0: 2b00 cmp r3, #0 - 80047f2: d00c beq.n 800480e + 8004804: f001 fa58 bl 8005cb8 + 8004808: 4603 mov r3, r0 + 800480a: 2b00 cmp r3, #0 + 800480c: d00c beq.n 8004828 { LCD_ShowString(0,16,(uint8_t *)"erro",16,RED,BLUE,64); - 80047f4: 2340 movs r3, #64 ; 0x40 - 80047f6: 9302 str r3, [sp, #8] - 80047f8: 231f movs r3, #31 - 80047fa: 9301 str r3, [sp, #4] - 80047fc: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8004800: 9300 str r3, [sp, #0] - 8004802: 2310 movs r3, #16 - 8004804: 4a5b ldr r2, [pc, #364] ; (8004974 ) - 8004806: 2110 movs r1, #16 - 8004808: 2000 movs r0, #0 - 800480a: f001 fc0b bl 8006024 + 800480e: 2340 movs r3, #64 ; 0x40 + 8004810: 9302 str r3, [sp, #8] + 8004812: 231f movs r3, #31 + 8004814: 9301 str r3, [sp, #4] + 8004816: f44f 4378 mov.w r3, #63488 ; 0xf800 + 800481a: 9300 str r3, [sp, #0] + 800481c: 2310 movs r3, #16 + 800481e: 4a56 ldr r2, [pc, #344] ; (8004978 ) + 8004820: 2110 movs r1, #16 + 8004822: 2000 movs r0, #0 + 8004824: f001 fc00 bl 8006028 } f_mount(&SD,"0:",1); - 800480e: 2201 movs r2, #1 - 8004810: 4959 ldr r1, [pc, #356] ; (8004978 ) - 8004812: 485a ldr r0, [pc, #360] ; (800497c ) - 8004814: f7ff fba8 bl 8003f68 + 8004828: 2201 movs r2, #1 + 800482a: 4954 ldr r1, [pc, #336] ; (800497c ) + 800482c: 4854 ldr r0, [pc, #336] ; (8004980 ) + 800482e: f7ff fb9b bl 8003f68 res=f_open(&fil,"0:/demo.txt",FA_READ); - 8004818: f507 7303 add.w r3, r7, #524 ; 0x20c - 800481c: 2201 movs r2, #1 - 800481e: 4958 ldr r1, [pc, #352] ; (8004980 ) - 8004820: 4618 mov r0, r3 - 8004822: f7ff fbe9 bl 8003ff8 - 8004826: 4603 mov r3, r0 - 8004828: f887 343b strb.w r3, [r7, #1083] ; 0x43b + 8004832: f507 638d add.w r3, r7, #1128 ; 0x468 + 8004836: 2201 movs r2, #1 + 8004838: 4952 ldr r1, [pc, #328] ; (8004984 ) + 800483a: 4618 mov r0, r3 + 800483c: f7ff fbdc bl 8003ff8 + 8004840: 4603 mov r3, r0 + 8004842: f887 3696 strb.w r3, [r7, #1686] ; 0x696 LCD_ShowString(0,100,"163165sdf°¢¶û·¨",12,RED,BLUE); */ while(1) { if(KEY_UP==0) - 800482c: 2104 movs r1, #4 - 800482e: 4855 ldr r0, [pc, #340] ; (8004984 ) - 8004830: f7fc fae6 bl 8000e00 - 8004834: 4603 mov r3, r0 - 8004836: 2b00 cmp r3, #0 - 8004838: d1f8 bne.n 800482c + 8004846: 2104 movs r1, #4 + 8004848: 484f ldr r0, [pc, #316] ; (8004988 ) + 800484a: f7fc fad9 bl 8000e00 + 800484e: 4603 mov r3, r0 + 8004850: 2b00 cmp r3, #0 + 8004852: d1f8 bne.n 8004846 { HAL_Delay(10); - 800483a: 200a movs r0, #10 - 800483c: f7fc f844 bl 80008c8 + 8004854: 200a movs r0, #10 + 8004856: f7fc f837 bl 80008c8 while(KEY_UP==0); - 8004840: bf00 nop - 8004842: 2104 movs r1, #4 - 8004844: 484f ldr r0, [pc, #316] ; (8004984 ) - 8004846: f7fc fadb bl 8000e00 - 800484a: 4603 mov r3, r0 - 800484c: 2b00 cmp r3, #0 - 800484e: d0f8 beq.n 8004842 + 800485a: bf00 nop + 800485c: 2104 movs r1, #4 + 800485e: 484a ldr r0, [pc, #296] ; (8004988 ) + 8004860: f7fc face bl 8000e00 + 8004864: 4603 mov r3, r0 + 8004866: 2b00 cmp r3, #0 + 8004868: d0f8 beq.n 800485c LCD_Clear(WHITE); - 8004850: f64f 70ff movw r0, #65535 ; 0xffff - 8004854: f001 f9dc bl 8005c10 - for(int a=0;a + 800486a: f64f 70ff movw r0, #65535 ; 0xffff + 800486e: f001 f9d1 bl 8005c14 + page_num++; + 8004872: f8b7 369e ldrh.w r3, [r7, #1694] ; 0x69e + 8004876: 3301 adds r3, #1 + 8004878: f8a7 369e strh.w r3, [r7, #1694] ; 0x69e + data_num=0;; + 800487c: 2300 movs r3, #0 + 800487e: f8a7 369c strh.w r3, [r7, #1692] ; 0x69c + for(page_y=0;page_y { - fil_buff[a]=0; - 8004860: f507 7284 add.w r2, r7, #264 ; 0x108 - 8004864: f8d7 3440 ldr.w r3, [r7, #1088] ; 0x440 - 8004868: 4413 add r3, r2 - 800486a: 2200 movs r2, #0 - 800486c: 701a strb r2, [r3, #0] - str[a]=0; - 800486e: 1d3a adds r2, r7, #4 - 8004870: f8d7 3440 ldr.w r3, [r7, #1088] ; 0x440 - 8004874: 4413 add r3, r2 - 8004876: 2200 movs r2, #0 - 8004878: 701a strb r2, [r3, #0] - for(int a=0;a - } - - if(fuck_flag==1) - 800488e: f897 3447 ldrb.w r3, [r7, #1095] ; 0x447 - 8004892: 2b01 cmp r3, #1 - 8004894: d12d bne.n 80048f2 - { - fuck_flag=0; - 8004896: 2300 movs r3, #0 - 8004898: f887 3447 strb.w r3, [r7, #1095] ; 0x447 - res=f_read(&fil,fil_buff,fuck-1,(UINT*)&br); - 800489c: f507 7383 add.w r3, r7, #262 ; 0x106 - 80048a0: f507 7184 add.w r1, r7, #264 ; 0x108 - 80048a4: f507 7003 add.w r0, r7, #524 ; 0x20c - 80048a8: 22ff movs r2, #255 ; 0xff - 80048aa: f7ff fdb0 bl 800440e - 80048ae: 4603 mov r3, r0 - 80048b0: f887 343b strb.w r3, [r7, #1083] ; 0x43b - for(int a=fuck-2;a>0;a--) - 80048b4: 23fe movs r3, #254 ; 0xfe - 80048b6: f8c7 343c str.w r3, [r7, #1084] ; 0x43c - 80048ba: e010 b.n 80048de + for(page_x=0;page_x { - fil_buff[a+1]=fil_buff[a]; - 80048bc: f8d7 343c ldr.w r3, [r7, #1084] ; 0x43c - 80048c0: 3301 adds r3, #1 - 80048c2: f507 7184 add.w r1, r7, #264 ; 0x108 - 80048c6: f8d7 243c ldr.w r2, [r7, #1084] ; 0x43c - 80048ca: 440a add r2, r1 - 80048cc: 7811 ldrb r1, [r2, #0] - 80048ce: f507 7284 add.w r2, r7, #264 ; 0x108 - 80048d2: 54d1 strb r1, [r2, r3] - for(int a=fuck-2;a>0;a--) - 80048d4: f8d7 343c ldr.w r3, [r7, #1084] ; 0x43c - 80048d8: 3b01 subs r3, #1 - 80048da: f8c7 343c str.w r3, [r7, #1084] ; 0x43c - 80048de: f8d7 343c ldr.w r3, [r7, #1084] ; 0x43c - 80048e2: 2b00 cmp r3, #0 - 80048e4: dcea bgt.n 80048bc + f_read(&fil,text_buff,2,(UINT*)&br); + 8004892: f207 3362 addw r3, r7, #866 ; 0x362 + 8004896: 1d39 adds r1, r7, #4 + 8004898: f507 608d add.w r0, r7, #1128 ; 0x468 + 800489c: 2202 movs r2, #2 + 800489e: f7ff fdb6 bl 800440e + dis_text_buff[data_num]=text_buff[0]; + 80048a2: f8b7 369c ldrh.w r3, [r7, #1692] ; 0x69c + 80048a6: 1d3a adds r2, r7, #4 + 80048a8: 7811 ldrb r1, [r2, #0] + 80048aa: f107 0208 add.w r2, r7, #8 + 80048ae: 54d1 strb r1, [r2, r3] + dis_text_buff[data_num+1]=text_buff[1]; + 80048b0: f8b7 369c ldrh.w r3, [r7, #1692] ; 0x69c + 80048b4: 3301 adds r3, #1 + 80048b6: 1d3a adds r2, r7, #4 + 80048b8: 7851 ldrb r1, [r2, #1] + 80048ba: f107 0208 add.w r2, r7, #8 + 80048be: 54d1 strb r1, [r2, r3] + data_num+=2; + 80048c0: f8b7 369c ldrh.w r3, [r7, #1692] ; 0x69c + 80048c4: 3302 adds r3, #2 + 80048c6: f8a7 369c strh.w r3, [r7, #1692] ; 0x69c + + if((text_buff[0]=='\n')||(text_buff[1]=='\n')) + 80048ca: 1d3b adds r3, r7, #4 + 80048cc: 781b ldrb r3, [r3, #0] + 80048ce: 2b0a cmp r3, #10 + 80048d0: d00c beq.n 80048ec + 80048d2: 1d3b adds r3, r7, #4 + 80048d4: 785b ldrb r3, [r3, #1] + 80048d6: 2b0a cmp r3, #10 + 80048d8: d008 beq.n 80048ec + for(page_x=0;page_x + for(page_y=0;page_y + break; + + } } - fil_buff[0]=fuck_buff; - 80048e6: f507 7384 add.w r3, r7, #264 ; 0x108 - 80048ea: f897 2446 ldrb.w r2, [r7, #1094] ; 0x446 - 80048ee: 701a strb r2, [r3, #0] - 80048f0: e00c b.n 800490c - - }else - { - res=f_read(&fil,fil_buff,fuck,(UINT*)&br); - 80048f2: f507 7383 add.w r3, r7, #262 ; 0x106 - 80048f6: f507 7184 add.w r1, r7, #264 ; 0x108 - 80048fa: f507 7003 add.w r0, r7, #524 ; 0x20c - 80048fe: f44f 7280 mov.w r2, #256 ; 0x100 - 8004902: f7ff fd84 bl 800440e - 8004906: 4603 mov r3, r0 - 8004908: f887 343b strb.w r3, [r7, #1083] ; 0x43b } + dis_text_buff[data_num]='\0'; + 80048fe: f8b7 369c ldrh.w r3, [r7, #1692] ; 0x69c + 8004902: f107 0208 add.w r2, r7, #8 + 8004906: 2100 movs r1, #0 + 8004908: 54d1 strb r1, [r2, r3] + dis_text_buff[data_num+1]='\0'; + 800490a: f8b7 369c ldrh.w r3, [r7, #1692] ; 0x69c + 800490e: 3301 adds r3, #1 + 8004910: f107 0208 add.w r2, r7, #8 + 8004914: 2100 movs r1, #0 + 8004916: 54d1 strb r1, [r2, r3] + dis_text_buff[data_num+2]='\0'; + 8004918: f8b7 369c ldrh.w r3, [r7, #1692] ; 0x69c + 800491c: 3302 adds r3, #2 + 800491e: f107 0208 add.w r2, r7, #8 + 8004922: 2100 movs r1, #0 + 8004924: 54d1 strb r1, [r2, r3] + LCD_ShowString(0,0,dis_text_buff,16,WHITE,BLACK,data_num); + 8004926: f107 0208 add.w r2, r7, #8 + 800492a: f8b7 369c ldrh.w r3, [r7, #1692] ; 0x69c + 800492e: 9302 str r3, [sp, #8] + 8004930: 2300 movs r3, #0 + 8004932: 9301 str r3, [sp, #4] + 8004934: f64f 73ff movw r3, #65535 ; 0xffff + 8004938: 9300 str r3, [sp, #0] + 800493a: 2310 movs r3, #16 + 800493c: 2100 movs r1, #0 + 800493e: 2000 movs r0, #0 + 8004940: f001 fb72 bl 8006028 - if((fil_buff[fuck-1]>127)&&(fil_buff[fuck-2]<128)) - 800490c: f507 7384 add.w r3, r7, #264 ; 0x108 - 8004910: f893 30ff ldrb.w r3, [r3, #255] ; 0xff - 8004914: b25b sxtb r3, r3 - 8004916: 2b00 cmp r3, #0 - 8004918: da14 bge.n 8004944 - 800491a: f507 7384 add.w r3, r7, #264 ; 0x108 - 800491e: f893 30fe ldrb.w r3, [r3, #254] ; 0xfe - 8004922: b25b sxtb r3, r3 - 8004924: 2b00 cmp r3, #0 - 8004926: db0d blt.n 8004944 - { - fuck_buff=fil_buff[fuck-1]; - 8004928: f507 7384 add.w r3, r7, #264 ; 0x108 - 800492c: f893 30ff ldrb.w r3, [r3, #255] ; 0xff - 8004930: f887 3446 strb.w r3, [r7, #1094] ; 0x446 - fil_buff[fuck-1]='\0'; - 8004934: f507 7384 add.w r3, r7, #264 ; 0x108 - 8004938: 2200 movs r2, #0 - 800493a: f883 20ff strb.w r2, [r3, #255] ; 0xff - fuck_flag=1; - 800493e: 2301 movs r3, #1 - 8004940: f887 3447 strb.w r3, [r7, #1095] ; 0x447 - - } - - sprintf(str,"%s\0",fil_buff); - 8004944: f507 7284 add.w r2, r7, #264 ; 0x108 - 8004948: 1d3b adds r3, r7, #4 - 800494a: 490f ldr r1, [pc, #60] ; (8004988 ) - 800494c: 4618 mov r0, r3 - 800494e: f001 fc0d bl 800616c - LCD_ShowString(0,0,str,16,WHITE,BLACK,fuck); - 8004952: 1d3a adds r2, r7, #4 - 8004954: f44f 7380 mov.w r3, #256 ; 0x100 - 8004958: 9302 str r3, [sp, #8] - 800495a: 2300 movs r3, #0 - 800495c: 9301 str r3, [sp, #4] - 800495e: f64f 73ff movw r3, #65535 ; 0xffff - 8004962: 9300 str r3, [sp, #0] - 8004964: 2310 movs r3, #16 - 8004966: 2100 movs r1, #0 - 8004968: 2000 movs r0, #0 - 800496a: f001 fb5b bl 8006024 + sprintf(str,"µÚ%dÒ³",page_num); + 8004944: f8b7 269e ldrh.w r2, [r7, #1694] ; 0x69e + 8004948: f507 7318 add.w r3, r7, #608 ; 0x260 + 800494c: 490f ldr r1, [pc, #60] ; (800498c ) + 800494e: 4618 mov r0, r3 + 8004950: f001 fc0e bl 8006170 + LCD_ShowString(0,14*16,str,16,RED,BLACK,fuck); + 8004954: f507 7218 add.w r2, r7, #608 ; 0x260 + 8004958: f44f 7380 mov.w r3, #256 ; 0x100 + 800495c: 9302 str r3, [sp, #8] + 800495e: 2300 movs r3, #0 + 8004960: 9301 str r3, [sp, #4] + 8004962: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8004966: 9300 str r3, [sp, #0] + 8004968: 2310 movs r3, #16 + 800496a: 21e0 movs r1, #224 ; 0xe0 + 800496c: 2000 movs r0, #0 + 800496e: f001 fb5b bl 8006028 if(KEY_UP==0) - 800496e: e75d b.n 800482c - 8004970: 40010c00 .word 0x40010c00 - 8004974: 08006a4c .word 0x08006a4c - 8004978: 08006a54 .word 0x08006a54 - 800497c: 200005ec .word 0x200005ec - 8004980: 08006a58 .word 0x08006a58 - 8004984: 40011800 .word 0x40011800 - 8004988: 08006a64 .word 0x08006a64 + 8004972: e768 b.n 8004846 + 8004974: 40010c00 .word 0x40010c00 + 8004978: 08006a50 .word 0x08006a50 + 800497c: 08006a58 .word 0x08006a58 + 8004980: 200005ec .word 0x200005ec + 8004984: 08006a5c .word 0x08006a5c + 8004988: 40011800 .word 0x40011800 + 800498c: 08006a68 .word 0x08006a68 -0800498c : +08004990 : //ReadAddr:¿ªÊ¼¶ÁÈ¡µÄµØÖ·(24bit) //NumByteToRead:Òª¶ÁÈ¡µÄ×Ö½ÚÊý(×î´ó65535) void W25QXX_Read(uint8_t* pBuffer,uint32_t ReadAddr,uint16_t NumByteToRead) { - 800498c: b580 push {r7, lr} - 800498e: b086 sub sp, #24 - 8004990: af00 add r7, sp, #0 - 8004992: 60f8 str r0, [r7, #12] - 8004994: 60b9 str r1, [r7, #8] - 8004996: 4613 mov r3, r2 - 8004998: 80fb strh r3, [r7, #6] + 8004990: b580 push {r7, lr} + 8004992: b086 sub sp, #24 + 8004994: af00 add r7, sp, #0 + 8004996: 60f8 str r0, [r7, #12] + 8004998: 60b9 str r1, [r7, #8] + 800499a: 4613 mov r3, r2 + 800499c: 80fb strh r3, [r7, #6] unsigned char buff[4]; HAL_GPIO_WritePin(FLASH_E_GPIO_Port,FLASH_E_Pin,0); - 800499a: 2200 movs r2, #0 - 800499c: f44f 5180 mov.w r1, #4096 ; 0x1000 - 80049a0: 4813 ldr r0, [pc, #76] ; (80049f0 ) - 80049a2: f7fc fa44 bl 8000e2e + 800499e: 2200 movs r2, #0 + 80049a0: f44f 5180 mov.w r1, #4096 ; 0x1000 + 80049a4: 4813 ldr r0, [pc, #76] ; (80049f4 ) + 80049a6: f7fc fa42 bl 8000e2e buff[0]=W25X_ReadData; - 80049a6: 2303 movs r3, #3 - 80049a8: 753b strb r3, [r7, #20] + 80049aa: 2303 movs r3, #3 + 80049ac: 753b strb r3, [r7, #20] buff[1]=(uint8_t)((ReadAddr)>>16); - 80049aa: 68bb ldr r3, [r7, #8] - 80049ac: 0c1b lsrs r3, r3, #16 - 80049ae: b2db uxtb r3, r3 - 80049b0: 757b strb r3, [r7, #21] + 80049ae: 68bb ldr r3, [r7, #8] + 80049b0: 0c1b lsrs r3, r3, #16 + 80049b2: b2db uxtb r3, r3 + 80049b4: 757b strb r3, [r7, #21] buff[2]=(uint8_t)((ReadAddr)>>8); - 80049b2: 68bb ldr r3, [r7, #8] - 80049b4: 0a1b lsrs r3, r3, #8 - 80049b6: b2db uxtb r3, r3 - 80049b8: 75bb strb r3, [r7, #22] + 80049b6: 68bb ldr r3, [r7, #8] + 80049b8: 0a1b lsrs r3, r3, #8 + 80049ba: b2db uxtb r3, r3 + 80049bc: 75bb strb r3, [r7, #22] buff[3]=(uint8_t)ReadAddr; - 80049ba: 68bb ldr r3, [r7, #8] - 80049bc: b2db uxtb r3, r3 - 80049be: 75fb strb r3, [r7, #23] + 80049be: 68bb ldr r3, [r7, #8] + 80049c0: b2db uxtb r3, r3 + 80049c2: 75fb strb r3, [r7, #23] HAL_SPI_Transmit(&hspi2,buff,4,100); //·¢ËͶÁÈ¡ÃüÁî - 80049c0: f107 0114 add.w r1, r7, #20 - 80049c4: 2364 movs r3, #100 ; 0x64 - 80049c6: 2204 movs r2, #4 - 80049c8: 480a ldr r0, [pc, #40] ; (80049f4 ) - 80049ca: f7fc feb5 bl 8001738 + 80049c4: f107 0114 add.w r1, r7, #20 + 80049c8: 2364 movs r3, #100 ; 0x64 + 80049ca: 2204 movs r2, #4 + 80049cc: 480a ldr r0, [pc, #40] ; (80049f8 ) + 80049ce: f7fc feb3 bl 8001738 HAL_SPI_Receive(&hspi2,pBuffer,NumByteToRead,100); - 80049ce: 88fa ldrh r2, [r7, #6] - 80049d0: 2364 movs r3, #100 ; 0x64 - 80049d2: 68f9 ldr r1, [r7, #12] - 80049d4: 4807 ldr r0, [pc, #28] ; (80049f4 ) - 80049d6: f7fc ffeb bl 80019b0 + 80049d2: 88fa ldrh r2, [r7, #6] + 80049d4: 2364 movs r3, #100 ; 0x64 + 80049d6: 68f9 ldr r1, [r7, #12] + 80049d8: 4807 ldr r0, [pc, #28] ; (80049f8 ) + 80049da: f7fc ffe9 bl 80019b0 HAL_GPIO_WritePin(FLASH_E_GPIO_Port,FLASH_E_Pin,1); - 80049da: 2201 movs r2, #1 - 80049dc: f44f 5180 mov.w r1, #4096 ; 0x1000 - 80049e0: 4803 ldr r0, [pc, #12] ; (80049f0 ) - 80049e2: f7fc fa24 bl 8000e2e + 80049de: 2201 movs r2, #1 + 80049e0: f44f 5180 mov.w r1, #4096 ; 0x1000 + 80049e4: 4803 ldr r0, [pc, #12] ; (80049f4 ) + 80049e6: f7fc fa22 bl 8000e2e } - 80049e6: bf00 nop - 80049e8: 3718 adds r7, #24 - 80049ea: 46bd mov sp, r7 - 80049ec: bd80 pop {r7, pc} - 80049ee: bf00 nop - 80049f0: 40010c00 .word 0x40010c00 - 80049f4: 200000e4 .word 0x200000e4 + 80049ea: bf00 nop + 80049ec: 3718 adds r7, #24 + 80049ee: 46bd mov sp, r7 + 80049f0: bd80 pop {r7, pc} + 80049f2: bf00 nop + 80049f4: 40010c00 .word 0x40010c00 + 80049f8: 200000e4 .word 0x200000e4 -080049f8 : } /* SPI Chip Select */ static void SELECT(void) { - 80049f8: b580 push {r7, lr} - 80049fa: af00 add r7, sp, #0 + 80049fc: b580 push {r7, lr} + 80049fe: af00 add r7, sp, #0 HAL_GPIO_WritePin(SD_CS_GPIO_Port, SD_CS_Pin, GPIO_PIN_RESET); - 80049fc: 2200 movs r2, #0 - 80049fe: 2104 movs r1, #4 - 8004a00: 4802 ldr r0, [pc, #8] ; (8004a0c ) - 8004a02: f7fc fa14 bl 8000e2e + 8004a00: 2200 movs r2, #0 + 8004a02: 2104 movs r1, #4 + 8004a04: 4802 ldr r0, [pc, #8] ; (8004a10 ) + 8004a06: f7fc fa12 bl 8000e2e } - 8004a06: bf00 nop - 8004a08: bd80 pop {r7, pc} 8004a0a: bf00 nop - 8004a0c: 40011400 .word 0x40011400 + 8004a0c: bd80 pop {r7, pc} + 8004a0e: bf00 nop + 8004a10: 40011400 .word 0x40011400 -08004a10 : +08004a14 : /* SPI Chip Deselect */ static void DESELECT(void) { - 8004a10: b580 push {r7, lr} - 8004a12: af00 add r7, sp, #0 + 8004a14: b580 push {r7, lr} + 8004a16: af00 add r7, sp, #0 HAL_GPIO_WritePin(SD_CS_GPIO_Port, SD_CS_Pin, GPIO_PIN_SET); - 8004a14: 2201 movs r2, #1 - 8004a16: 2104 movs r1, #4 - 8004a18: 4802 ldr r0, [pc, #8] ; (8004a24 ) - 8004a1a: f7fc fa08 bl 8000e2e + 8004a18: 2201 movs r2, #1 + 8004a1a: 2104 movs r1, #4 + 8004a1c: 4802 ldr r0, [pc, #8] ; (8004a28 ) + 8004a1e: f7fc fa06 bl 8000e2e } - 8004a1e: bf00 nop - 8004a20: bd80 pop {r7, pc} 8004a22: bf00 nop - 8004a24: 40011400 .word 0x40011400 + 8004a24: bd80 pop {r7, pc} + 8004a26: bf00 nop + 8004a28: 40011400 .word 0x40011400 -08004a28 : +08004a2c : static void SPI_TxByte(BYTE data) { - 8004a28: b580 push {r7, lr} - 8004a2a: b082 sub sp, #8 - 8004a2c: af00 add r7, sp, #0 - 8004a2e: 4603 mov r3, r0 - 8004a30: 71fb strb r3, [r7, #7] + 8004a2c: b580 push {r7, lr} + 8004a2e: b082 sub sp, #8 + 8004a30: af00 add r7, sp, #0 + 8004a32: 4603 mov r3, r0 + 8004a34: 71fb strb r3, [r7, #7] while (HAL_SPI_GetState(&hspi2) != HAL_SPI_STATE_READY); - 8004a32: bf00 nop - 8004a34: 4808 ldr r0, [pc, #32] ; (8004a58 ) - 8004a36: f7fd fa6e bl 8001f16 - 8004a3a: 4603 mov r3, r0 - 8004a3c: 2b01 cmp r3, #1 - 8004a3e: d1f9 bne.n 8004a34 + 8004a36: bf00 nop + 8004a38: 4808 ldr r0, [pc, #32] ; (8004a5c ) + 8004a3a: f7fd fa6c bl 8001f16 + 8004a3e: 4603 mov r3, r0 + 8004a40: 2b01 cmp r3, #1 + 8004a42: d1f9 bne.n 8004a38 HAL_SPI_Transmit(&hspi2, &data, 1, SPI_TIMEOUT); - 8004a40: 1df9 adds r1, r7, #7 - 8004a42: f44f 737a mov.w r3, #1000 ; 0x3e8 - 8004a46: 2201 movs r2, #1 - 8004a48: 4803 ldr r0, [pc, #12] ; (8004a58 ) - 8004a4a: f7fc fe75 bl 8001738 + 8004a44: 1df9 adds r1, r7, #7 + 8004a46: f44f 737a mov.w r3, #1000 ; 0x3e8 + 8004a4a: 2201 movs r2, #1 + 8004a4c: 4803 ldr r0, [pc, #12] ; (8004a5c ) + 8004a4e: f7fc fe73 bl 8001738 } - 8004a4e: bf00 nop - 8004a50: 3708 adds r7, #8 - 8004a52: 46bd mov sp, r7 - 8004a54: bd80 pop {r7, pc} - 8004a56: bf00 nop - 8004a58: 200000e4 .word 0x200000e4 + 8004a52: bf00 nop + 8004a54: 3708 adds r7, #8 + 8004a56: 46bd mov sp, r7 + 8004a58: bd80 pop {r7, pc} + 8004a5a: bf00 nop + 8004a5c: 200000e4 .word 0x200000e4 -08004a5c : +08004a60 : static uint8_t SPI_RxByte(void) { - 8004a5c: b580 push {r7, lr} - 8004a5e: b084 sub sp, #16 - 8004a60: af02 add r7, sp, #8 + 8004a60: b580 push {r7, lr} + 8004a62: b084 sub sp, #16 + 8004a64: af02 add r7, sp, #8 uint8_t dummy, data; dummy = 0xFF; - 8004a62: 23ff movs r3, #255 ; 0xff - 8004a64: 71fb strb r3, [r7, #7] + 8004a66: 23ff movs r3, #255 ; 0xff + 8004a68: 71fb strb r3, [r7, #7] data = 0; - 8004a66: 2300 movs r3, #0 - 8004a68: 71bb strb r3, [r7, #6] + 8004a6a: 2300 movs r3, #0 + 8004a6c: 71bb strb r3, [r7, #6] while ((HAL_SPI_GetState(&hspi2) != HAL_SPI_STATE_READY)); - 8004a6a: bf00 nop - 8004a6c: 4809 ldr r0, [pc, #36] ; (8004a94 ) - 8004a6e: f7fd fa52 bl 8001f16 - 8004a72: 4603 mov r3, r0 - 8004a74: 2b01 cmp r3, #1 - 8004a76: d1f9 bne.n 8004a6c + 8004a6e: bf00 nop + 8004a70: 4809 ldr r0, [pc, #36] ; (8004a98 ) + 8004a72: f7fd fa50 bl 8001f16 + 8004a76: 4603 mov r3, r0 + 8004a78: 2b01 cmp r3, #1 + 8004a7a: d1f9 bne.n 8004a70 HAL_SPI_TransmitReceive(&hspi2, &dummy, &data, 1, SPI_TIMEOUT); - 8004a78: 1dba adds r2, r7, #6 - 8004a7a: 1df9 adds r1, r7, #7 - 8004a7c: f44f 737a mov.w r3, #1000 ; 0x3e8 - 8004a80: 9300 str r3, [sp, #0] - 8004a82: 2301 movs r3, #1 - 8004a84: 4803 ldr r0, [pc, #12] ; (8004a94 ) - 8004a86: f7fd f8a4 bl 8001bd2 + 8004a7c: 1dba adds r2, r7, #6 + 8004a7e: 1df9 adds r1, r7, #7 + 8004a80: f44f 737a mov.w r3, #1000 ; 0x3e8 + 8004a84: 9300 str r3, [sp, #0] + 8004a86: 2301 movs r3, #1 + 8004a88: 4803 ldr r0, [pc, #12] ; (8004a98 ) + 8004a8a: f7fd f8a2 bl 8001bd2 return data; - 8004a8a: 79bb ldrb r3, [r7, #6] + 8004a8e: 79bb ldrb r3, [r7, #6] } - 8004a8c: 4618 mov r0, r3 - 8004a8e: 3708 adds r7, #8 - 8004a90: 46bd mov sp, r7 - 8004a92: bd80 pop {r7, pc} - 8004a94: 200000e4 .word 0x200000e4 + 8004a90: 4618 mov r0, r3 + 8004a92: 3708 adds r7, #8 + 8004a94: 46bd mov sp, r7 + 8004a96: bd80 pop {r7, pc} + 8004a98: 200000e4 .word 0x200000e4 -08004a98 : +08004a9c : static void SPI_RxBytePtr(uint8_t *buff) { - 8004a98: b580 push {r7, lr} - 8004a9a: b082 sub sp, #8 - 8004a9c: af00 add r7, sp, #0 - 8004a9e: 6078 str r0, [r7, #4] + 8004a9c: b580 push {r7, lr} + 8004a9e: b082 sub sp, #8 + 8004aa0: af00 add r7, sp, #0 + 8004aa2: 6078 str r0, [r7, #4] *buff = SPI_RxByte(); - 8004aa0: f7ff ffdc bl 8004a5c - 8004aa4: 4603 mov r3, r0 - 8004aa6: 461a mov r2, r3 - 8004aa8: 687b ldr r3, [r7, #4] - 8004aaa: 701a strb r2, [r3, #0] + 8004aa4: f7ff ffdc bl 8004a60 + 8004aa8: 4603 mov r3, r0 + 8004aaa: 461a mov r2, r3 + 8004aac: 687b ldr r3, [r7, #4] + 8004aae: 701a strb r2, [r3, #0] } - 8004aac: bf00 nop - 8004aae: 3708 adds r7, #8 - 8004ab0: 46bd mov sp, r7 - 8004ab2: bd80 pop {r7, pc} + 8004ab0: bf00 nop + 8004ab2: 3708 adds r7, #8 + 8004ab4: 46bd mov sp, r7 + 8004ab6: bd80 pop {r7, pc} -08004ab4 : +08004ab8 : static uint8_t SD_ReadyWait(void) { - 8004ab4: b580 push {r7, lr} - 8004ab6: b082 sub sp, #8 - 8004ab8: af00 add r7, sp, #0 + 8004ab8: b580 push {r7, lr} + 8004aba: b082 sub sp, #8 + 8004abc: af00 add r7, sp, #0 uint8_t res; Timer2 = 50000; - 8004aba: 4b0d ldr r3, [pc, #52] ; (8004af0 ) - 8004abc: f24c 3250 movw r2, #50000 ; 0xc350 - 8004ac0: 601a str r2, [r3, #0] + 8004abe: 4b0d ldr r3, [pc, #52] ; (8004af4 ) + 8004ac0: f24c 3250 movw r2, #50000 ; 0xc350 + 8004ac4: 601a str r2, [r3, #0] SPI_RxByte(); - 8004ac2: f7ff ffcb bl 8004a5c + 8004ac6: f7ff ffcb bl 8004a60 do { res = SPI_RxByte(); - 8004ac6: f7ff ffc9 bl 8004a5c - 8004aca: 4603 mov r3, r0 - 8004acc: 71fb strb r3, [r7, #7] + 8004aca: f7ff ffc9 bl 8004a60 + 8004ace: 4603 mov r3, r0 + 8004ad0: 71fb strb r3, [r7, #7] Timer2--; - 8004ace: 4b08 ldr r3, [pc, #32] ; (8004af0 ) - 8004ad0: 681b ldr r3, [r3, #0] - 8004ad2: 3b01 subs r3, #1 - 8004ad4: 4a06 ldr r2, [pc, #24] ; (8004af0 ) - 8004ad6: 6013 str r3, [r2, #0] + 8004ad2: 4b08 ldr r3, [pc, #32] ; (8004af4 ) + 8004ad4: 681b ldr r3, [r3, #0] + 8004ad6: 3b01 subs r3, #1 + 8004ad8: 4a06 ldr r2, [pc, #24] ; (8004af4 ) + 8004ada: 6013 str r3, [r2, #0] } while ((res != 0xFF) && Timer2); - 8004ad8: 79fb ldrb r3, [r7, #7] - 8004ada: 2bff cmp r3, #255 ; 0xff - 8004adc: d003 beq.n 8004ae6 - 8004ade: 4b04 ldr r3, [pc, #16] ; (8004af0 ) - 8004ae0: 681b ldr r3, [r3, #0] - 8004ae2: 2b00 cmp r3, #0 - 8004ae4: d1ef bne.n 8004ac6 + 8004adc: 79fb ldrb r3, [r7, #7] + 8004ade: 2bff cmp r3, #255 ; 0xff + 8004ae0: d003 beq.n 8004aea + 8004ae2: 4b04 ldr r3, [pc, #16] ; (8004af4 ) + 8004ae4: 681b ldr r3, [r3, #0] + 8004ae6: 2b00 cmp r3, #0 + 8004ae8: d1ef bne.n 8004aca return res; - 8004ae6: 79fb ldrb r3, [r7, #7] + 8004aea: 79fb ldrb r3, [r7, #7] } - 8004ae8: 4618 mov r0, r3 - 8004aea: 3708 adds r7, #8 - 8004aec: 46bd mov sp, r7 - 8004aee: bd80 pop {r7, pc} - 8004af0: 2000081c .word 0x2000081c + 8004aec: 4618 mov r0, r3 + 8004aee: 3708 adds r7, #8 + 8004af0: 46bd mov sp, r7 + 8004af2: bd80 pop {r7, pc} + 8004af4: 2000081c .word 0x2000081c -08004af4 : +08004af8 : static void SD_PowerOn(void) { - 8004af4: b580 push {r7, lr} - 8004af6: b086 sub sp, #24 - 8004af8: af00 add r7, sp, #0 + 8004af8: b580 push {r7, lr} + 8004afa: b086 sub sp, #24 + 8004afc: af00 add r7, sp, #0 uint8_t cmd_arg[6]; uint32_t Count = 0x1FFF; - 8004afa: f641 73ff movw r3, #8191 ; 0x1fff - 8004afe: 617b str r3, [r7, #20] + 8004afe: f641 73ff movw r3, #8191 ; 0x1fff + 8004b02: 617b str r3, [r7, #20] DESELECT(); - 8004b00: f7ff ff86 bl 8004a10 + 8004b04: f7ff ff86 bl 8004a14 for(int i = 0; i < 10; i++) - 8004b04: 2300 movs r3, #0 - 8004b06: 613b str r3, [r7, #16] - 8004b08: e005 b.n 8004b16 + 8004b08: 2300 movs r3, #0 + 8004b0a: 613b str r3, [r7, #16] + 8004b0c: e005 b.n 8004b1a { SPI_TxByte(0xFF); - 8004b0a: 20ff movs r0, #255 ; 0xff - 8004b0c: f7ff ff8c bl 8004a28 + 8004b0e: 20ff movs r0, #255 ; 0xff + 8004b10: f7ff ff8c bl 8004a2c for(int i = 0; i < 10; i++) - 8004b10: 693b ldr r3, [r7, #16] - 8004b12: 3301 adds r3, #1 - 8004b14: 613b str r3, [r7, #16] - 8004b16: 693b ldr r3, [r7, #16] - 8004b18: 2b09 cmp r3, #9 - 8004b1a: ddf6 ble.n 8004b0a + 8004b14: 693b ldr r3, [r7, #16] + 8004b16: 3301 adds r3, #1 + 8004b18: 613b str r3, [r7, #16] + 8004b1a: 693b ldr r3, [r7, #16] + 8004b1c: 2b09 cmp r3, #9 + 8004b1e: ddf6 ble.n 8004b0e } /* SPI Chips Select */ SELECT(); - 8004b1c: f7ff ff6c bl 80049f8 cmd_arg[0] = (CMD0 | 0x40); - 8004b20: 2340 movs r3, #64 ; 0x40 - 8004b22: 713b strb r3, [r7, #4] + 8004b24: 2340 movs r3, #64 ; 0x40 + 8004b26: 713b strb r3, [r7, #4] cmd_arg[1] = 0; - 8004b24: 2300 movs r3, #0 - 8004b26: 717b strb r3, [r7, #5] - cmd_arg[2] = 0; 8004b28: 2300 movs r3, #0 - 8004b2a: 71bb strb r3, [r7, #6] - cmd_arg[3] = 0; + 8004b2a: 717b strb r3, [r7, #5] + cmd_arg[2] = 0; 8004b2c: 2300 movs r3, #0 - 8004b2e: 71fb strb r3, [r7, #7] - cmd_arg[4] = 0; + 8004b2e: 71bb strb r3, [r7, #6] + cmd_arg[3] = 0; 8004b30: 2300 movs r3, #0 - 8004b32: 723b strb r3, [r7, #8] + 8004b32: 71fb strb r3, [r7, #7] + cmd_arg[4] = 0; + 8004b34: 2300 movs r3, #0 + 8004b36: 723b strb r3, [r7, #8] cmd_arg[5] = 0x95; - 8004b34: 2395 movs r3, #149 ; 0x95 - 8004b36: 727b strb r3, [r7, #9] + 8004b38: 2395 movs r3, #149 ; 0x95 + 8004b3a: 727b strb r3, [r7, #9] for (int i = 0; i < 6; i++) - 8004b38: 2300 movs r3, #0 - 8004b3a: 60fb str r3, [r7, #12] - 8004b3c: e009 b.n 8004b52 + 8004b3c: 2300 movs r3, #0 + 8004b3e: 60fb str r3, [r7, #12] + 8004b40: e009 b.n 8004b56 { SPI_TxByte(cmd_arg[i]); - 8004b3e: 1d3a adds r2, r7, #4 - 8004b40: 68fb ldr r3, [r7, #12] - 8004b42: 4413 add r3, r2 - 8004b44: 781b ldrb r3, [r3, #0] - 8004b46: 4618 mov r0, r3 - 8004b48: f7ff ff6e bl 8004a28 + 8004b42: 1d3a adds r2, r7, #4 + 8004b44: 68fb ldr r3, [r7, #12] + 8004b46: 4413 add r3, r2 + 8004b48: 781b ldrb r3, [r3, #0] + 8004b4a: 4618 mov r0, r3 + 8004b4c: f7ff ff6e bl 8004a2c for (int i = 0; i < 6; i++) - 8004b4c: 68fb ldr r3, [r7, #12] - 8004b4e: 3301 adds r3, #1 - 8004b50: 60fb str r3, [r7, #12] - 8004b52: 68fb ldr r3, [r7, #12] - 8004b54: 2b05 cmp r3, #5 - 8004b56: ddf2 ble.n 8004b3e + 8004b50: 68fb ldr r3, [r7, #12] + 8004b52: 3301 adds r3, #1 + 8004b54: 60fb str r3, [r7, #12] + 8004b56: 68fb ldr r3, [r7, #12] + 8004b58: 2b05 cmp r3, #5 + 8004b5a: ddf2 ble.n 8004b42 } while ((SPI_RxByte() != 0x01) && Count) - 8004b58: e002 b.n 8004b60 + 8004b5c: e002 b.n 8004b64 { Count--; - 8004b5a: 697b ldr r3, [r7, #20] - 8004b5c: 3b01 subs r3, #1 - 8004b5e: 617b str r3, [r7, #20] + 8004b5e: 697b ldr r3, [r7, #20] + 8004b60: 3b01 subs r3, #1 + 8004b62: 617b str r3, [r7, #20] while ((SPI_RxByte() != 0x01) && Count) - 8004b60: f7ff ff7c bl 8004a5c - 8004b64: 4603 mov r3, r0 - 8004b66: 2b01 cmp r3, #1 - 8004b68: d002 beq.n 8004b70 - 8004b6a: 697b ldr r3, [r7, #20] - 8004b6c: 2b00 cmp r3, #0 - 8004b6e: d1f4 bne.n 8004b5a + 8004b64: f7ff ff7c bl 8004a60 + 8004b68: 4603 mov r3, r0 + 8004b6a: 2b01 cmp r3, #1 + 8004b6c: d002 beq.n 8004b74 + 8004b6e: 697b ldr r3, [r7, #20] + 8004b70: 2b00 cmp r3, #0 + 8004b72: d1f4 bne.n 8004b5e } DESELECT(); - 8004b70: f7ff ff4e bl 8004a10 + 8004b74: f7ff ff4e bl 8004a14 SPI_TxByte(0XFF); - 8004b74: 20ff movs r0, #255 ; 0xff - 8004b76: f7ff ff57 bl 8004a28 + 8004b78: 20ff movs r0, #255 ; 0xff + 8004b7a: f7ff ff57 bl 8004a2c PowerFlag = 1; - 8004b7a: 4b03 ldr r3, [pc, #12] ; (8004b88 ) - 8004b7c: 2201 movs r2, #1 - 8004b7e: 701a strb r2, [r3, #0] + 8004b7e: 4b03 ldr r3, [pc, #12] ; (8004b8c ) + 8004b80: 2201 movs r2, #1 + 8004b82: 701a strb r2, [r3, #0] } - 8004b80: bf00 nop - 8004b82: 3718 adds r7, #24 - 8004b84: 46bd mov sp, r7 - 8004b86: bd80 pop {r7, pc} - 8004b88: 200000d9 .word 0x200000d9 + 8004b84: bf00 nop + 8004b86: 3718 adds r7, #24 + 8004b88: 46bd mov sp, r7 + 8004b8a: bd80 pop {r7, pc} + 8004b8c: 200000d9 .word 0x200000d9 -08004b8c : +08004b90 : static void SD_PowerOff(void) { - 8004b8c: b480 push {r7} - 8004b8e: af00 add r7, sp, #0 + 8004b90: b480 push {r7} + 8004b92: af00 add r7, sp, #0 PowerFlag = 0; - 8004b90: 4b03 ldr r3, [pc, #12] ; (8004ba0 ) - 8004b92: 2200 movs r2, #0 - 8004b94: 701a strb r2, [r3, #0] + 8004b94: 4b03 ldr r3, [pc, #12] ; (8004ba4 ) + 8004b96: 2200 movs r2, #0 + 8004b98: 701a strb r2, [r3, #0] } - 8004b96: bf00 nop - 8004b98: 46bd mov sp, r7 - 8004b9a: bc80 pop {r7} - 8004b9c: 4770 bx lr - 8004b9e: bf00 nop - 8004ba0: 200000d9 .word 0x200000d9 + 8004b9a: bf00 nop + 8004b9c: 46bd mov sp, r7 + 8004b9e: bc80 pop {r7} + 8004ba0: 4770 bx lr + 8004ba2: bf00 nop + 8004ba4: 200000d9 .word 0x200000d9 -08004ba4 : +08004ba8 : static uint8_t SD_CheckPower(void) { - 8004ba4: b480 push {r7} - 8004ba6: af00 add r7, sp, #0 + 8004ba8: b480 push {r7} + 8004baa: af00 add r7, sp, #0 /* 0=off, 1=on */ return PowerFlag; - 8004ba8: 4b02 ldr r3, [pc, #8] ; (8004bb4 ) - 8004baa: 781b ldrb r3, [r3, #0] + 8004bac: 4b02 ldr r3, [pc, #8] ; (8004bb8 ) + 8004bae: 781b ldrb r3, [r3, #0] } - 8004bac: 4618 mov r0, r3 - 8004bae: 46bd mov sp, r7 - 8004bb0: bc80 pop {r7} - 8004bb2: 4770 bx lr - 8004bb4: 200000d9 .word 0x200000d9 + 8004bb0: 4618 mov r0, r3 + 8004bb2: 46bd mov sp, r7 + 8004bb4: bc80 pop {r7} + 8004bb6: 4770 bx lr + 8004bb8: 200000d9 .word 0x200000d9 -08004bb8 : +08004bbc : static bool SD_RxDataBlock(BYTE *buff, UINT btr) { - 8004bb8: b580 push {r7, lr} - 8004bba: b084 sub sp, #16 - 8004bbc: af00 add r7, sp, #0 - 8004bbe: 6078 str r0, [r7, #4] - 8004bc0: 6039 str r1, [r7, #0] + 8004bbc: b580 push {r7, lr} + 8004bbe: b084 sub sp, #16 + 8004bc0: af00 add r7, sp, #0 + 8004bc2: 6078 str r0, [r7, #4] + 8004bc4: 6039 str r1, [r7, #0] uint8_t token; Timer1 = 10000; - 8004bc2: 4b1a ldr r3, [pc, #104] ; (8004c2c ) - 8004bc4: f242 7210 movw r2, #10000 ; 0x2710 - 8004bc8: 601a str r2, [r3, #0] + 8004bc6: 4b1a ldr r3, [pc, #104] ; (8004c30 ) + 8004bc8: f242 7210 movw r2, #10000 ; 0x2710 + 8004bcc: 601a str r2, [r3, #0] do { token = SPI_RxByte(); - 8004bca: f7ff ff47 bl 8004a5c - 8004bce: 4603 mov r3, r0 - 8004bd0: 73fb strb r3, [r7, #15] + 8004bce: f7ff ff47 bl 8004a60 + 8004bd2: 4603 mov r3, r0 + 8004bd4: 73fb strb r3, [r7, #15] Timer1--; - 8004bd2: 4b16 ldr r3, [pc, #88] ; (8004c2c ) - 8004bd4: 681b ldr r3, [r3, #0] - 8004bd6: 3b01 subs r3, #1 - 8004bd8: 4a14 ldr r2, [pc, #80] ; (8004c2c ) - 8004bda: 6013 str r3, [r2, #0] + 8004bd6: 4b16 ldr r3, [pc, #88] ; (8004c30 ) + 8004bd8: 681b ldr r3, [r3, #0] + 8004bda: 3b01 subs r3, #1 + 8004bdc: 4a14 ldr r2, [pc, #80] ; (8004c30 ) + 8004bde: 6013 str r3, [r2, #0] } while((token == 0xFF) && Timer1); - 8004bdc: 7bfb ldrb r3, [r7, #15] - 8004bde: 2bff cmp r3, #255 ; 0xff - 8004be0: d103 bne.n 8004bea - 8004be2: 4b12 ldr r3, [pc, #72] ; (8004c2c ) - 8004be4: 681b ldr r3, [r3, #0] - 8004be6: 2b00 cmp r3, #0 - 8004be8: d1ef bne.n 8004bca + 8004be0: 7bfb ldrb r3, [r7, #15] + 8004be2: 2bff cmp r3, #255 ; 0xff + 8004be4: d103 bne.n 8004bee + 8004be6: 4b12 ldr r3, [pc, #72] ; (8004c30 ) + 8004be8: 681b ldr r3, [r3, #0] + 8004bea: 2b00 cmp r3, #0 + 8004bec: d1ef bne.n 8004bce if(token != 0xFE) - 8004bea: 7bfb ldrb r3, [r7, #15] - 8004bec: 2bfe cmp r3, #254 ; 0xfe - 8004bee: d001 beq.n 8004bf4 + 8004bee: 7bfb ldrb r3, [r7, #15] + 8004bf0: 2bfe cmp r3, #254 ; 0xfe + 8004bf2: d001 beq.n 8004bf8 return FALSE; - 8004bf0: 2300 movs r3, #0 - 8004bf2: e016 b.n 8004c22 + 8004bf4: 2300 movs r3, #0 + 8004bf6: e016 b.n 8004c26 do { SPI_RxBytePtr(buff++); - 8004bf4: 687b ldr r3, [r7, #4] - 8004bf6: 1c5a adds r2, r3, #1 - 8004bf8: 607a str r2, [r7, #4] - 8004bfa: 4618 mov r0, r3 - 8004bfc: f7ff ff4c bl 8004a98 + 8004bf8: 687b ldr r3, [r7, #4] + 8004bfa: 1c5a adds r2, r3, #1 + 8004bfc: 607a str r2, [r7, #4] + 8004bfe: 4618 mov r0, r3 + 8004c00: f7ff ff4c bl 8004a9c SPI_RxBytePtr(buff++); - 8004c00: 687b ldr r3, [r7, #4] - 8004c02: 1c5a adds r2, r3, #1 - 8004c04: 607a str r2, [r7, #4] - 8004c06: 4618 mov r0, r3 - 8004c08: f7ff ff46 bl 8004a98 + 8004c04: 687b ldr r3, [r7, #4] + 8004c06: 1c5a adds r2, r3, #1 + 8004c08: 607a str r2, [r7, #4] + 8004c0a: 4618 mov r0, r3 + 8004c0c: f7ff ff46 bl 8004a9c } while(btr -= 2); - 8004c0c: 683b ldr r3, [r7, #0] - 8004c0e: 3b02 subs r3, #2 - 8004c10: 603b str r3, [r7, #0] - 8004c12: 683b ldr r3, [r7, #0] - 8004c14: 2b00 cmp r3, #0 - 8004c16: d1ed bne.n 8004bf4 + 8004c10: 683b ldr r3, [r7, #0] + 8004c12: 3b02 subs r3, #2 + 8004c14: 603b str r3, [r7, #0] + 8004c16: 683b ldr r3, [r7, #0] + 8004c18: 2b00 cmp r3, #0 + 8004c1a: d1ed bne.n 8004bf8 SPI_RxByte(); - 8004c18: f7ff ff20 bl 8004a5c + 8004c1c: f7ff ff20 bl 8004a60 SPI_RxByte(); - 8004c1c: f7ff ff1e bl 8004a5c + 8004c20: f7ff ff1e bl 8004a60 return TRUE; - 8004c20: 2301 movs r3, #1 + 8004c24: 2301 movs r3, #1 } - 8004c22: 4618 mov r0, r3 - 8004c24: 3710 adds r7, #16 - 8004c26: 46bd mov sp, r7 - 8004c28: bd80 pop {r7, pc} - 8004c2a: bf00 nop - 8004c2c: 20000820 .word 0x20000820 + 8004c26: 4618 mov r0, r3 + 8004c28: 3710 adds r7, #16 + 8004c2a: 46bd mov sp, r7 + 8004c2c: bd80 pop {r7, pc} + 8004c2e: bf00 nop + 8004c30: 20000820 .word 0x20000820 -08004c30 : +08004c34 : #if _READONLY == 0 static bool SD_TxDataBlock(const BYTE *buff, BYTE token) { - 8004c30: b580 push {r7, lr} - 8004c32: b084 sub sp, #16 - 8004c34: af00 add r7, sp, #0 - 8004c36: 6078 str r0, [r7, #4] - 8004c38: 460b mov r3, r1 - 8004c3a: 70fb strb r3, [r7, #3] + 8004c34: b580 push {r7, lr} + 8004c36: b084 sub sp, #16 + 8004c38: af00 add r7, sp, #0 + 8004c3a: 6078 str r0, [r7, #4] + 8004c3c: 460b mov r3, r1 + 8004c3e: 70fb strb r3, [r7, #3] uint8_t resp, wc; uint8_t i = 0; - 8004c3c: 2300 movs r3, #0 - 8004c3e: 737b strb r3, [r7, #13] + 8004c40: 2300 movs r3, #0 + 8004c42: 737b strb r3, [r7, #13] if (SD_ReadyWait() != 0xFF) - 8004c40: f7ff ff38 bl 8004ab4 - 8004c44: 4603 mov r3, r0 - 8004c46: 2bff cmp r3, #255 ; 0xff - 8004c48: d001 beq.n 8004c4e + 8004c44: f7ff ff38 bl 8004ab8 + 8004c48: 4603 mov r3, r0 + 8004c4a: 2bff cmp r3, #255 ; 0xff + 8004c4c: d001 beq.n 8004c52 return FALSE; - 8004c4a: 2300 movs r3, #0 - 8004c4c: e040 b.n 8004cd0 + 8004c4e: 2300 movs r3, #0 + 8004c50: e040 b.n 8004cd4 SPI_TxByte(token); - 8004c4e: 78fb ldrb r3, [r7, #3] - 8004c50: 4618 mov r0, r3 - 8004c52: f7ff fee9 bl 8004a28 + 8004c52: 78fb ldrb r3, [r7, #3] + 8004c54: 4618 mov r0, r3 + 8004c56: f7ff fee9 bl 8004a2c if (token != 0xFD) - 8004c56: 78fb ldrb r3, [r7, #3] - 8004c58: 2bfd cmp r3, #253 ; 0xfd - 8004c5a: d031 beq.n 8004cc0 + 8004c5a: 78fb ldrb r3, [r7, #3] + 8004c5c: 2bfd cmp r3, #253 ; 0xfd + 8004c5e: d031 beq.n 8004cc4 { wc = 0; - 8004c5c: 2300 movs r3, #0 - 8004c5e: 73bb strb r3, [r7, #14] + 8004c60: 2300 movs r3, #0 + 8004c62: 73bb strb r3, [r7, #14] do { SPI_TxByte(*buff++); - 8004c60: 687b ldr r3, [r7, #4] - 8004c62: 1c5a adds r2, r3, #1 - 8004c64: 607a str r2, [r7, #4] - 8004c66: 781b ldrb r3, [r3, #0] - 8004c68: 4618 mov r0, r3 - 8004c6a: f7ff fedd bl 8004a28 + 8004c64: 687b ldr r3, [r7, #4] + 8004c66: 1c5a adds r2, r3, #1 + 8004c68: 607a str r2, [r7, #4] + 8004c6a: 781b ldrb r3, [r3, #0] + 8004c6c: 4618 mov r0, r3 + 8004c6e: f7ff fedd bl 8004a2c SPI_TxByte(*buff++); - 8004c6e: 687b ldr r3, [r7, #4] - 8004c70: 1c5a adds r2, r3, #1 - 8004c72: 607a str r2, [r7, #4] - 8004c74: 781b ldrb r3, [r3, #0] - 8004c76: 4618 mov r0, r3 - 8004c78: f7ff fed6 bl 8004a28 + 8004c72: 687b ldr r3, [r7, #4] + 8004c74: 1c5a adds r2, r3, #1 + 8004c76: 607a str r2, [r7, #4] + 8004c78: 781b ldrb r3, [r3, #0] + 8004c7a: 4618 mov r0, r3 + 8004c7c: f7ff fed6 bl 8004a2c } while (--wc); - 8004c7c: 7bbb ldrb r3, [r7, #14] - 8004c7e: 3b01 subs r3, #1 - 8004c80: 73bb strb r3, [r7, #14] - 8004c82: 7bbb ldrb r3, [r7, #14] - 8004c84: 2b00 cmp r3, #0 - 8004c86: d1eb bne.n 8004c60 + 8004c80: 7bbb ldrb r3, [r7, #14] + 8004c82: 3b01 subs r3, #1 + 8004c84: 73bb strb r3, [r7, #14] + 8004c86: 7bbb ldrb r3, [r7, #14] + 8004c88: 2b00 cmp r3, #0 + 8004c8a: d1eb bne.n 8004c64 SPI_RxByte(); - 8004c88: f7ff fee8 bl 8004a5c + 8004c8c: f7ff fee8 bl 8004a60 SPI_RxByte(); - 8004c8c: f7ff fee6 bl 8004a5c + 8004c90: f7ff fee6 bl 8004a60 while (i <= 64) - 8004c90: e00b b.n 8004caa + 8004c94: e00b b.n 8004cae { resp = SPI_RxByte(); - 8004c92: f7ff fee3 bl 8004a5c - 8004c96: 4603 mov r3, r0 - 8004c98: 73fb strb r3, [r7, #15] + 8004c96: f7ff fee3 bl 8004a60 + 8004c9a: 4603 mov r3, r0 + 8004c9c: 73fb strb r3, [r7, #15] if ((resp & 0x1F) == 0x05) - 8004c9a: 7bfb ldrb r3, [r7, #15] - 8004c9c: f003 031f and.w r3, r3, #31 - 8004ca0: 2b05 cmp r3, #5 - 8004ca2: d006 beq.n 8004cb2 + 8004c9e: 7bfb ldrb r3, [r7, #15] + 8004ca0: f003 031f and.w r3, r3, #31 + 8004ca4: 2b05 cmp r3, #5 + 8004ca6: d006 beq.n 8004cb6 break; i++; - 8004ca4: 7b7b ldrb r3, [r7, #13] - 8004ca6: 3301 adds r3, #1 - 8004ca8: 737b strb r3, [r7, #13] + 8004ca8: 7b7b ldrb r3, [r7, #13] + 8004caa: 3301 adds r3, #1 + 8004cac: 737b strb r3, [r7, #13] while (i <= 64) - 8004caa: 7b7b ldrb r3, [r7, #13] - 8004cac: 2b40 cmp r3, #64 ; 0x40 - 8004cae: d9f0 bls.n 8004c92 - 8004cb0: e000 b.n 8004cb4 + 8004cae: 7b7b ldrb r3, [r7, #13] + 8004cb0: 2b40 cmp r3, #64 ; 0x40 + 8004cb2: d9f0 bls.n 8004c96 + 8004cb4: e000 b.n 8004cb8 break; - 8004cb2: bf00 nop + 8004cb6: bf00 nop } while (SPI_RxByte() == 0); - 8004cb4: bf00 nop - 8004cb6: f7ff fed1 bl 8004a5c - 8004cba: 4603 mov r3, r0 - 8004cbc: 2b00 cmp r3, #0 - 8004cbe: d0fa beq.n 8004cb6 + 8004cb8: bf00 nop + 8004cba: f7ff fed1 bl 8004a60 + 8004cbe: 4603 mov r3, r0 + 8004cc0: 2b00 cmp r3, #0 + 8004cc2: d0fa beq.n 8004cba } if ((resp & 0x1F) == 0x05) - 8004cc0: 7bfb ldrb r3, [r7, #15] - 8004cc2: f003 031f and.w r3, r3, #31 - 8004cc6: 2b05 cmp r3, #5 - 8004cc8: d101 bne.n 8004cce + 8004cc4: 7bfb ldrb r3, [r7, #15] + 8004cc6: f003 031f and.w r3, r3, #31 + 8004cca: 2b05 cmp r3, #5 + 8004ccc: d101 bne.n 8004cd2 return TRUE; - 8004cca: 2301 movs r3, #1 - 8004ccc: e000 b.n 8004cd0 + 8004cce: 2301 movs r3, #1 + 8004cd0: e000 b.n 8004cd4 else return FALSE; - 8004cce: 2300 movs r3, #0 + 8004cd2: 2300 movs r3, #0 } - 8004cd0: 4618 mov r0, r3 - 8004cd2: 3710 adds r7, #16 - 8004cd4: 46bd mov sp, r7 - 8004cd6: bd80 pop {r7, pc} + 8004cd4: 4618 mov r0, r3 + 8004cd6: 3710 adds r7, #16 + 8004cd8: 46bd mov sp, r7 + 8004cda: bd80 pop {r7, pc} -08004cd8 : +08004cdc : #endif /* _READONLY */ static BYTE SD_SendCmd(BYTE cmd, DWORD arg) { - 8004cd8: b580 push {r7, lr} - 8004cda: b084 sub sp, #16 - 8004cdc: af00 add r7, sp, #0 - 8004cde: 4603 mov r3, r0 - 8004ce0: 6039 str r1, [r7, #0] - 8004ce2: 71fb strb r3, [r7, #7] + 8004cdc: b580 push {r7, lr} + 8004cde: b084 sub sp, #16 + 8004ce0: af00 add r7, sp, #0 + 8004ce2: 4603 mov r3, r0 + 8004ce4: 6039 str r1, [r7, #0] + 8004ce6: 71fb strb r3, [r7, #7] uint8_t crc, res; if (SD_ReadyWait() != 0xFF) - 8004ce4: f7ff fee6 bl 8004ab4 - 8004ce8: 4603 mov r3, r0 - 8004cea: 2bff cmp r3, #255 ; 0xff - 8004cec: d001 beq.n 8004cf2 + 8004ce8: f7ff fee6 bl 8004ab8 + 8004cec: 4603 mov r3, r0 + 8004cee: 2bff cmp r3, #255 ; 0xff + 8004cf0: d001 beq.n 8004cf6 return 0xFF; - 8004cee: 23ff movs r3, #255 ; 0xff - 8004cf0: e040 b.n 8004d74 + 8004cf2: 23ff movs r3, #255 ; 0xff + 8004cf4: e040 b.n 8004d78 SPI_TxByte(cmd); /* Command */ - 8004cf2: 79fb ldrb r3, [r7, #7] - 8004cf4: 4618 mov r0, r3 - 8004cf6: f7ff fe97 bl 8004a28 + 8004cf6: 79fb ldrb r3, [r7, #7] + 8004cf8: 4618 mov r0, r3 + 8004cfa: f7ff fe97 bl 8004a2c SPI_TxByte((BYTE) (arg >> 24)); /* Argument[31..24] */ - 8004cfa: 683b ldr r3, [r7, #0] - 8004cfc: 0e1b lsrs r3, r3, #24 - 8004cfe: b2db uxtb r3, r3 - 8004d00: 4618 mov r0, r3 - 8004d02: f7ff fe91 bl 8004a28 + 8004cfe: 683b ldr r3, [r7, #0] + 8004d00: 0e1b lsrs r3, r3, #24 + 8004d02: b2db uxtb r3, r3 + 8004d04: 4618 mov r0, r3 + 8004d06: f7ff fe91 bl 8004a2c SPI_TxByte((BYTE) (arg >> 16)); /* Argument[23..16] */ - 8004d06: 683b ldr r3, [r7, #0] - 8004d08: 0c1b lsrs r3, r3, #16 - 8004d0a: b2db uxtb r3, r3 - 8004d0c: 4618 mov r0, r3 - 8004d0e: f7ff fe8b bl 8004a28 + 8004d0a: 683b ldr r3, [r7, #0] + 8004d0c: 0c1b lsrs r3, r3, #16 + 8004d0e: b2db uxtb r3, r3 + 8004d10: 4618 mov r0, r3 + 8004d12: f7ff fe8b bl 8004a2c SPI_TxByte((BYTE) (arg >> 8)); /* Argument[15..8] */ - 8004d12: 683b ldr r3, [r7, #0] - 8004d14: 0a1b lsrs r3, r3, #8 - 8004d16: b2db uxtb r3, r3 - 8004d18: 4618 mov r0, r3 - 8004d1a: f7ff fe85 bl 8004a28 + 8004d16: 683b ldr r3, [r7, #0] + 8004d18: 0a1b lsrs r3, r3, #8 + 8004d1a: b2db uxtb r3, r3 + 8004d1c: 4618 mov r0, r3 + 8004d1e: f7ff fe85 bl 8004a2c SPI_TxByte((BYTE) arg); /* Argument[7..0] */ - 8004d1e: 683b ldr r3, [r7, #0] - 8004d20: b2db uxtb r3, r3 - 8004d22: 4618 mov r0, r3 - 8004d24: f7ff fe80 bl 8004a28 + 8004d22: 683b ldr r3, [r7, #0] + 8004d24: b2db uxtb r3, r3 + 8004d26: 4618 mov r0, r3 + 8004d28: f7ff fe80 bl 8004a2c crc = 0; - 8004d28: 2300 movs r3, #0 - 8004d2a: 73fb strb r3, [r7, #15] + 8004d2c: 2300 movs r3, #0 + 8004d2e: 73fb strb r3, [r7, #15] if (cmd == CMD0) - 8004d2c: 79fb ldrb r3, [r7, #7] - 8004d2e: 2b40 cmp r3, #64 ; 0x40 - 8004d30: d101 bne.n 8004d36 + 8004d30: 79fb ldrb r3, [r7, #7] + 8004d32: 2b40 cmp r3, #64 ; 0x40 + 8004d34: d101 bne.n 8004d3a crc = 0x95; /* CRC for CMD0(0) */ - 8004d32: 2395 movs r3, #149 ; 0x95 - 8004d34: 73fb strb r3, [r7, #15] + 8004d36: 2395 movs r3, #149 ; 0x95 + 8004d38: 73fb strb r3, [r7, #15] if (cmd == CMD8) - 8004d36: 79fb ldrb r3, [r7, #7] - 8004d38: 2b48 cmp r3, #72 ; 0x48 - 8004d3a: d101 bne.n 8004d40 + 8004d3a: 79fb ldrb r3, [r7, #7] + 8004d3c: 2b48 cmp r3, #72 ; 0x48 + 8004d3e: d101 bne.n 8004d44 crc = 0x87; /* CRC for CMD8(0x1AA) */ - 8004d3c: 2387 movs r3, #135 ; 0x87 - 8004d3e: 73fb strb r3, [r7, #15] + 8004d40: 2387 movs r3, #135 ; 0x87 + 8004d42: 73fb strb r3, [r7, #15] SPI_TxByte(crc); - 8004d40: 7bfb ldrb r3, [r7, #15] - 8004d42: 4618 mov r0, r3 - 8004d44: f7ff fe70 bl 8004a28 + 8004d44: 7bfb ldrb r3, [r7, #15] + 8004d46: 4618 mov r0, r3 + 8004d48: f7ff fe70 bl 8004a2c if (cmd == CMD12) - 8004d48: 79fb ldrb r3, [r7, #7] - 8004d4a: 2b4c cmp r3, #76 ; 0x4c - 8004d4c: d101 bne.n 8004d52 + 8004d4c: 79fb ldrb r3, [r7, #7] + 8004d4e: 2b4c cmp r3, #76 ; 0x4c + 8004d50: d101 bne.n 8004d56 SPI_RxByte(); - 8004d4e: f7ff fe85 bl 8004a5c + 8004d52: f7ff fe85 bl 8004a60 uint8_t n = 10; - 8004d52: 230a movs r3, #10 - 8004d54: 73bb strb r3, [r7, #14] + 8004d56: 230a movs r3, #10 + 8004d58: 73bb strb r3, [r7, #14] do { res = SPI_RxByte(); - 8004d56: f7ff fe81 bl 8004a5c - 8004d5a: 4603 mov r3, r0 - 8004d5c: 737b strb r3, [r7, #13] + 8004d5a: f7ff fe81 bl 8004a60 + 8004d5e: 4603 mov r3, r0 + 8004d60: 737b strb r3, [r7, #13] } while ((res & 0x80) && --n); - 8004d5e: f997 300d ldrsb.w r3, [r7, #13] - 8004d62: 2b00 cmp r3, #0 - 8004d64: da05 bge.n 8004d72 - 8004d66: 7bbb ldrb r3, [r7, #14] - 8004d68: 3b01 subs r3, #1 - 8004d6a: 73bb strb r3, [r7, #14] - 8004d6c: 7bbb ldrb r3, [r7, #14] - 8004d6e: 2b00 cmp r3, #0 - 8004d70: d1f1 bne.n 8004d56 + 8004d62: f997 300d ldrsb.w r3, [r7, #13] + 8004d66: 2b00 cmp r3, #0 + 8004d68: da05 bge.n 8004d76 + 8004d6a: 7bbb ldrb r3, [r7, #14] + 8004d6c: 3b01 subs r3, #1 + 8004d6e: 73bb strb r3, [r7, #14] + 8004d70: 7bbb ldrb r3, [r7, #14] + 8004d72: 2b00 cmp r3, #0 + 8004d74: d1f1 bne.n 8004d5a return res; - 8004d72: 7b7b ldrb r3, [r7, #13] + 8004d76: 7b7b ldrb r3, [r7, #13] } - 8004d74: 4618 mov r0, r3 - 8004d76: 3710 adds r7, #16 - 8004d78: 46bd mov sp, r7 - 8004d7a: bd80 pop {r7, pc} + 8004d78: 4618 mov r0, r3 + 8004d7a: 3710 adds r7, #16 + 8004d7c: 46bd mov sp, r7 + 8004d7e: bd80 pop {r7, pc} -08004d7c : +08004d80 : -----------------------------------------------------------------------*/ DSTATUS SD_disk_initialize(BYTE drv) { - 8004d7c: b590 push {r4, r7, lr} - 8004d7e: b085 sub sp, #20 - 8004d80: af00 add r7, sp, #0 - 8004d82: 4603 mov r3, r0 - 8004d84: 71fb strb r3, [r7, #7] + 8004d80: b590 push {r4, r7, lr} + 8004d82: b085 sub sp, #20 + 8004d84: af00 add r7, sp, #0 + 8004d86: 4603 mov r3, r0 + 8004d88: 71fb strb r3, [r7, #7] uint8_t n, type, ocr[4]; if(drv) - 8004d86: 79fb ldrb r3, [r7, #7] - 8004d88: 2b00 cmp r3, #0 - 8004d8a: d001 beq.n 8004d90 + 8004d8a: 79fb ldrb r3, [r7, #7] + 8004d8c: 2b00 cmp r3, #0 + 8004d8e: d001 beq.n 8004d94 return STA_NOINIT; - 8004d8c: 2301 movs r3, #1 - 8004d8e: e0dc b.n 8004f4a + 8004d90: 2301 movs r3, #1 + 8004d92: e0dc b.n 8004f4e if(Stat & STA_NODISK) - 8004d90: 4b70 ldr r3, [pc, #448] ; (8004f54 ) - 8004d92: 781b ldrb r3, [r3, #0] - 8004d94: b2db uxtb r3, r3 - 8004d96: f003 0302 and.w r3, r3, #2 - 8004d9a: 2b00 cmp r3, #0 - 8004d9c: d003 beq.n 8004da6 + 8004d94: 4b70 ldr r3, [pc, #448] ; (8004f58 ) + 8004d96: 781b ldrb r3, [r3, #0] + 8004d98: b2db uxtb r3, r3 + 8004d9a: f003 0302 and.w r3, r3, #2 + 8004d9e: 2b00 cmp r3, #0 + 8004da0: d003 beq.n 8004daa return Stat; - 8004d9e: 4b6d ldr r3, [pc, #436] ; (8004f54 ) - 8004da0: 781b ldrb r3, [r3, #0] - 8004da2: b2db uxtb r3, r3 - 8004da4: e0d1 b.n 8004f4a + 8004da2: 4b6d ldr r3, [pc, #436] ; (8004f58 ) + 8004da4: 781b ldrb r3, [r3, #0] + 8004da6: b2db uxtb r3, r3 + 8004da8: e0d1 b.n 8004f4e SD_PowerOn(); - 8004da6: f7ff fea5 bl 8004af4 + 8004daa: f7ff fea5 bl 8004af8 SELECT(); - 8004daa: f7ff fe25 bl 80049f8 type = 0; - 8004dae: 2300 movs r3, #0 - 8004db0: 73bb strb r3, [r7, #14] + 8004db2: 2300 movs r3, #0 + 8004db4: 73bb strb r3, [r7, #14] if (SD_SendCmd(CMD0, 0) == 1) - 8004db2: 2100 movs r1, #0 - 8004db4: 2040 movs r0, #64 ; 0x40 - 8004db6: f7ff ff8f bl 8004cd8 - 8004dba: 4603 mov r3, r0 - 8004dbc: 2b01 cmp r3, #1 - 8004dbe: f040 80ac bne.w 8004f1a + 8004db6: 2100 movs r1, #0 + 8004db8: 2040 movs r0, #64 ; 0x40 + 8004dba: f7ff ff8f bl 8004cdc + 8004dbe: 4603 mov r3, r0 + 8004dc0: 2b01 cmp r3, #1 + 8004dc2: f040 80ac bne.w 8004f1e { Timer1 = 100000; - 8004dc2: 4b65 ldr r3, [pc, #404] ; (8004f58 ) - 8004dc4: 4a65 ldr r2, [pc, #404] ; (8004f5c ) - 8004dc6: 601a str r2, [r3, #0] + 8004dc6: 4b65 ldr r3, [pc, #404] ; (8004f5c ) + 8004dc8: 4a65 ldr r2, [pc, #404] ; (8004f60 ) + 8004dca: 601a str r2, [r3, #0] if (SD_SendCmd(CMD8, 0x1AA) == 1) - 8004dc8: f44f 71d5 mov.w r1, #426 ; 0x1aa - 8004dcc: 2048 movs r0, #72 ; 0x48 - 8004dce: f7ff ff83 bl 8004cd8 - 8004dd2: 4603 mov r3, r0 - 8004dd4: 2b01 cmp r3, #1 - 8004dd6: d15c bne.n 8004e92 + 8004dcc: f44f 71d5 mov.w r1, #426 ; 0x1aa + 8004dd0: 2048 movs r0, #72 ; 0x48 + 8004dd2: f7ff ff83 bl 8004cdc + 8004dd6: 4603 mov r3, r0 + 8004dd8: 2b01 cmp r3, #1 + 8004dda: d15c bne.n 8004e96 { /* SDC Ver2+ */ for (n = 0; n < 4; n++) - 8004dd8: 2300 movs r3, #0 - 8004dda: 73fb strb r3, [r7, #15] - 8004ddc: e00c b.n 8004df8 + 8004ddc: 2300 movs r3, #0 + 8004dde: 73fb strb r3, [r7, #15] + 8004de0: e00c b.n 8004dfc { ocr[n] = SPI_RxByte(); - 8004dde: 7bfc ldrb r4, [r7, #15] - 8004de0: f7ff fe3c bl 8004a5c - 8004de4: 4603 mov r3, r0 - 8004de6: 461a mov r2, r3 - 8004de8: f107 0310 add.w r3, r7, #16 - 8004dec: 4423 add r3, r4 - 8004dee: f803 2c08 strb.w r2, [r3, #-8] + 8004de2: 7bfc ldrb r4, [r7, #15] + 8004de4: f7ff fe3c bl 8004a60 + 8004de8: 4603 mov r3, r0 + 8004dea: 461a mov r2, r3 + 8004dec: f107 0310 add.w r3, r7, #16 + 8004df0: 4423 add r3, r4 + 8004df2: f803 2c08 strb.w r2, [r3, #-8] for (n = 0; n < 4; n++) - 8004df2: 7bfb ldrb r3, [r7, #15] - 8004df4: 3301 adds r3, #1 - 8004df6: 73fb strb r3, [r7, #15] - 8004df8: 7bfb ldrb r3, [r7, #15] - 8004dfa: 2b03 cmp r3, #3 - 8004dfc: d9ef bls.n 8004dde + 8004df6: 7bfb ldrb r3, [r7, #15] + 8004df8: 3301 adds r3, #1 + 8004dfa: 73fb strb r3, [r7, #15] + 8004dfc: 7bfb ldrb r3, [r7, #15] + 8004dfe: 2b03 cmp r3, #3 + 8004e00: d9ef bls.n 8004de2 } if (ocr[2] == 0x01 && ocr[3] == 0xAA) - 8004dfe: 7abb ldrb r3, [r7, #10] - 8004e00: 2b01 cmp r3, #1 - 8004e02: f040 808a bne.w 8004f1a - 8004e06: 7afb ldrb r3, [r7, #11] - 8004e08: 2baa cmp r3, #170 ; 0xaa - 8004e0a: f040 8086 bne.w 8004f1a + 8004e02: 7abb ldrb r3, [r7, #10] + 8004e04: 2b01 cmp r3, #1 + 8004e06: f040 808a bne.w 8004f1e + 8004e0a: 7afb ldrb r3, [r7, #11] + 8004e0c: 2baa cmp r3, #170 ; 0xaa + 8004e0e: f040 8086 bne.w 8004f1e { do { if (SD_SendCmd(CMD55, 0) <= 1 && SD_SendCmd(CMD41, 1UL << 30) == 0) - 8004e0e: 2100 movs r1, #0 - 8004e10: 2077 movs r0, #119 ; 0x77 - 8004e12: f7ff ff61 bl 8004cd8 - 8004e16: 4603 mov r3, r0 - 8004e18: 2b01 cmp r3, #1 - 8004e1a: d807 bhi.n 8004e2c - 8004e1c: f04f 4180 mov.w r1, #1073741824 ; 0x40000000 - 8004e20: 2069 movs r0, #105 ; 0x69 - 8004e22: f7ff ff59 bl 8004cd8 - 8004e26: 4603 mov r3, r0 - 8004e28: 2b00 cmp r3, #0 - 8004e2a: d009 beq.n 8004e40 + 8004e12: 2100 movs r1, #0 + 8004e14: 2077 movs r0, #119 ; 0x77 + 8004e16: f7ff ff61 bl 8004cdc + 8004e1a: 4603 mov r3, r0 + 8004e1c: 2b01 cmp r3, #1 + 8004e1e: d807 bhi.n 8004e30 + 8004e20: f04f 4180 mov.w r1, #1073741824 ; 0x40000000 + 8004e24: 2069 movs r0, #105 ; 0x69 + 8004e26: f7ff ff59 bl 8004cdc + 8004e2a: 4603 mov r3, r0 + 8004e2c: 2b00 cmp r3, #0 + 8004e2e: d009 beq.n 8004e44 break; /* ACMD41 with HCS bit */ Timer1--; - 8004e2c: 4b4a ldr r3, [pc, #296] ; (8004f58 ) - 8004e2e: 681b ldr r3, [r3, #0] - 8004e30: 3b01 subs r3, #1 - 8004e32: 4a49 ldr r2, [pc, #292] ; (8004f58 ) - 8004e34: 6013 str r3, [r2, #0] + 8004e30: 4b4a ldr r3, [pc, #296] ; (8004f5c ) + 8004e32: 681b ldr r3, [r3, #0] + 8004e34: 3b01 subs r3, #1 + 8004e36: 4a49 ldr r2, [pc, #292] ; (8004f5c ) + 8004e38: 6013 str r3, [r2, #0] } while (Timer1); - 8004e36: 4b48 ldr r3, [pc, #288] ; (8004f58 ) - 8004e38: 681b ldr r3, [r3, #0] - 8004e3a: 2b00 cmp r3, #0 - 8004e3c: d1e7 bne.n 8004e0e - 8004e3e: e000 b.n 8004e42 + 8004e3a: 4b48 ldr r3, [pc, #288] ; (8004f5c ) + 8004e3c: 681b ldr r3, [r3, #0] + 8004e3e: 2b00 cmp r3, #0 + 8004e40: d1e7 bne.n 8004e12 + 8004e42: e000 b.n 8004e46 break; /* ACMD41 with HCS bit */ - 8004e40: bf00 nop + 8004e44: bf00 nop if (Timer1 && SD_SendCmd(CMD58, 0) == 0) - 8004e42: 4b45 ldr r3, [pc, #276] ; (8004f58 ) - 8004e44: 681b ldr r3, [r3, #0] - 8004e46: 2b00 cmp r3, #0 - 8004e48: d067 beq.n 8004f1a - 8004e4a: 2100 movs r1, #0 - 8004e4c: 207a movs r0, #122 ; 0x7a - 8004e4e: f7ff ff43 bl 8004cd8 - 8004e52: 4603 mov r3, r0 - 8004e54: 2b00 cmp r3, #0 - 8004e56: d160 bne.n 8004f1a + 8004e46: 4b45 ldr r3, [pc, #276] ; (8004f5c ) + 8004e48: 681b ldr r3, [r3, #0] + 8004e4a: 2b00 cmp r3, #0 + 8004e4c: d067 beq.n 8004f1e + 8004e4e: 2100 movs r1, #0 + 8004e50: 207a movs r0, #122 ; 0x7a + 8004e52: f7ff ff43 bl 8004cdc + 8004e56: 4603 mov r3, r0 + 8004e58: 2b00 cmp r3, #0 + 8004e5a: d160 bne.n 8004f1e { /* Check CCS bit */ for (n = 0; n < 4; n++) - 8004e58: 2300 movs r3, #0 - 8004e5a: 73fb strb r3, [r7, #15] - 8004e5c: e00c b.n 8004e78 + 8004e5c: 2300 movs r3, #0 + 8004e5e: 73fb strb r3, [r7, #15] + 8004e60: e00c b.n 8004e7c { ocr[n] = SPI_RxByte(); - 8004e5e: 7bfc ldrb r4, [r7, #15] - 8004e60: f7ff fdfc bl 8004a5c - 8004e64: 4603 mov r3, r0 - 8004e66: 461a mov r2, r3 - 8004e68: f107 0310 add.w r3, r7, #16 - 8004e6c: 4423 add r3, r4 - 8004e6e: f803 2c08 strb.w r2, [r3, #-8] + 8004e62: 7bfc ldrb r4, [r7, #15] + 8004e64: f7ff fdfc bl 8004a60 + 8004e68: 4603 mov r3, r0 + 8004e6a: 461a mov r2, r3 + 8004e6c: f107 0310 add.w r3, r7, #16 + 8004e70: 4423 add r3, r4 + 8004e72: f803 2c08 strb.w r2, [r3, #-8] for (n = 0; n < 4; n++) - 8004e72: 7bfb ldrb r3, [r7, #15] - 8004e74: 3301 adds r3, #1 - 8004e76: 73fb strb r3, [r7, #15] - 8004e78: 7bfb ldrb r3, [r7, #15] - 8004e7a: 2b03 cmp r3, #3 - 8004e7c: d9ef bls.n 8004e5e + 8004e76: 7bfb ldrb r3, [r7, #15] + 8004e78: 3301 adds r3, #1 + 8004e7a: 73fb strb r3, [r7, #15] + 8004e7c: 7bfb ldrb r3, [r7, #15] + 8004e7e: 2b03 cmp r3, #3 + 8004e80: d9ef bls.n 8004e62 } type = (ocr[0] & 0x40) ? 6 : 2; - 8004e7e: 7a3b ldrb r3, [r7, #8] - 8004e80: f003 0340 and.w r3, r3, #64 ; 0x40 - 8004e84: 2b00 cmp r3, #0 - 8004e86: d001 beq.n 8004e8c - 8004e88: 2306 movs r3, #6 - 8004e8a: e000 b.n 8004e8e - 8004e8c: 2302 movs r3, #2 - 8004e8e: 73bb strb r3, [r7, #14] - 8004e90: e043 b.n 8004f1a + 8004e82: 7a3b ldrb r3, [r7, #8] + 8004e84: f003 0340 and.w r3, r3, #64 ; 0x40 + 8004e88: 2b00 cmp r3, #0 + 8004e8a: d001 beq.n 8004e90 + 8004e8c: 2306 movs r3, #6 + 8004e8e: e000 b.n 8004e92 + 8004e90: 2302 movs r3, #2 + 8004e92: 73bb strb r3, [r7, #14] + 8004e94: e043 b.n 8004f1e } } else { /* SDC Ver1 or MMC */ type = (SD_SendCmd(CMD55, 0) <= 1 && SD_SendCmd(CMD41, 0) <= 1) ? 2 : 1; /* SDC : MMC */ - 8004e92: 2100 movs r1, #0 - 8004e94: 2077 movs r0, #119 ; 0x77 - 8004e96: f7ff ff1f bl 8004cd8 - 8004e9a: 4603 mov r3, r0 - 8004e9c: 2b01 cmp r3, #1 - 8004e9e: d808 bhi.n 8004eb2 - 8004ea0: 2100 movs r1, #0 - 8004ea2: 2069 movs r0, #105 ; 0x69 - 8004ea4: f7ff ff18 bl 8004cd8 - 8004ea8: 4603 mov r3, r0 - 8004eaa: 2b01 cmp r3, #1 - 8004eac: d801 bhi.n 8004eb2 - 8004eae: 2302 movs r3, #2 - 8004eb0: e000 b.n 8004eb4 - 8004eb2: 2301 movs r3, #1 - 8004eb4: 73bb strb r3, [r7, #14] + 8004e96: 2100 movs r1, #0 + 8004e98: 2077 movs r0, #119 ; 0x77 + 8004e9a: f7ff ff1f bl 8004cdc + 8004e9e: 4603 mov r3, r0 + 8004ea0: 2b01 cmp r3, #1 + 8004ea2: d808 bhi.n 8004eb6 + 8004ea4: 2100 movs r1, #0 + 8004ea6: 2069 movs r0, #105 ; 0x69 + 8004ea8: f7ff ff18 bl 8004cdc + 8004eac: 4603 mov r3, r0 + 8004eae: 2b01 cmp r3, #1 + 8004eb0: d801 bhi.n 8004eb6 + 8004eb2: 2302 movs r3, #2 + 8004eb4: e000 b.n 8004eb8 + 8004eb6: 2301 movs r3, #1 + 8004eb8: 73bb strb r3, [r7, #14] do { if (type == 2) - 8004eb6: 7bbb ldrb r3, [r7, #14] - 8004eb8: 2b02 cmp r3, #2 - 8004eba: d10e bne.n 8004eda + 8004eba: 7bbb ldrb r3, [r7, #14] + 8004ebc: 2b02 cmp r3, #2 + 8004ebe: d10e bne.n 8004ede { if (SD_SendCmd(CMD55, 0) <= 1 && SD_SendCmd(CMD41, 0) == 0) - 8004ebc: 2100 movs r1, #0 - 8004ebe: 2077 movs r0, #119 ; 0x77 - 8004ec0: f7ff ff0a bl 8004cd8 - 8004ec4: 4603 mov r3, r0 - 8004ec6: 2b01 cmp r3, #1 - 8004ec8: d80e bhi.n 8004ee8 - 8004eca: 2100 movs r1, #0 - 8004ecc: 2069 movs r0, #105 ; 0x69 - 8004ece: f7ff ff03 bl 8004cd8 - 8004ed2: 4603 mov r3, r0 - 8004ed4: 2b00 cmp r3, #0 - 8004ed6: d107 bne.n 8004ee8 + 8004ec0: 2100 movs r1, #0 + 8004ec2: 2077 movs r0, #119 ; 0x77 + 8004ec4: f7ff ff0a bl 8004cdc + 8004ec8: 4603 mov r3, r0 + 8004eca: 2b01 cmp r3, #1 + 8004ecc: d80e bhi.n 8004eec + 8004ece: 2100 movs r1, #0 + 8004ed0: 2069 movs r0, #105 ; 0x69 + 8004ed2: f7ff ff03 bl 8004cdc + 8004ed6: 4603 mov r3, r0 + 8004ed8: 2b00 cmp r3, #0 + 8004eda: d107 bne.n 8004eec break; /* ACMD41 */ - 8004ed8: e011 b.n 8004efe + 8004edc: e011 b.n 8004f02 } else { if (SD_SendCmd(CMD1, 0) == 0) - 8004eda: 2100 movs r1, #0 - 8004edc: 2041 movs r0, #65 ; 0x41 - 8004ede: f7ff fefb bl 8004cd8 - 8004ee2: 4603 mov r3, r0 - 8004ee4: 2b00 cmp r3, #0 - 8004ee6: d009 beq.n 8004efc + 8004ede: 2100 movs r1, #0 + 8004ee0: 2041 movs r0, #65 ; 0x41 + 8004ee2: f7ff fefb bl 8004cdc + 8004ee6: 4603 mov r3, r0 + 8004ee8: 2b00 cmp r3, #0 + 8004eea: d009 beq.n 8004f00 break; /* CMD1 */ } Timer1--; - 8004ee8: 4b1b ldr r3, [pc, #108] ; (8004f58 ) - 8004eea: 681b ldr r3, [r3, #0] - 8004eec: 3b01 subs r3, #1 - 8004eee: 4a1a ldr r2, [pc, #104] ; (8004f58 ) - 8004ef0: 6013 str r3, [r2, #0] + 8004eec: 4b1b ldr r3, [pc, #108] ; (8004f5c ) + 8004eee: 681b ldr r3, [r3, #0] + 8004ef0: 3b01 subs r3, #1 + 8004ef2: 4a1a ldr r2, [pc, #104] ; (8004f5c ) + 8004ef4: 6013 str r3, [r2, #0] } while (Timer1); - 8004ef2: 4b19 ldr r3, [pc, #100] ; (8004f58 ) - 8004ef4: 681b ldr r3, [r3, #0] - 8004ef6: 2b00 cmp r3, #0 - 8004ef8: d1dd bne.n 8004eb6 - 8004efa: e000 b.n 8004efe + 8004ef6: 4b19 ldr r3, [pc, #100] ; (8004f5c ) + 8004ef8: 681b ldr r3, [r3, #0] + 8004efa: 2b00 cmp r3, #0 + 8004efc: d1dd bne.n 8004eba + 8004efe: e000 b.n 8004f02 break; /* CMD1 */ - 8004efc: bf00 nop + 8004f00: bf00 nop if (!Timer1 || SD_SendCmd(CMD16, 512) != 0) - 8004efe: 4b16 ldr r3, [pc, #88] ; (8004f58 ) - 8004f00: 681b ldr r3, [r3, #0] - 8004f02: 2b00 cmp r3, #0 - 8004f04: d007 beq.n 8004f16 - 8004f06: f44f 7100 mov.w r1, #512 ; 0x200 - 8004f0a: 2050 movs r0, #80 ; 0x50 - 8004f0c: f7ff fee4 bl 8004cd8 - 8004f10: 4603 mov r3, r0 - 8004f12: 2b00 cmp r3, #0 - 8004f14: d001 beq.n 8004f1a + 8004f02: 4b16 ldr r3, [pc, #88] ; (8004f5c ) + 8004f04: 681b ldr r3, [r3, #0] + 8004f06: 2b00 cmp r3, #0 + 8004f08: d007 beq.n 8004f1a + 8004f0a: f44f 7100 mov.w r1, #512 ; 0x200 + 8004f0e: 2050 movs r0, #80 ; 0x50 + 8004f10: f7ff fee4 bl 8004cdc + 8004f14: 4603 mov r3, r0 + 8004f16: 2b00 cmp r3, #0 + 8004f18: d001 beq.n 8004f1e { type = 0; - 8004f16: 2300 movs r3, #0 - 8004f18: 73bb strb r3, [r7, #14] + 8004f1a: 2300 movs r3, #0 + 8004f1c: 73bb strb r3, [r7, #14] } } } CardType = type; - 8004f1a: 4a11 ldr r2, [pc, #68] ; (8004f60 ) - 8004f1c: 7bbb ldrb r3, [r7, #14] - 8004f1e: 7013 strb r3, [r2, #0] + 8004f1e: 4a11 ldr r2, [pc, #68] ; (8004f64 ) + 8004f20: 7bbb ldrb r3, [r7, #14] + 8004f22: 7013 strb r3, [r2, #0] DESELECT(); - 8004f20: f7ff fd76 bl 8004a10 + 8004f24: f7ff fd76 bl 8004a14 SPI_RxByte(); - 8004f24: f7ff fd9a bl 8004a5c + 8004f28: f7ff fd9a bl 8004a60 if (type) - 8004f28: 7bbb ldrb r3, [r7, #14] - 8004f2a: 2b00 cmp r3, #0 - 8004f2c: d008 beq.n 8004f40 + 8004f2c: 7bbb ldrb r3, [r7, #14] + 8004f2e: 2b00 cmp r3, #0 + 8004f30: d008 beq.n 8004f44 { /* Clear STA_NOINIT */ Stat &= ~STA_NOINIT; - 8004f2e: 4b09 ldr r3, [pc, #36] ; (8004f54 ) - 8004f30: 781b ldrb r3, [r3, #0] - 8004f32: b2db uxtb r3, r3 - 8004f34: f023 0301 bic.w r3, r3, #1 - 8004f38: b2da uxtb r2, r3 - 8004f3a: 4b06 ldr r3, [pc, #24] ; (8004f54 ) - 8004f3c: 701a strb r2, [r3, #0] - 8004f3e: e001 b.n 8004f44 + 8004f32: 4b09 ldr r3, [pc, #36] ; (8004f58 ) + 8004f34: 781b ldrb r3, [r3, #0] + 8004f36: b2db uxtb r3, r3 + 8004f38: f023 0301 bic.w r3, r3, #1 + 8004f3c: b2da uxtb r2, r3 + 8004f3e: 4b06 ldr r3, [pc, #24] ; (8004f58 ) + 8004f40: 701a strb r2, [r3, #0] + 8004f42: e001 b.n 8004f48 } else { /* Initialization failed */ SD_PowerOff(); - 8004f40: f7ff fe24 bl 8004b8c + 8004f44: f7ff fe24 bl 8004b90 } return Stat; - 8004f44: 4b03 ldr r3, [pc, #12] ; (8004f54 ) - 8004f46: 781b ldrb r3, [r3, #0] - 8004f48: b2db uxtb r3, r3 + 8004f48: 4b03 ldr r3, [pc, #12] ; (8004f58 ) + 8004f4a: 781b ldrb r3, [r3, #0] + 8004f4c: b2db uxtb r3, r3 } - 8004f4a: 4618 mov r0, r3 - 8004f4c: 3714 adds r7, #20 - 8004f4e: 46bd mov sp, r7 - 8004f50: bd90 pop {r4, r7, pc} - 8004f52: bf00 nop - 8004f54: 20000020 .word 0x20000020 - 8004f58: 20000820 .word 0x20000820 - 8004f5c: 000186a0 .word 0x000186a0 - 8004f60: 200000d8 .word 0x200000d8 + 8004f4e: 4618 mov r0, r3 + 8004f50: 3714 adds r7, #20 + 8004f52: 46bd mov sp, r7 + 8004f54: bd90 pop {r4, r7, pc} + 8004f56: bf00 nop + 8004f58: 20000020 .word 0x20000020 + 8004f5c: 20000820 .word 0x20000820 + 8004f60: 000186a0 .word 0x000186a0 + 8004f64: 200000d8 .word 0x200000d8 -08004f64 : +08004f68 : DSTATUS SD_disk_status(BYTE drv) { - 8004f64: b480 push {r7} - 8004f66: b083 sub sp, #12 - 8004f68: af00 add r7, sp, #0 - 8004f6a: 4603 mov r3, r0 - 8004f6c: 71fb strb r3, [r7, #7] + 8004f68: b480 push {r7} + 8004f6a: b083 sub sp, #12 + 8004f6c: af00 add r7, sp, #0 + 8004f6e: 4603 mov r3, r0 + 8004f70: 71fb strb r3, [r7, #7] if (drv) - 8004f6e: 79fb ldrb r3, [r7, #7] - 8004f70: 2b00 cmp r3, #0 - 8004f72: d001 beq.n 8004f78 + 8004f72: 79fb ldrb r3, [r7, #7] + 8004f74: 2b00 cmp r3, #0 + 8004f76: d001 beq.n 8004f7c return STA_NOINIT; - 8004f74: 2301 movs r3, #1 - 8004f76: e002 b.n 8004f7e + 8004f78: 2301 movs r3, #1 + 8004f7a: e002 b.n 8004f82 return Stat; - 8004f78: 4b03 ldr r3, [pc, #12] ; (8004f88 ) - 8004f7a: 781b ldrb r3, [r3, #0] - 8004f7c: b2db uxtb r3, r3 + 8004f7c: 4b03 ldr r3, [pc, #12] ; (8004f8c ) + 8004f7e: 781b ldrb r3, [r3, #0] + 8004f80: b2db uxtb r3, r3 } - 8004f7e: 4618 mov r0, r3 - 8004f80: 370c adds r7, #12 - 8004f82: 46bd mov sp, r7 - 8004f84: bc80 pop {r7} - 8004f86: 4770 bx lr - 8004f88: 20000020 .word 0x20000020 + 8004f82: 4618 mov r0, r3 + 8004f84: 370c adds r7, #12 + 8004f86: 46bd mov sp, r7 + 8004f88: bc80 pop {r7} + 8004f8a: 4770 bx lr + 8004f8c: 20000020 .word 0x20000020 -08004f8c : +08004f90 : DRESULT SD_disk_read(BYTE pdrv, BYTE* buff, DWORD sector, UINT count) { - 8004f8c: b580 push {r7, lr} - 8004f8e: b084 sub sp, #16 - 8004f90: af00 add r7, sp, #0 - 8004f92: 60b9 str r1, [r7, #8] - 8004f94: 607a str r2, [r7, #4] - 8004f96: 603b str r3, [r7, #0] - 8004f98: 4603 mov r3, r0 - 8004f9a: 73fb strb r3, [r7, #15] + 8004f90: b580 push {r7, lr} + 8004f92: b084 sub sp, #16 + 8004f94: af00 add r7, sp, #0 + 8004f96: 60b9 str r1, [r7, #8] + 8004f98: 607a str r2, [r7, #4] + 8004f9a: 603b str r3, [r7, #0] + 8004f9c: 4603 mov r3, r0 + 8004f9e: 73fb strb r3, [r7, #15] if (pdrv || !count) - 8004f9c: 7bfb ldrb r3, [r7, #15] - 8004f9e: 2b00 cmp r3, #0 - 8004fa0: d102 bne.n 8004fa8 - 8004fa2: 683b ldr r3, [r7, #0] - 8004fa4: 2b00 cmp r3, #0 - 8004fa6: d101 bne.n 8004fac + 8004fa0: 7bfb ldrb r3, [r7, #15] + 8004fa2: 2b00 cmp r3, #0 + 8004fa4: d102 bne.n 8004fac + 8004fa6: 683b ldr r3, [r7, #0] + 8004fa8: 2b00 cmp r3, #0 + 8004faa: d101 bne.n 8004fb0 return RES_PARERR; - 8004fa8: 2304 movs r3, #4 - 8004faa: e051 b.n 8005050 + 8004fac: 2304 movs r3, #4 + 8004fae: e051 b.n 8005054 if (Stat & STA_NOINIT) - 8004fac: 4b2a ldr r3, [pc, #168] ; (8005058 ) - 8004fae: 781b ldrb r3, [r3, #0] - 8004fb0: b2db uxtb r3, r3 - 8004fb2: f003 0301 and.w r3, r3, #1 - 8004fb6: 2b00 cmp r3, #0 - 8004fb8: d001 beq.n 8004fbe + 8004fb0: 4b2a ldr r3, [pc, #168] ; (800505c ) + 8004fb2: 781b ldrb r3, [r3, #0] + 8004fb4: b2db uxtb r3, r3 + 8004fb6: f003 0301 and.w r3, r3, #1 + 8004fba: 2b00 cmp r3, #0 + 8004fbc: d001 beq.n 8004fc2 return RES_NOTRDY; - 8004fba: 2303 movs r3, #3 - 8004fbc: e048 b.n 8005050 + 8004fbe: 2303 movs r3, #3 + 8004fc0: e048 b.n 8005054 if (!(CardType & 4)) - 8004fbe: 4b27 ldr r3, [pc, #156] ; (800505c ) - 8004fc0: 781b ldrb r3, [r3, #0] - 8004fc2: f003 0304 and.w r3, r3, #4 - 8004fc6: 2b00 cmp r3, #0 - 8004fc8: d102 bne.n 8004fd0 + 8004fc2: 4b27 ldr r3, [pc, #156] ; (8005060 ) + 8004fc4: 781b ldrb r3, [r3, #0] + 8004fc6: f003 0304 and.w r3, r3, #4 + 8004fca: 2b00 cmp r3, #0 + 8004fcc: d102 bne.n 8004fd4 sector *= 512; - 8004fca: 687b ldr r3, [r7, #4] - 8004fcc: 025b lsls r3, r3, #9 - 8004fce: 607b str r3, [r7, #4] + 8004fce: 687b ldr r3, [r7, #4] + 8004fd0: 025b lsls r3, r3, #9 + 8004fd2: 607b str r3, [r7, #4] SELECT(); - 8004fd0: f7ff fd12 bl 80049f8 if (count == 1) - 8004fd4: 683b ldr r3, [r7, #0] - 8004fd6: 2b01 cmp r3, #1 - 8004fd8: d111 bne.n 8004ffe + 8004fd8: 683b ldr r3, [r7, #0] + 8004fda: 2b01 cmp r3, #1 + 8004fdc: d111 bne.n 8005002 { if ((SD_SendCmd(CMD17, sector) == 0) && SD_RxDataBlock(buff, 512)) - 8004fda: 6879 ldr r1, [r7, #4] - 8004fdc: 2051 movs r0, #81 ; 0x51 - 8004fde: f7ff fe7b bl 8004cd8 - 8004fe2: 4603 mov r3, r0 - 8004fe4: 2b00 cmp r3, #0 - 8004fe6: d129 bne.n 800503c - 8004fe8: f44f 7100 mov.w r1, #512 ; 0x200 - 8004fec: 68b8 ldr r0, [r7, #8] - 8004fee: f7ff fde3 bl 8004bb8 - 8004ff2: 4603 mov r3, r0 - 8004ff4: 2b00 cmp r3, #0 - 8004ff6: d021 beq.n 800503c + 8004fde: 6879 ldr r1, [r7, #4] + 8004fe0: 2051 movs r0, #81 ; 0x51 + 8004fe2: f7ff fe7b bl 8004cdc + 8004fe6: 4603 mov r3, r0 + 8004fe8: 2b00 cmp r3, #0 + 8004fea: d129 bne.n 8005040 + 8004fec: f44f 7100 mov.w r1, #512 ; 0x200 + 8004ff0: 68b8 ldr r0, [r7, #8] + 8004ff2: f7ff fde3 bl 8004bbc + 8004ff6: 4603 mov r3, r0 + 8004ff8: 2b00 cmp r3, #0 + 8004ffa: d021 beq.n 8005040 count = 0; - 8004ff8: 2300 movs r3, #0 - 8004ffa: 603b str r3, [r7, #0] - 8004ffc: e01e b.n 800503c + 8004ffc: 2300 movs r3, #0 + 8004ffe: 603b str r3, [r7, #0] + 8005000: e01e b.n 8005040 } else { if (SD_SendCmd(CMD18, sector) == 0) - 8004ffe: 6879 ldr r1, [r7, #4] - 8005000: 2052 movs r0, #82 ; 0x52 - 8005002: f7ff fe69 bl 8004cd8 - 8005006: 4603 mov r3, r0 - 8005008: 2b00 cmp r3, #0 - 800500a: d117 bne.n 800503c + 8005002: 6879 ldr r1, [r7, #4] + 8005004: 2052 movs r0, #82 ; 0x52 + 8005006: f7ff fe69 bl 8004cdc + 800500a: 4603 mov r3, r0 + 800500c: 2b00 cmp r3, #0 + 800500e: d117 bne.n 8005040 { do { if (!SD_RxDataBlock(buff, 512)) - 800500c: f44f 7100 mov.w r1, #512 ; 0x200 - 8005010: 68b8 ldr r0, [r7, #8] - 8005012: f7ff fdd1 bl 8004bb8 - 8005016: 4603 mov r3, r0 - 8005018: 2b00 cmp r3, #0 - 800501a: d00a beq.n 8005032 + 8005010: f44f 7100 mov.w r1, #512 ; 0x200 + 8005014: 68b8 ldr r0, [r7, #8] + 8005016: f7ff fdd1 bl 8004bbc + 800501a: 4603 mov r3, r0 + 800501c: 2b00 cmp r3, #0 + 800501e: d00a beq.n 8005036 break; buff += 512; - 800501c: 68bb ldr r3, [r7, #8] - 800501e: f503 7300 add.w r3, r3, #512 ; 0x200 - 8005022: 60bb str r3, [r7, #8] + 8005020: 68bb ldr r3, [r7, #8] + 8005022: f503 7300 add.w r3, r3, #512 ; 0x200 + 8005026: 60bb str r3, [r7, #8] } while (--count); - 8005024: 683b ldr r3, [r7, #0] - 8005026: 3b01 subs r3, #1 - 8005028: 603b str r3, [r7, #0] - 800502a: 683b ldr r3, [r7, #0] - 800502c: 2b00 cmp r3, #0 - 800502e: d1ed bne.n 800500c - 8005030: e000 b.n 8005034 + 8005028: 683b ldr r3, [r7, #0] + 800502a: 3b01 subs r3, #1 + 800502c: 603b str r3, [r7, #0] + 800502e: 683b ldr r3, [r7, #0] + 8005030: 2b00 cmp r3, #0 + 8005032: d1ed bne.n 8005010 + 8005034: e000 b.n 8005038 break; - 8005032: bf00 nop + 8005036: bf00 nop SD_SendCmd(CMD12, 0); - 8005034: 2100 movs r1, #0 - 8005036: 204c movs r0, #76 ; 0x4c - 8005038: f7ff fe4e bl 8004cd8 + 8005038: 2100 movs r1, #0 + 800503a: 204c movs r0, #76 ; 0x4c + 800503c: f7ff fe4e bl 8004cdc } } DESELECT(); - 800503c: f7ff fce8 bl 8004a10 + 8005040: f7ff fce8 bl 8004a14 SPI_RxByte(); - 8005040: f7ff fd0c bl 8004a5c + 8005044: f7ff fd0c bl 8004a60 return count ? RES_ERROR : RES_OK; - 8005044: 683b ldr r3, [r7, #0] - 8005046: 2b00 cmp r3, #0 - 8005048: bf14 ite ne - 800504a: 2301 movne r3, #1 - 800504c: 2300 moveq r3, #0 - 800504e: b2db uxtb r3, r3 + 8005048: 683b ldr r3, [r7, #0] + 800504a: 2b00 cmp r3, #0 + 800504c: bf14 ite ne + 800504e: 2301 movne r3, #1 + 8005050: 2300 moveq r3, #0 + 8005052: b2db uxtb r3, r3 } - 8005050: 4618 mov r0, r3 - 8005052: 3710 adds r7, #16 - 8005054: 46bd mov sp, r7 - 8005056: bd80 pop {r7, pc} - 8005058: 20000020 .word 0x20000020 - 800505c: 200000d8 .word 0x200000d8 + 8005054: 4618 mov r0, r3 + 8005056: 3710 adds r7, #16 + 8005058: 46bd mov sp, r7 + 800505a: bd80 pop {r7, pc} + 800505c: 20000020 .word 0x20000020 + 8005060: 200000d8 .word 0x200000d8 -08005060 : +08005064 : #if _READONLY == 0 DRESULT SD_disk_write(BYTE pdrv, const BYTE* buff, DWORD sector, UINT count) { - 8005060: b580 push {r7, lr} - 8005062: b084 sub sp, #16 - 8005064: af00 add r7, sp, #0 - 8005066: 60b9 str r1, [r7, #8] - 8005068: 607a str r2, [r7, #4] - 800506a: 603b str r3, [r7, #0] - 800506c: 4603 mov r3, r0 - 800506e: 73fb strb r3, [r7, #15] + 8005064: b580 push {r7, lr} + 8005066: b084 sub sp, #16 + 8005068: af00 add r7, sp, #0 + 800506a: 60b9 str r1, [r7, #8] + 800506c: 607a str r2, [r7, #4] + 800506e: 603b str r3, [r7, #0] + 8005070: 4603 mov r3, r0 + 8005072: 73fb strb r3, [r7, #15] if (pdrv || !count) - 8005070: 7bfb ldrb r3, [r7, #15] - 8005072: 2b00 cmp r3, #0 - 8005074: d102 bne.n 800507c - 8005076: 683b ldr r3, [r7, #0] - 8005078: 2b00 cmp r3, #0 - 800507a: d101 bne.n 8005080 + 8005074: 7bfb ldrb r3, [r7, #15] + 8005076: 2b00 cmp r3, #0 + 8005078: d102 bne.n 8005080 + 800507a: 683b ldr r3, [r7, #0] + 800507c: 2b00 cmp r3, #0 + 800507e: d101 bne.n 8005084 return RES_PARERR; - 800507c: 2304 movs r3, #4 - 800507e: e06b b.n 8005158 + 8005080: 2304 movs r3, #4 + 8005082: e06b b.n 800515c if (Stat & STA_NOINIT) - 8005080: 4b37 ldr r3, [pc, #220] ; (8005160 ) - 8005082: 781b ldrb r3, [r3, #0] - 8005084: b2db uxtb r3, r3 - 8005086: f003 0301 and.w r3, r3, #1 - 800508a: 2b00 cmp r3, #0 - 800508c: d001 beq.n 8005092 + 8005084: 4b37 ldr r3, [pc, #220] ; (8005164 ) + 8005086: 781b ldrb r3, [r3, #0] + 8005088: b2db uxtb r3, r3 + 800508a: f003 0301 and.w r3, r3, #1 + 800508e: 2b00 cmp r3, #0 + 8005090: d001 beq.n 8005096 return RES_NOTRDY; - 800508e: 2303 movs r3, #3 - 8005090: e062 b.n 8005158 + 8005092: 2303 movs r3, #3 + 8005094: e062 b.n 800515c if (Stat & STA_PROTECT) - 8005092: 4b33 ldr r3, [pc, #204] ; (8005160 ) - 8005094: 781b ldrb r3, [r3, #0] - 8005096: b2db uxtb r3, r3 - 8005098: f003 0304 and.w r3, r3, #4 - 800509c: 2b00 cmp r3, #0 - 800509e: d001 beq.n 80050a4 + 8005096: 4b33 ldr r3, [pc, #204] ; (8005164 ) + 8005098: 781b ldrb r3, [r3, #0] + 800509a: b2db uxtb r3, r3 + 800509c: f003 0304 and.w r3, r3, #4 + 80050a0: 2b00 cmp r3, #0 + 80050a2: d001 beq.n 80050a8 return RES_WRPRT; - 80050a0: 2302 movs r3, #2 - 80050a2: e059 b.n 8005158 + 80050a4: 2302 movs r3, #2 + 80050a6: e059 b.n 800515c if (!(CardType & 4)) - 80050a4: 4b2f ldr r3, [pc, #188] ; (8005164 ) - 80050a6: 781b ldrb r3, [r3, #0] - 80050a8: f003 0304 and.w r3, r3, #4 - 80050ac: 2b00 cmp r3, #0 - 80050ae: d102 bne.n 80050b6 + 80050a8: 4b2f ldr r3, [pc, #188] ; (8005168 ) + 80050aa: 781b ldrb r3, [r3, #0] + 80050ac: f003 0304 and.w r3, r3, #4 + 80050b0: 2b00 cmp r3, #0 + 80050b2: d102 bne.n 80050ba sector *= 512; - 80050b0: 687b ldr r3, [r7, #4] - 80050b2: 025b lsls r3, r3, #9 - 80050b4: 607b str r3, [r7, #4] + 80050b4: 687b ldr r3, [r7, #4] + 80050b6: 025b lsls r3, r3, #9 + 80050b8: 607b str r3, [r7, #4] SELECT(); - 80050b6: f7ff fc9f bl 80049f8 if (count == 1) - 80050ba: 683b ldr r3, [r7, #0] - 80050bc: 2b01 cmp r3, #1 - 80050be: d110 bne.n 80050e2 + 80050be: 683b ldr r3, [r7, #0] + 80050c0: 2b01 cmp r3, #1 + 80050c2: d110 bne.n 80050e6 { if ((SD_SendCmd(CMD24, sector) == 0) && SD_TxDataBlock(buff, 0xFE)) - 80050c0: 6879 ldr r1, [r7, #4] - 80050c2: 2058 movs r0, #88 ; 0x58 - 80050c4: f7ff fe08 bl 8004cd8 - 80050c8: 4603 mov r3, r0 - 80050ca: 2b00 cmp r3, #0 - 80050cc: d13a bne.n 8005144 - 80050ce: 21fe movs r1, #254 ; 0xfe - 80050d0: 68b8 ldr r0, [r7, #8] - 80050d2: f7ff fdad bl 8004c30 - 80050d6: 4603 mov r3, r0 - 80050d8: 2b00 cmp r3, #0 - 80050da: d033 beq.n 8005144 + 80050c4: 6879 ldr r1, [r7, #4] + 80050c6: 2058 movs r0, #88 ; 0x58 + 80050c8: f7ff fe08 bl 8004cdc + 80050cc: 4603 mov r3, r0 + 80050ce: 2b00 cmp r3, #0 + 80050d0: d13a bne.n 8005148 + 80050d2: 21fe movs r1, #254 ; 0xfe + 80050d4: 68b8 ldr r0, [r7, #8] + 80050d6: f7ff fdad bl 8004c34 + 80050da: 4603 mov r3, r0 + 80050dc: 2b00 cmp r3, #0 + 80050de: d033 beq.n 8005148 count = 0; - 80050dc: 2300 movs r3, #0 - 80050de: 603b str r3, [r7, #0] - 80050e0: e030 b.n 8005144 + 80050e0: 2300 movs r3, #0 + 80050e2: 603b str r3, [r7, #0] + 80050e4: e030 b.n 8005148 } else { if (CardType & 2) - 80050e2: 4b20 ldr r3, [pc, #128] ; (8005164 ) - 80050e4: 781b ldrb r3, [r3, #0] - 80050e6: f003 0302 and.w r3, r3, #2 - 80050ea: 2b00 cmp r3, #0 - 80050ec: d007 beq.n 80050fe + 80050e6: 4b20 ldr r3, [pc, #128] ; (8005168 ) + 80050e8: 781b ldrb r3, [r3, #0] + 80050ea: f003 0302 and.w r3, r3, #2 + 80050ee: 2b00 cmp r3, #0 + 80050f0: d007 beq.n 8005102 { SD_SendCmd(CMD55, 0); - 80050ee: 2100 movs r1, #0 - 80050f0: 2077 movs r0, #119 ; 0x77 - 80050f2: f7ff fdf1 bl 8004cd8 + 80050f2: 2100 movs r1, #0 + 80050f4: 2077 movs r0, #119 ; 0x77 + 80050f6: f7ff fdf1 bl 8004cdc SD_SendCmd(CMD23, count); /* ACMD23 */ - 80050f6: 6839 ldr r1, [r7, #0] - 80050f8: 2057 movs r0, #87 ; 0x57 - 80050fa: f7ff fded bl 8004cd8 + 80050fa: 6839 ldr r1, [r7, #0] + 80050fc: 2057 movs r0, #87 ; 0x57 + 80050fe: f7ff fded bl 8004cdc } if (SD_SendCmd(CMD25, sector) == 0) - 80050fe: 6879 ldr r1, [r7, #4] - 8005100: 2059 movs r0, #89 ; 0x59 - 8005102: f7ff fde9 bl 8004cd8 - 8005106: 4603 mov r3, r0 - 8005108: 2b00 cmp r3, #0 - 800510a: d11b bne.n 8005144 + 8005102: 6879 ldr r1, [r7, #4] + 8005104: 2059 movs r0, #89 ; 0x59 + 8005106: f7ff fde9 bl 8004cdc + 800510a: 4603 mov r3, r0 + 800510c: 2b00 cmp r3, #0 + 800510e: d11b bne.n 8005148 { do { if(!SD_TxDataBlock(buff, 0xFC)) - 800510c: 21fc movs r1, #252 ; 0xfc - 800510e: 68b8 ldr r0, [r7, #8] - 8005110: f7ff fd8e bl 8004c30 - 8005114: 4603 mov r3, r0 - 8005116: 2b00 cmp r3, #0 - 8005118: d00a beq.n 8005130 + 8005110: 21fc movs r1, #252 ; 0xfc + 8005112: 68b8 ldr r0, [r7, #8] + 8005114: f7ff fd8e bl 8004c34 + 8005118: 4603 mov r3, r0 + 800511a: 2b00 cmp r3, #0 + 800511c: d00a beq.n 8005134 break; buff += 512; - 800511a: 68bb ldr r3, [r7, #8] - 800511c: f503 7300 add.w r3, r3, #512 ; 0x200 - 8005120: 60bb str r3, [r7, #8] + 800511e: 68bb ldr r3, [r7, #8] + 8005120: f503 7300 add.w r3, r3, #512 ; 0x200 + 8005124: 60bb str r3, [r7, #8] } while (--count); - 8005122: 683b ldr r3, [r7, #0] - 8005124: 3b01 subs r3, #1 - 8005126: 603b str r3, [r7, #0] - 8005128: 683b ldr r3, [r7, #0] - 800512a: 2b00 cmp r3, #0 - 800512c: d1ee bne.n 800510c - 800512e: e000 b.n 8005132 + 8005126: 683b ldr r3, [r7, #0] + 8005128: 3b01 subs r3, #1 + 800512a: 603b str r3, [r7, #0] + 800512c: 683b ldr r3, [r7, #0] + 800512e: 2b00 cmp r3, #0 + 8005130: d1ee bne.n 8005110 + 8005132: e000 b.n 8005136 break; - 8005130: bf00 nop + 8005134: bf00 nop if(!SD_TxDataBlock(0, 0xFD)) - 8005132: 21fd movs r1, #253 ; 0xfd - 8005134: 2000 movs r0, #0 - 8005136: f7ff fd7b bl 8004c30 - 800513a: 4603 mov r3, r0 - 800513c: 2b00 cmp r3, #0 - 800513e: d101 bne.n 8005144 + 8005136: 21fd movs r1, #253 ; 0xfd + 8005138: 2000 movs r0, #0 + 800513a: f7ff fd7b bl 8004c34 + 800513e: 4603 mov r3, r0 + 8005140: 2b00 cmp r3, #0 + 8005142: d101 bne.n 8005148 { count = 1; - 8005140: 2301 movs r3, #1 - 8005142: 603b str r3, [r7, #0] + 8005144: 2301 movs r3, #1 + 8005146: 603b str r3, [r7, #0] } } } DESELECT(); - 8005144: f7ff fc64 bl 8004a10 + 8005148: f7ff fc64 bl 8004a14 SPI_RxByte(); - 8005148: f7ff fc88 bl 8004a5c + 800514c: f7ff fc88 bl 8004a60 return count ? RES_ERROR : RES_OK; - 800514c: 683b ldr r3, [r7, #0] - 800514e: 2b00 cmp r3, #0 - 8005150: bf14 ite ne - 8005152: 2301 movne r3, #1 - 8005154: 2300 moveq r3, #0 - 8005156: b2db uxtb r3, r3 + 8005150: 683b ldr r3, [r7, #0] + 8005152: 2b00 cmp r3, #0 + 8005154: bf14 ite ne + 8005156: 2301 movne r3, #1 + 8005158: 2300 moveq r3, #0 + 800515a: b2db uxtb r3, r3 } - 8005158: 4618 mov r0, r3 - 800515a: 3710 adds r7, #16 - 800515c: 46bd mov sp, r7 - 800515e: bd80 pop {r7, pc} - 8005160: 20000020 .word 0x20000020 - 8005164: 200000d8 .word 0x200000d8 + 800515c: 4618 mov r0, r3 + 800515e: 3710 adds r7, #16 + 8005160: 46bd mov sp, r7 + 8005162: bd80 pop {r7, pc} + 8005164: 20000020 .word 0x20000020 + 8005168: 200000d8 .word 0x200000d8 -08005168 : +0800516c : #endif /* _READONLY */ DRESULT SD_disk_ioctl(BYTE drv, BYTE ctrl, void *buff) { - 8005168: b590 push {r4, r7, lr} - 800516a: b08b sub sp, #44 ; 0x2c - 800516c: af00 add r7, sp, #0 - 800516e: 4603 mov r3, r0 - 8005170: 603a str r2, [r7, #0] - 8005172: 71fb strb r3, [r7, #7] - 8005174: 460b mov r3, r1 - 8005176: 71bb strb r3, [r7, #6] + 800516c: b590 push {r4, r7, lr} + 800516e: b08b sub sp, #44 ; 0x2c + 8005170: af00 add r7, sp, #0 + 8005172: 4603 mov r3, r0 + 8005174: 603a str r2, [r7, #0] + 8005176: 71fb strb r3, [r7, #7] + 8005178: 460b mov r3, r1 + 800517a: 71bb strb r3, [r7, #6] DRESULT res; BYTE n, csd[16], *ptr = buff; - 8005178: 683b ldr r3, [r7, #0] - 800517a: 623b str r3, [r7, #32] + 800517c: 683b ldr r3, [r7, #0] + 800517e: 623b str r3, [r7, #32] WORD csize; if (drv) - 800517c: 79fb ldrb r3, [r7, #7] - 800517e: 2b00 cmp r3, #0 - 8005180: d001 beq.n 8005186 + 8005180: 79fb ldrb r3, [r7, #7] + 8005182: 2b00 cmp r3, #0 + 8005184: d001 beq.n 800518a return RES_PARERR; - 8005182: 2304 movs r3, #4 - 8005184: e11b b.n 80053be + 8005186: 2304 movs r3, #4 + 8005188: e11b b.n 80053c2 res = RES_ERROR; - 8005186: 2301 movs r3, #1 - 8005188: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800518a: 2301 movs r3, #1 + 800518c: f887 3027 strb.w r3, [r7, #39] ; 0x27 if (ctrl == CTRL_POWER) - 800518c: 79bb ldrb r3, [r7, #6] - 800518e: 2b05 cmp r3, #5 - 8005190: d129 bne.n 80051e6 + 8005190: 79bb ldrb r3, [r7, #6] + 8005192: 2b05 cmp r3, #5 + 8005194: d129 bne.n 80051ea { switch (*ptr) - 8005192: 6a3b ldr r3, [r7, #32] - 8005194: 781b ldrb r3, [r3, #0] - 8005196: 2b02 cmp r3, #2 - 8005198: d017 beq.n 80051ca + 8005196: 6a3b ldr r3, [r7, #32] + 8005198: 781b ldrb r3, [r3, #0] 800519a: 2b02 cmp r3, #2 - 800519c: dc1f bgt.n 80051de - 800519e: 2b00 cmp r3, #0 - 80051a0: d002 beq.n 80051a8 - 80051a2: 2b01 cmp r3, #1 - 80051a4: d00b beq.n 80051be - 80051a6: e01a b.n 80051de + 800519c: d017 beq.n 80051ce + 800519e: 2b02 cmp r3, #2 + 80051a0: dc1f bgt.n 80051e2 + 80051a2: 2b00 cmp r3, #0 + 80051a4: d002 beq.n 80051ac + 80051a6: 2b01 cmp r3, #1 + 80051a8: d00b beq.n 80051c2 + 80051aa: e01a b.n 80051e2 { case 0: if (SD_CheckPower()) - 80051a8: f7ff fcfc bl 8004ba4 - 80051ac: 4603 mov r3, r0 - 80051ae: 2b00 cmp r3, #0 - 80051b0: d001 beq.n 80051b6 + 80051ac: f7ff fcfc bl 8004ba8 + 80051b0: 4603 mov r3, r0 + 80051b2: 2b00 cmp r3, #0 + 80051b4: d001 beq.n 80051ba SD_PowerOff(); /* Power Off */ - 80051b2: f7ff fceb bl 8004b8c + 80051b6: f7ff fceb bl 8004b90 res = RES_OK; - 80051b6: 2300 movs r3, #0 - 80051b8: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80051ba: 2300 movs r3, #0 + 80051bc: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 80051bc: e0fd b.n 80053ba + 80051c0: e0fd b.n 80053be case 1: SD_PowerOn(); /* Power On */ - 80051be: f7ff fc99 bl 8004af4 + 80051c2: f7ff fc99 bl 8004af8 res = RES_OK; - 80051c2: 2300 movs r3, #0 - 80051c4: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80051c6: 2300 movs r3, #0 + 80051c8: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 80051c8: e0f7 b.n 80053ba + 80051cc: e0f7 b.n 80053be case 2: *(ptr + 1) = (BYTE) SD_CheckPower(); - 80051ca: 6a3b ldr r3, [r7, #32] - 80051cc: 1c5c adds r4, r3, #1 - 80051ce: f7ff fce9 bl 8004ba4 - 80051d2: 4603 mov r3, r0 - 80051d4: 7023 strb r3, [r4, #0] + 80051ce: 6a3b ldr r3, [r7, #32] + 80051d0: 1c5c adds r4, r3, #1 + 80051d2: f7ff fce9 bl 8004ba8 + 80051d6: 4603 mov r3, r0 + 80051d8: 7023 strb r3, [r4, #0] res = RES_OK; /* Power Check */ - 80051d6: 2300 movs r3, #0 - 80051d8: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80051da: 2300 movs r3, #0 + 80051dc: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 80051dc: e0ed b.n 80053ba + 80051e0: e0ed b.n 80053be default: res = RES_PARERR; - 80051de: 2304 movs r3, #4 - 80051e0: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 80051e4: e0e9 b.n 80053ba + 80051e2: 2304 movs r3, #4 + 80051e4: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80051e8: e0e9 b.n 80053be } } else { if (Stat & STA_NOINIT) - 80051e6: 4b78 ldr r3, [pc, #480] ; (80053c8 ) - 80051e8: 781b ldrb r3, [r3, #0] - 80051ea: b2db uxtb r3, r3 - 80051ec: f003 0301 and.w r3, r3, #1 - 80051f0: 2b00 cmp r3, #0 - 80051f2: d001 beq.n 80051f8 + 80051ea: 4b78 ldr r3, [pc, #480] ; (80053cc ) + 80051ec: 781b ldrb r3, [r3, #0] + 80051ee: b2db uxtb r3, r3 + 80051f0: f003 0301 and.w r3, r3, #1 + 80051f4: 2b00 cmp r3, #0 + 80051f6: d001 beq.n 80051fc return RES_NOTRDY; - 80051f4: 2303 movs r3, #3 - 80051f6: e0e2 b.n 80053be + 80051f8: 2303 movs r3, #3 + 80051fa: e0e2 b.n 80053c2 SELECT(); - 80051f8: f7ff fbfe bl 80049f8 switch (ctrl) - 80051fc: 79bb ldrb r3, [r7, #6] - 80051fe: 2b0d cmp r3, #13 - 8005200: f200 80cc bhi.w 800539c - 8005204: a201 add r2, pc, #4 ; (adr r2, 800520c ) - 8005206: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800520a: bf00 nop - 800520c: 08005307 .word 0x08005307 - 8005210: 08005245 .word 0x08005245 - 8005214: 080052f7 .word 0x080052f7 - 8005218: 0800539d .word 0x0800539d - 800521c: 0800539d .word 0x0800539d - 8005220: 0800539d .word 0x0800539d - 8005224: 0800539d .word 0x0800539d - 8005228: 0800539d .word 0x0800539d - 800522c: 0800539d .word 0x0800539d - 8005230: 0800539d .word 0x0800539d - 8005234: 0800539d .word 0x0800539d - 8005238: 08005319 .word 0x08005319 - 800523c: 0800533d .word 0x0800533d - 8005240: 08005361 .word 0x08005361 + 8005200: 79bb ldrb r3, [r7, #6] + 8005202: 2b0d cmp r3, #13 + 8005204: f200 80cc bhi.w 80053a0 + 8005208: a201 add r2, pc, #4 ; (adr r2, 8005210 ) + 800520a: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 800520e: bf00 nop + 8005210: 0800530b .word 0x0800530b + 8005214: 08005249 .word 0x08005249 + 8005218: 080052fb .word 0x080052fb + 800521c: 080053a1 .word 0x080053a1 + 8005220: 080053a1 .word 0x080053a1 + 8005224: 080053a1 .word 0x080053a1 + 8005228: 080053a1 .word 0x080053a1 + 800522c: 080053a1 .word 0x080053a1 + 8005230: 080053a1 .word 0x080053a1 + 8005234: 080053a1 .word 0x080053a1 + 8005238: 080053a1 .word 0x080053a1 + 800523c: 0800531d .word 0x0800531d + 8005240: 08005341 .word 0x08005341 + 8005244: 08005365 .word 0x08005365 { case GET_SECTOR_COUNT: if ((SD_SendCmd(CMD9, 0) == 0) && SD_RxDataBlock(csd, 16)) - 8005244: 2100 movs r1, #0 - 8005246: 2049 movs r0, #73 ; 0x49 - 8005248: f7ff fd46 bl 8004cd8 - 800524c: 4603 mov r3, r0 - 800524e: 2b00 cmp r3, #0 - 8005250: f040 80a8 bne.w 80053a4 - 8005254: f107 030c add.w r3, r7, #12 - 8005258: 2110 movs r1, #16 - 800525a: 4618 mov r0, r3 - 800525c: f7ff fcac bl 8004bb8 - 8005260: 4603 mov r3, r0 - 8005262: 2b00 cmp r3, #0 - 8005264: f000 809e beq.w 80053a4 + 8005248: 2100 movs r1, #0 + 800524a: 2049 movs r0, #73 ; 0x49 + 800524c: f7ff fd46 bl 8004cdc + 8005250: 4603 mov r3, r0 + 8005252: 2b00 cmp r3, #0 + 8005254: f040 80a8 bne.w 80053a8 + 8005258: f107 030c add.w r3, r7, #12 + 800525c: 2110 movs r1, #16 + 800525e: 4618 mov r0, r3 + 8005260: f7ff fcac bl 8004bbc + 8005264: 4603 mov r3, r0 + 8005266: 2b00 cmp r3, #0 + 8005268: f000 809e beq.w 80053a8 { if ((csd[0] >> 6) == 1) - 8005268: 7b3b ldrb r3, [r7, #12] - 800526a: 099b lsrs r3, r3, #6 - 800526c: b2db uxtb r3, r3 - 800526e: 2b01 cmp r3, #1 - 8005270: d10e bne.n 8005290 + 800526c: 7b3b ldrb r3, [r7, #12] + 800526e: 099b lsrs r3, r3, #6 + 8005270: b2db uxtb r3, r3 + 8005272: 2b01 cmp r3, #1 + 8005274: d10e bne.n 8005294 { /* SDC ver 2.00 */ csize = csd[9] + ((WORD) csd[8] << 8) + 1; - 8005272: 7d7b ldrb r3, [r7, #21] - 8005274: b29a uxth r2, r3 - 8005276: 7d3b ldrb r3, [r7, #20] - 8005278: b29b uxth r3, r3 - 800527a: 021b lsls r3, r3, #8 + 8005276: 7d7b ldrb r3, [r7, #21] + 8005278: b29a uxth r2, r3 + 800527a: 7d3b ldrb r3, [r7, #20] 800527c: b29b uxth r3, r3 - 800527e: 4413 add r3, r2 + 800527e: 021b lsls r3, r3, #8 8005280: b29b uxth r3, r3 - 8005282: 3301 adds r3, #1 - 8005284: 83fb strh r3, [r7, #30] + 8005282: 4413 add r3, r2 + 8005284: b29b uxth r3, r3 + 8005286: 3301 adds r3, #1 + 8005288: 83fb strh r3, [r7, #30] *(DWORD*) buff = (DWORD) csize << 10; - 8005286: 8bfb ldrh r3, [r7, #30] - 8005288: 029a lsls r2, r3, #10 - 800528a: 683b ldr r3, [r7, #0] - 800528c: 601a str r2, [r3, #0] - 800528e: e02e b.n 80052ee + 800528a: 8bfb ldrh r3, [r7, #30] + 800528c: 029a lsls r2, r3, #10 + 800528e: 683b ldr r3, [r7, #0] + 8005290: 601a str r2, [r3, #0] + 8005292: e02e b.n 80052f2 } else { /* MMC or SDC ver 1.XX */ n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2; - 8005290: 7c7b ldrb r3, [r7, #17] - 8005292: f003 030f and.w r3, r3, #15 - 8005296: b2da uxtb r2, r3 - 8005298: 7dbb ldrb r3, [r7, #22] - 800529a: 09db lsrs r3, r3, #7 - 800529c: b2db uxtb r3, r3 - 800529e: 4413 add r3, r2 - 80052a0: b2da uxtb r2, r3 - 80052a2: 7d7b ldrb r3, [r7, #21] - 80052a4: 005b lsls r3, r3, #1 - 80052a6: b2db uxtb r3, r3 - 80052a8: f003 0306 and.w r3, r3, #6 - 80052ac: b2db uxtb r3, r3 - 80052ae: 4413 add r3, r2 + 8005294: 7c7b ldrb r3, [r7, #17] + 8005296: f003 030f and.w r3, r3, #15 + 800529a: b2da uxtb r2, r3 + 800529c: 7dbb ldrb r3, [r7, #22] + 800529e: 09db lsrs r3, r3, #7 + 80052a0: b2db uxtb r3, r3 + 80052a2: 4413 add r3, r2 + 80052a4: b2da uxtb r2, r3 + 80052a6: 7d7b ldrb r3, [r7, #21] + 80052a8: 005b lsls r3, r3, #1 + 80052aa: b2db uxtb r3, r3 + 80052ac: f003 0306 and.w r3, r3, #6 80052b0: b2db uxtb r3, r3 - 80052b2: 3302 adds r3, #2 - 80052b4: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 80052b2: 4413 add r3, r2 + 80052b4: b2db uxtb r3, r3 + 80052b6: 3302 adds r3, #2 + 80052b8: f887 3026 strb.w r3, [r7, #38] ; 0x26 csize = (csd[8] >> 6) + ((WORD) csd[7] << 2) + ((WORD) (csd[6] & 3) << 10) + 1; - 80052b8: 7d3b ldrb r3, [r7, #20] - 80052ba: 099b lsrs r3, r3, #6 - 80052bc: b2db uxtb r3, r3 - 80052be: b29a uxth r2, r3 - 80052c0: 7cfb ldrb r3, [r7, #19] - 80052c2: b29b uxth r3, r3 - 80052c4: 009b lsls r3, r3, #2 + 80052bc: 7d3b ldrb r3, [r7, #20] + 80052be: 099b lsrs r3, r3, #6 + 80052c0: b2db uxtb r3, r3 + 80052c2: b29a uxth r2, r3 + 80052c4: 7cfb ldrb r3, [r7, #19] 80052c6: b29b uxth r3, r3 - 80052c8: 4413 add r3, r2 - 80052ca: b29a uxth r2, r3 - 80052cc: 7cbb ldrb r3, [r7, #18] - 80052ce: 029b lsls r3, r3, #10 - 80052d0: b29b uxth r3, r3 - 80052d2: f403 6340 and.w r3, r3, #3072 ; 0xc00 - 80052d6: b29b uxth r3, r3 - 80052d8: 4413 add r3, r2 + 80052c8: 009b lsls r3, r3, #2 + 80052ca: b29b uxth r3, r3 + 80052cc: 4413 add r3, r2 + 80052ce: b29a uxth r2, r3 + 80052d0: 7cbb ldrb r3, [r7, #18] + 80052d2: 029b lsls r3, r3, #10 + 80052d4: b29b uxth r3, r3 + 80052d6: f403 6340 and.w r3, r3, #3072 ; 0xc00 80052da: b29b uxth r3, r3 - 80052dc: 3301 adds r3, #1 - 80052de: 83fb strh r3, [r7, #30] + 80052dc: 4413 add r3, r2 + 80052de: b29b uxth r3, r3 + 80052e0: 3301 adds r3, #1 + 80052e2: 83fb strh r3, [r7, #30] *(DWORD*) buff = (DWORD) csize << (n - 9); - 80052e0: 8bfa ldrh r2, [r7, #30] - 80052e2: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 80052e6: 3b09 subs r3, #9 - 80052e8: 409a lsls r2, r3 - 80052ea: 683b ldr r3, [r7, #0] - 80052ec: 601a str r2, [r3, #0] + 80052e4: 8bfa ldrh r2, [r7, #30] + 80052e6: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 80052ea: 3b09 subs r3, #9 + 80052ec: 409a lsls r2, r3 + 80052ee: 683b ldr r3, [r7, #0] + 80052f0: 601a str r2, [r3, #0] } res = RES_OK; - 80052ee: 2300 movs r3, #0 - 80052f0: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80052f2: 2300 movs r3, #0 + 80052f4: f887 3027 strb.w r3, [r7, #39] ; 0x27 } break; - 80052f4: e056 b.n 80053a4 + 80052f8: e056 b.n 80053a8 case GET_SECTOR_SIZE: *(WORD*) buff = 512; - 80052f6: 683b ldr r3, [r7, #0] - 80052f8: f44f 7200 mov.w r2, #512 ; 0x200 - 80052fc: 801a strh r2, [r3, #0] + 80052fa: 683b ldr r3, [r7, #0] + 80052fc: f44f 7200 mov.w r2, #512 ; 0x200 + 8005300: 801a strh r2, [r3, #0] res = RES_OK; - 80052fe: 2300 movs r3, #0 - 8005300: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8005302: 2300 movs r3, #0 + 8005304: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 8005304: e055 b.n 80053b2 + 8005308: e055 b.n 80053b6 case CTRL_SYNC: if (SD_ReadyWait() == 0xFF) - 8005306: f7ff fbd5 bl 8004ab4 - 800530a: 4603 mov r3, r0 - 800530c: 2bff cmp r3, #255 ; 0xff - 800530e: d14b bne.n 80053a8 + 800530a: f7ff fbd5 bl 8004ab8 + 800530e: 4603 mov r3, r0 + 8005310: 2bff cmp r3, #255 ; 0xff + 8005312: d14b bne.n 80053ac res = RES_OK; - 8005310: 2300 movs r3, #0 - 8005312: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8005314: 2300 movs r3, #0 + 8005316: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 8005316: e047 b.n 80053a8 + 800531a: e047 b.n 80053ac case MMC_GET_CSD: if (SD_SendCmd(CMD9, 0) == 0 && SD_RxDataBlock(ptr, 16)) - 8005318: 2100 movs r1, #0 - 800531a: 2049 movs r0, #73 ; 0x49 - 800531c: f7ff fcdc bl 8004cd8 - 8005320: 4603 mov r3, r0 - 8005322: 2b00 cmp r3, #0 - 8005324: d142 bne.n 80053ac - 8005326: 2110 movs r1, #16 - 8005328: 6a38 ldr r0, [r7, #32] - 800532a: f7ff fc45 bl 8004bb8 - 800532e: 4603 mov r3, r0 - 8005330: 2b00 cmp r3, #0 - 8005332: d03b beq.n 80053ac + 800531c: 2100 movs r1, #0 + 800531e: 2049 movs r0, #73 ; 0x49 + 8005320: f7ff fcdc bl 8004cdc + 8005324: 4603 mov r3, r0 + 8005326: 2b00 cmp r3, #0 + 8005328: d142 bne.n 80053b0 + 800532a: 2110 movs r1, #16 + 800532c: 6a38 ldr r0, [r7, #32] + 800532e: f7ff fc45 bl 8004bbc + 8005332: 4603 mov r3, r0 + 8005334: 2b00 cmp r3, #0 + 8005336: d03b beq.n 80053b0 res = RES_OK; - 8005334: 2300 movs r3, #0 - 8005336: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 8005338: 2300 movs r3, #0 + 800533a: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 800533a: e037 b.n 80053ac + 800533e: e037 b.n 80053b0 case MMC_GET_CID: if (SD_SendCmd(CMD10, 0) == 0 && SD_RxDataBlock(ptr, 16)) - 800533c: 2100 movs r1, #0 - 800533e: 204a movs r0, #74 ; 0x4a - 8005340: f7ff fcca bl 8004cd8 - 8005344: 4603 mov r3, r0 - 8005346: 2b00 cmp r3, #0 - 8005348: d132 bne.n 80053b0 - 800534a: 2110 movs r1, #16 - 800534c: 6a38 ldr r0, [r7, #32] - 800534e: f7ff fc33 bl 8004bb8 - 8005352: 4603 mov r3, r0 - 8005354: 2b00 cmp r3, #0 - 8005356: d02b beq.n 80053b0 + 8005340: 2100 movs r1, #0 + 8005342: 204a movs r0, #74 ; 0x4a + 8005344: f7ff fcca bl 8004cdc + 8005348: 4603 mov r3, r0 + 800534a: 2b00 cmp r3, #0 + 800534c: d132 bne.n 80053b4 + 800534e: 2110 movs r1, #16 + 8005350: 6a38 ldr r0, [r7, #32] + 8005352: f7ff fc33 bl 8004bbc + 8005356: 4603 mov r3, r0 + 8005358: 2b00 cmp r3, #0 + 800535a: d02b beq.n 80053b4 res = RES_OK; - 8005358: 2300 movs r3, #0 - 800535a: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800535c: 2300 movs r3, #0 + 800535e: f887 3027 strb.w r3, [r7, #39] ; 0x27 break; - 800535e: e027 b.n 80053b0 + 8005362: e027 b.n 80053b4 case MMC_GET_OCR: if (SD_SendCmd(CMD58, 0) == 0) - 8005360: 2100 movs r1, #0 - 8005362: 207a movs r0, #122 ; 0x7a - 8005364: f7ff fcb8 bl 8004cd8 - 8005368: 4603 mov r3, r0 - 800536a: 2b00 cmp r3, #0 - 800536c: d116 bne.n 800539c + 8005364: 2100 movs r1, #0 + 8005366: 207a movs r0, #122 ; 0x7a + 8005368: f7ff fcb8 bl 8004cdc + 800536c: 4603 mov r3, r0 + 800536e: 2b00 cmp r3, #0 + 8005370: d116 bne.n 80053a0 { for (n = 0; n < 4; n++) - 800536e: 2300 movs r3, #0 - 8005370: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 8005374: e00b b.n 800538e + 8005372: 2300 movs r3, #0 + 8005374: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8005378: e00b b.n 8005392 { *ptr++ = SPI_RxByte(); - 8005376: 6a3c ldr r4, [r7, #32] - 8005378: 1c63 adds r3, r4, #1 - 800537a: 623b str r3, [r7, #32] - 800537c: f7ff fb6e bl 8004a5c - 8005380: 4603 mov r3, r0 - 8005382: 7023 strb r3, [r4, #0] + 800537a: 6a3c ldr r4, [r7, #32] + 800537c: 1c63 adds r3, r4, #1 + 800537e: 623b str r3, [r7, #32] + 8005380: f7ff fb6e bl 8004a60 + 8005384: 4603 mov r3, r0 + 8005386: 7023 strb r3, [r4, #0] for (n = 0; n < 4; n++) - 8005384: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8005388: 3301 adds r3, #1 - 800538a: f887 3026 strb.w r3, [r7, #38] ; 0x26 - 800538e: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 - 8005392: 2b03 cmp r3, #3 - 8005394: d9ef bls.n 8005376 + 8005388: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 800538c: 3301 adds r3, #1 + 800538e: f887 3026 strb.w r3, [r7, #38] ; 0x26 + 8005392: f897 3026 ldrb.w r3, [r7, #38] ; 0x26 + 8005396: 2b03 cmp r3, #3 + 8005398: d9ef bls.n 800537a } res = RES_OK; - 8005396: 2300 movs r3, #0 - 8005398: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 800539a: 2300 movs r3, #0 + 800539c: f887 3027 strb.w r3, [r7, #39] ; 0x27 } default: res = RES_PARERR; - 800539c: 2304 movs r3, #4 - 800539e: f887 3027 strb.w r3, [r7, #39] ; 0x27 - 80053a2: e006 b.n 80053b2 - break; - 80053a4: bf00 nop - 80053a6: e004 b.n 80053b2 + 80053a0: 2304 movs r3, #4 + 80053a2: f887 3027 strb.w r3, [r7, #39] ; 0x27 + 80053a6: e006 b.n 80053b6 break; 80053a8: bf00 nop - 80053aa: e002 b.n 80053b2 + 80053aa: e004 b.n 80053b6 break; 80053ac: bf00 nop - 80053ae: e000 b.n 80053b2 + 80053ae: e002 b.n 80053b6 break; 80053b0: bf00 nop + 80053b2: e000 b.n 80053b6 + break; + 80053b4: bf00 nop } DESELECT(); - 80053b2: f7ff fb2d bl 8004a10 + 80053b6: f7ff fb2d bl 8004a14 SPI_RxByte(); - 80053b6: f7ff fb51 bl 8004a5c + 80053ba: f7ff fb51 bl 8004a60 } return res; - 80053ba: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 + 80053be: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 } - 80053be: 4618 mov r0, r3 - 80053c0: 372c adds r7, #44 ; 0x2c - 80053c2: 46bd mov sp, r7 - 80053c4: bd90 pop {r4, r7, pc} - 80053c6: bf00 nop - 80053c8: 20000020 .word 0x20000020 + 80053c2: 4618 mov r0, r3 + 80053c4: 372c adds r7, #44 ; 0x2c + 80053c6: 46bd mov sp, r7 + 80053c8: bd90 pop {r4, r7, pc} + 80053ca: bf00 nop + 80053cc: 20000020 .word 0x20000020 -080053cc : +080053d0 : _lcd_dev lcddev; //¹ÜÀíLCDÖØÒª²ÎÊý //**************************************************¼¸ÖÖ¿ìËÙ½Ó¿Ú //д¼Ä´æÆ÷º¯Êý //regval:¼Ä´æÆ÷Öµ void LCD_WR_REG(uint16_t regval) { - 80053cc: b480 push {r7} - 80053ce: b083 sub sp, #12 - 80053d0: af00 add r7, sp, #0 - 80053d2: 4603 mov r3, r0 - 80053d4: 80fb strh r3, [r7, #6] + 80053d0: b480 push {r7} + 80053d2: b083 sub sp, #12 + 80053d4: af00 add r7, sp, #0 + 80053d6: 4603 mov r3, r0 + 80053d8: 80fb strh r3, [r7, #6] LCD_REG_ADDRESS=regval;//дÈëҪдµÄ¼Ä´æÆ÷ÐòºÅ - 80053d6: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 - 80053da: 88fb ldrh r3, [r7, #6] - 80053dc: 8013 strh r3, [r2, #0] + 80053da: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 + 80053de: 88fb ldrh r3, [r7, #6] + 80053e0: 8013 strh r3, [r2, #0] } - 80053de: bf00 nop - 80053e0: 370c adds r7, #12 - 80053e2: 46bd mov sp, r7 - 80053e4: bc80 pop {r7} - 80053e6: 4770 bx lr + 80053e2: bf00 nop + 80053e4: 370c adds r7, #12 + 80053e6: 46bd mov sp, r7 + 80053e8: bc80 pop {r7} + 80053ea: 4770 bx lr -080053e8 : +080053ec : //дLCDÊý¾Ý //data:ҪдÈëµÄÖµ void LCD_WR_DATA(uint16_t data) { - 80053e8: b480 push {r7} - 80053ea: b083 sub sp, #12 - 80053ec: af00 add r7, sp, #0 - 80053ee: 4603 mov r3, r0 - 80053f0: 80fb strh r3, [r7, #6] + 80053ec: b480 push {r7} + 80053ee: b083 sub sp, #12 + 80053f0: af00 add r7, sp, #0 + 80053f2: 4603 mov r3, r0 + 80053f4: 80fb strh r3, [r7, #6] LCD_DATA_ADDRESS=data; - 80053f2: 4a04 ldr r2, [pc, #16] ; (8005404 ) - 80053f4: 88fb ldrh r3, [r7, #6] - 80053f6: 8013 strh r3, [r2, #0] + 80053f6: 4a04 ldr r2, [pc, #16] ; (8005408 ) + 80053f8: 88fb ldrh r3, [r7, #6] + 80053fa: 8013 strh r3, [r2, #0] } - 80053f8: bf00 nop - 80053fa: 370c adds r7, #12 - 80053fc: 46bd mov sp, r7 - 80053fe: bc80 pop {r7} - 8005400: 4770 bx lr - 8005402: bf00 nop - 8005404: 6c000800 .word 0x6c000800 + 80053fc: bf00 nop + 80053fe: 370c adds r7, #12 + 8005400: 46bd mov sp, r7 + 8005402: bc80 pop {r7} + 8005404: 4770 bx lr + 8005406: bf00 nop + 8005408: 6c000800 .word 0x6c000800 -08005408 : +0800540c : } //д¼Ä´æÆ÷ //LCD_Reg:¼Ä´æÆ÷µØÖ· //LCD_RegValue:ҪдÈëµÄÊý¾Ý void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue) { - 8005408: b480 push {r7} - 800540a: b083 sub sp, #12 - 800540c: af00 add r7, sp, #0 - 800540e: 4603 mov r3, r0 - 8005410: 460a mov r2, r1 - 8005412: 80fb strh r3, [r7, #6] - 8005414: 4613 mov r3, r2 - 8005416: 80bb strh r3, [r7, #4] + 800540c: b480 push {r7} + 800540e: b083 sub sp, #12 + 8005410: af00 add r7, sp, #0 + 8005412: 4603 mov r3, r0 + 8005414: 460a mov r2, r1 + 8005416: 80fb strh r3, [r7, #6] + 8005418: 4613 mov r3, r2 + 800541a: 80bb strh r3, [r7, #4] LCD_REG_ADDRESS = LCD_Reg; //дÈëҪдµÄ¼Ä´æÆ÷ÐòºÅ - 8005418: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 - 800541c: 88fb ldrh r3, [r7, #6] - 800541e: 8013 strh r3, [r2, #0] + 800541c: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 + 8005420: 88fb ldrh r3, [r7, #6] + 8005422: 8013 strh r3, [r2, #0] LCD_DATA_ADDRESS = LCD_RegValue;//дÈëÊý¾Ý - 8005420: 4a03 ldr r2, [pc, #12] ; (8005430 ) - 8005422: 88bb ldrh r3, [r7, #4] - 8005424: 8013 strh r3, [r2, #0] + 8005424: 4a03 ldr r2, [pc, #12] ; (8005434 ) + 8005426: 88bb ldrh r3, [r7, #4] + 8005428: 8013 strh r3, [r2, #0] } - 8005426: bf00 nop - 8005428: 370c adds r7, #12 - 800542a: 46bd mov sp, r7 - 800542c: bc80 pop {r7} - 800542e: 4770 bx lr - 8005430: 6c000800 .word 0x6c000800 + 800542a: bf00 nop + 800542c: 370c adds r7, #12 + 800542e: 46bd mov sp, r7 + 8005430: bc80 pop {r7} + 8005432: 4770 bx lr + 8005434: 6c000800 .word 0x6c000800 -08005434 : +08005438 : //¶Á¼Ä´æÆ÷ //LCD_Reg:¼Ä´æÆ÷µØÖ· //·µ»ØÖµ:¶Áµ½µÄÊý¾Ý uint16_t LCD_ReadReg(uint16_t LCD_Reg) { - 8005434: b480 push {r7} - 8005436: b083 sub sp, #12 - 8005438: af00 add r7, sp, #0 - 800543a: 4603 mov r3, r0 - 800543c: 80fb strh r3, [r7, #6] + 8005438: b480 push {r7} + 800543a: b083 sub sp, #12 + 800543c: af00 add r7, sp, #0 + 800543e: 4603 mov r3, r0 + 8005440: 80fb strh r3, [r7, #6] LCD_REG_ADDRESS=LCD_Reg; //дÈëÒª¶ÁµÄ¼Ä´æÆ÷ÐòºÅ - 800543e: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 - 8005442: 88fb ldrh r3, [r7, #6] - 8005444: 8013 strh r3, [r2, #0] + 8005442: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 + 8005446: 88fb ldrh r3, [r7, #6] + 8005448: 8013 strh r3, [r2, #0] //delay_us(5); return LCD_DATA_ADDRESS; //·µ»Ø¶Áµ½µÄÖµ - 8005446: 4b04 ldr r3, [pc, #16] ; (8005458 ) - 8005448: 881b ldrh r3, [r3, #0] - 800544a: b29b uxth r3, r3 + 800544a: 4b04 ldr r3, [pc, #16] ; (800545c ) + 800544c: 881b ldrh r3, [r3, #0] + 800544e: b29b uxth r3, r3 } - 800544c: 4618 mov r0, r3 - 800544e: 370c adds r7, #12 - 8005450: 46bd mov sp, r7 - 8005452: bc80 pop {r7} - 8005454: 4770 bx lr - 8005456: bf00 nop - 8005458: 6c000800 .word 0x6c000800 + 8005450: 4618 mov r0, r3 + 8005452: 370c adds r7, #12 + 8005454: 46bd mov sp, r7 + 8005456: bc80 pop {r7} + 8005458: 4770 bx lr + 800545a: bf00 nop + 800545c: 6c000800 .word 0x6c000800 -0800545c : +08005460 : //×¢Òâ:ÆäËûº¯Êý¿ÉÄÜ»áÊܵ½´Ëº¯ÊýÉèÖõÄÓ°Ïì(ÓÈÆäÊÇ9341/6804ÕâÁ½¸öÆæÝâ), //ËùÒÔ,Ò»°ãÉèÖÃΪL2R_U2D¼´¿É,Èç¹ûÉèÖÃΪÆäËûɨÃ跽ʽ,¿ÉÄܵ¼ÖÂÏÔʾ²»Õý³£. //dir:0~7,´ú±í8¸ö·½Ïò(¾ßÌ嶨Òå¼ûlcd.h) //9320/9325/9328/4531/4535/1505/b505/8989/5408/9341/5310µÈICÒѾ­Êµ¼Ê²âÊÔ void LCD_Scan_Dir(uint8_t dir) { - 800545c: b580 push {r7, lr} - 800545e: b084 sub sp, #16 - 8005460: af00 add r7, sp, #0 - 8005462: 4603 mov r3, r0 - 8005464: 71fb strb r3, [r7, #7] + 8005460: b580 push {r7, lr} + 8005462: b084 sub sp, #16 + 8005464: af00 add r7, sp, #0 + 8005466: 4603 mov r3, r0 + 8005468: 71fb strb r3, [r7, #7] uint16_t regval=0; - 8005466: 2300 movs r3, #0 - 8005468: 81fb strh r3, [r7, #14] - uint8_t dirreg=0; 800546a: 2300 movs r3, #0 - 800546c: 737b strb r3, [r7, #13] + 800546c: 81fb strh r3, [r7, #14] + uint8_t dirreg=0; + 800546e: 2300 movs r3, #0 + 8005470: 737b strb r3, [r7, #13] uint16_t temp; if(lcddev.dir==1&&lcddev.id!=0X6804)//ºáÆÁʱ£¬¶Ô6804²»¸Ä±äɨÃè·½Ïò£¡ - 800546e: 4ba8 ldr r3, [pc, #672] ; (8005710 ) - 8005470: 799b ldrb r3, [r3, #6] - 8005472: 2b01 cmp r3, #1 - 8005474: d134 bne.n 80054e0 - 8005476: 4ba6 ldr r3, [pc, #664] ; (8005710 ) - 8005478: 889b ldrh r3, [r3, #4] - 800547a: f646 0204 movw r2, #26628 ; 0x6804 - 800547e: 4293 cmp r3, r2 - 8005480: d02e beq.n 80054e0 + 8005472: 4ba8 ldr r3, [pc, #672] ; (8005714 ) + 8005474: 799b ldrb r3, [r3, #6] + 8005476: 2b01 cmp r3, #1 + 8005478: d134 bne.n 80054e4 + 800547a: 4ba6 ldr r3, [pc, #664] ; (8005714 ) + 800547c: 889b ldrh r3, [r3, #4] + 800547e: f646 0204 movw r2, #26628 ; 0x6804 + 8005482: 4293 cmp r3, r2 + 8005484: d02e beq.n 80054e4 { switch(dir)//·½Ïòת»» - 8005482: 79fb ldrb r3, [r7, #7] - 8005484: 2b07 cmp r3, #7 - 8005486: d82c bhi.n 80054e2 - 8005488: a201 add r2, pc, #4 ; (adr r2, 8005490 ) - 800548a: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800548e: bf00 nop - 8005490: 080054b1 .word 0x080054b1 - 8005494: 080054b7 .word 0x080054b7 - 8005498: 080054bd .word 0x080054bd - 800549c: 080054c3 .word 0x080054c3 - 80054a0: 080054c9 .word 0x080054c9 - 80054a4: 080054cf .word 0x080054cf - 80054a8: 080054d5 .word 0x080054d5 - 80054ac: 080054db .word 0x080054db + 8005486: 79fb ldrb r3, [r7, #7] + 8005488: 2b07 cmp r3, #7 + 800548a: d82c bhi.n 80054e6 + 800548c: a201 add r2, pc, #4 ; (adr r2, 8005494 ) + 800548e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8005492: bf00 nop + 8005494: 080054b5 .word 0x080054b5 + 8005498: 080054bb .word 0x080054bb + 800549c: 080054c1 .word 0x080054c1 + 80054a0: 080054c7 .word 0x080054c7 + 80054a4: 080054cd .word 0x080054cd + 80054a8: 080054d3 .word 0x080054d3 + 80054ac: 080054d9 .word 0x080054d9 + 80054b0: 080054df .word 0x080054df { case 0:dir=6;break; - 80054b0: 2306 movs r3, #6 - 80054b2: 71fb strb r3, [r7, #7] - 80054b4: e015 b.n 80054e2 + 80054b4: 2306 movs r3, #6 + 80054b6: 71fb strb r3, [r7, #7] + 80054b8: e015 b.n 80054e6 case 1:dir=7;break; - 80054b6: 2307 movs r3, #7 - 80054b8: 71fb strb r3, [r7, #7] - 80054ba: e012 b.n 80054e2 + 80054ba: 2307 movs r3, #7 + 80054bc: 71fb strb r3, [r7, #7] + 80054be: e012 b.n 80054e6 case 2:dir=4;break; - 80054bc: 2304 movs r3, #4 - 80054be: 71fb strb r3, [r7, #7] - 80054c0: e00f b.n 80054e2 + 80054c0: 2304 movs r3, #4 + 80054c2: 71fb strb r3, [r7, #7] + 80054c4: e00f b.n 80054e6 case 3:dir=5;break; - 80054c2: 2305 movs r3, #5 - 80054c4: 71fb strb r3, [r7, #7] - 80054c6: e00c b.n 80054e2 + 80054c6: 2305 movs r3, #5 + 80054c8: 71fb strb r3, [r7, #7] + 80054ca: e00c b.n 80054e6 case 4:dir=1;break; - 80054c8: 2301 movs r3, #1 - 80054ca: 71fb strb r3, [r7, #7] - 80054cc: e009 b.n 80054e2 + 80054cc: 2301 movs r3, #1 + 80054ce: 71fb strb r3, [r7, #7] + 80054d0: e009 b.n 80054e6 case 5:dir=0;break; - 80054ce: 2300 movs r3, #0 - 80054d0: 71fb strb r3, [r7, #7] - 80054d2: e006 b.n 80054e2 + 80054d2: 2300 movs r3, #0 + 80054d4: 71fb strb r3, [r7, #7] + 80054d6: e006 b.n 80054e6 case 6:dir=3;break; - 80054d4: 2303 movs r3, #3 - 80054d6: 71fb strb r3, [r7, #7] - 80054d8: e003 b.n 80054e2 + 80054d8: 2303 movs r3, #3 + 80054da: 71fb strb r3, [r7, #7] + 80054dc: e003 b.n 80054e6 case 7:dir=2;break; - 80054da: 2302 movs r3, #2 - 80054dc: 71fb strb r3, [r7, #7] - 80054de: e000 b.n 80054e2 + 80054de: 2302 movs r3, #2 + 80054e0: 71fb strb r3, [r7, #7] + 80054e2: e000 b.n 80054e6 } } - 80054e0: bf00 nop + 80054e4: bf00 nop if(lcddev.id==0x9341||lcddev.id==0X6804||lcddev.id==0X5310)//9341/6804/5310,ºÜÌØÊâ - 80054e2: 4b8b ldr r3, [pc, #556] ; (8005710 ) - 80054e4: 889b ldrh r3, [r3, #4] - 80054e6: f249 3241 movw r2, #37697 ; 0x9341 - 80054ea: 4293 cmp r3, r2 - 80054ec: d00c beq.n 8005508 - 80054ee: 4b88 ldr r3, [pc, #544] ; (8005710 ) - 80054f0: 889b ldrh r3, [r3, #4] - 80054f2: f646 0204 movw r2, #26628 ; 0x6804 - 80054f6: 4293 cmp r3, r2 - 80054f8: d006 beq.n 8005508 - 80054fa: 4b85 ldr r3, [pc, #532] ; (8005710 ) - 80054fc: 889b ldrh r3, [r3, #4] - 80054fe: f245 3210 movw r2, #21264 ; 0x5310 - 8005502: 4293 cmp r3, r2 - 8005504: f040 80bb bne.w 800567e + 80054e6: 4b8b ldr r3, [pc, #556] ; (8005714 ) + 80054e8: 889b ldrh r3, [r3, #4] + 80054ea: f249 3241 movw r2, #37697 ; 0x9341 + 80054ee: 4293 cmp r3, r2 + 80054f0: d00c beq.n 800550c + 80054f2: 4b88 ldr r3, [pc, #544] ; (8005714 ) + 80054f4: 889b ldrh r3, [r3, #4] + 80054f6: f646 0204 movw r2, #26628 ; 0x6804 + 80054fa: 4293 cmp r3, r2 + 80054fc: d006 beq.n 800550c + 80054fe: 4b85 ldr r3, [pc, #532] ; (8005714 ) + 8005500: 889b ldrh r3, [r3, #4] + 8005502: f245 3210 movw r2, #21264 ; 0x5310 + 8005506: 4293 cmp r3, r2 + 8005508: f040 80bb bne.w 8005682 { switch(dir) - 8005508: 79fb ldrb r3, [r7, #7] - 800550a: 2b07 cmp r3, #7 - 800550c: d835 bhi.n 800557a - 800550e: a201 add r2, pc, #4 ; (adr r2, 8005514 ) - 8005510: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8005514: 0800557b .word 0x0800557b - 8005518: 08005535 .word 0x08005535 - 800551c: 0800553f .word 0x0800553f - 8005520: 08005549 .word 0x08005549 - 8005524: 08005553 .word 0x08005553 - 8005528: 0800555d .word 0x0800555d - 800552c: 08005567 .word 0x08005567 - 8005530: 08005571 .word 0x08005571 + 800550c: 79fb ldrb r3, [r7, #7] + 800550e: 2b07 cmp r3, #7 + 8005510: d835 bhi.n 800557e + 8005512: a201 add r2, pc, #4 ; (adr r2, 8005518 ) + 8005514: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8005518: 0800557f .word 0x0800557f + 800551c: 08005539 .word 0x08005539 + 8005520: 08005543 .word 0x08005543 + 8005524: 0800554d .word 0x0800554d + 8005528: 08005557 .word 0x08005557 + 800552c: 08005561 .word 0x08005561 + 8005530: 0800556b .word 0x0800556b + 8005534: 08005575 .word 0x08005575 { case L2R_U2D://´Ó×óµ½ÓÒ,´ÓÉϵ½Ï regval|=(0<<7)|(0<<6)|(0<<5); break; case L2R_D2U://´Ó×óµ½ÓÒ,´Óϵ½ÉÏ regval|=(1<<7)|(0<<6)|(0<<5); - 8005534: 89fb ldrh r3, [r7, #14] - 8005536: f043 0380 orr.w r3, r3, #128 ; 0x80 - 800553a: 81fb strh r3, [r7, #14] + 8005538: 89fb ldrh r3, [r7, #14] + 800553a: f043 0380 orr.w r3, r3, #128 ; 0x80 + 800553e: 81fb strh r3, [r7, #14] break; - 800553c: e01d b.n 800557a + 8005540: e01d b.n 800557e case R2L_U2D://´ÓÓÒµ½×ó,´ÓÉϵ½Ï regval|=(0<<7)|(1<<6)|(0<<5); - 800553e: 89fb ldrh r3, [r7, #14] - 8005540: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8005544: 81fb strh r3, [r7, #14] + 8005542: 89fb ldrh r3, [r7, #14] + 8005544: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8005548: 81fb strh r3, [r7, #14] break; - 8005546: e018 b.n 800557a + 800554a: e018 b.n 800557e case R2L_D2U://´ÓÓÒµ½×ó,´Óϵ½ÉÏ regval|=(1<<7)|(1<<6)|(0<<5); - 8005548: 89fb ldrh r3, [r7, #14] - 800554a: f043 03c0 orr.w r3, r3, #192 ; 0xc0 - 800554e: 81fb strh r3, [r7, #14] + 800554c: 89fb ldrh r3, [r7, #14] + 800554e: f043 03c0 orr.w r3, r3, #192 ; 0xc0 + 8005552: 81fb strh r3, [r7, #14] break; - 8005550: e013 b.n 800557a + 8005554: e013 b.n 800557e case U2D_L2R://´ÓÉϵ½ÏÂ,´Ó×óµ½ÓÒ regval|=(0<<7)|(0<<6)|(1<<5); - 8005552: 89fb ldrh r3, [r7, #14] - 8005554: f043 0320 orr.w r3, r3, #32 - 8005558: 81fb strh r3, [r7, #14] + 8005556: 89fb ldrh r3, [r7, #14] + 8005558: f043 0320 orr.w r3, r3, #32 + 800555c: 81fb strh r3, [r7, #14] break; - 800555a: e00e b.n 800557a + 800555e: e00e b.n 800557e case U2D_R2L://´ÓÉϵ½ÏÂ,´ÓÓÒµ½×ó regval|=(0<<7)|(1<<6)|(1<<5); - 800555c: 89fb ldrh r3, [r7, #14] - 800555e: f043 0360 orr.w r3, r3, #96 ; 0x60 - 8005562: 81fb strh r3, [r7, #14] + 8005560: 89fb ldrh r3, [r7, #14] + 8005562: f043 0360 orr.w r3, r3, #96 ; 0x60 + 8005566: 81fb strh r3, [r7, #14] break; - 8005564: e009 b.n 800557a + 8005568: e009 b.n 800557e case D2U_L2R://´Óϵ½ÉÏ,´Ó×óµ½ÓÒ regval|=(1<<7)|(0<<6)|(1<<5); - 8005566: 89fb ldrh r3, [r7, #14] - 8005568: f043 03a0 orr.w r3, r3, #160 ; 0xa0 - 800556c: 81fb strh r3, [r7, #14] + 800556a: 89fb ldrh r3, [r7, #14] + 800556c: f043 03a0 orr.w r3, r3, #160 ; 0xa0 + 8005570: 81fb strh r3, [r7, #14] break; - 800556e: e004 b.n 800557a + 8005572: e004 b.n 800557e case D2U_R2L://´Óϵ½ÉÏ,´ÓÓÒµ½×ó regval|=(1<<7)|(1<<6)|(1<<5); - 8005570: 89fb ldrh r3, [r7, #14] - 8005572: f043 03e0 orr.w r3, r3, #224 ; 0xe0 - 8005576: 81fb strh r3, [r7, #14] + 8005574: 89fb ldrh r3, [r7, #14] + 8005576: f043 03e0 orr.w r3, r3, #224 ; 0xe0 + 800557a: 81fb strh r3, [r7, #14] break; - 8005578: bf00 nop + 800557c: bf00 nop } dirreg=0X36; - 800557a: 2336 movs r3, #54 ; 0x36 - 800557c: 737b strb r3, [r7, #13] + 800557e: 2336 movs r3, #54 ; 0x36 + 8005580: 737b strb r3, [r7, #13] if(lcddev.id!=0X5310)regval|=0X08;//5310²»ÐèÒªBGR - 800557e: 4b64 ldr r3, [pc, #400] ; (8005710 ) - 8005580: 889b ldrh r3, [r3, #4] - 8005582: f245 3210 movw r2, #21264 ; 0x5310 - 8005586: 4293 cmp r3, r2 - 8005588: d003 beq.n 8005592 - 800558a: 89fb ldrh r3, [r7, #14] - 800558c: f043 0308 orr.w r3, r3, #8 - 8005590: 81fb strh r3, [r7, #14] + 8005582: 4b64 ldr r3, [pc, #400] ; (8005714 ) + 8005584: 889b ldrh r3, [r3, #4] + 8005586: f245 3210 movw r2, #21264 ; 0x5310 + 800558a: 4293 cmp r3, r2 + 800558c: d003 beq.n 8005596 + 800558e: 89fb ldrh r3, [r7, #14] + 8005590: f043 0308 orr.w r3, r3, #8 + 8005594: 81fb strh r3, [r7, #14] if(lcddev.id==0X6804)regval|=0x02;//6804µÄBIT6ºÍ9341µÄ·´ÁË - 8005592: 4b5f ldr r3, [pc, #380] ; (8005710 ) - 8005594: 889b ldrh r3, [r3, #4] - 8005596: f646 0204 movw r2, #26628 ; 0x6804 - 800559a: 4293 cmp r3, r2 - 800559c: d103 bne.n 80055a6 - 800559e: 89fb ldrh r3, [r7, #14] - 80055a0: f043 0302 orr.w r3, r3, #2 - 80055a4: 81fb strh r3, [r7, #14] + 8005596: 4b5f ldr r3, [pc, #380] ; (8005714 ) + 8005598: 889b ldrh r3, [r3, #4] + 800559a: f646 0204 movw r2, #26628 ; 0x6804 + 800559e: 4293 cmp r3, r2 + 80055a0: d103 bne.n 80055aa + 80055a2: 89fb ldrh r3, [r7, #14] + 80055a4: f043 0302 orr.w r3, r3, #2 + 80055a8: 81fb strh r3, [r7, #14] LCD_WriteReg(dirreg,regval); - 80055a6: 7b7b ldrb r3, [r7, #13] - 80055a8: b29b uxth r3, r3 - 80055aa: 89fa ldrh r2, [r7, #14] - 80055ac: 4611 mov r1, r2 - 80055ae: 4618 mov r0, r3 - 80055b0: f7ff ff2a bl 8005408 + 80055aa: 7b7b ldrb r3, [r7, #13] + 80055ac: b29b uxth r3, r3 + 80055ae: 89fa ldrh r2, [r7, #14] + 80055b0: 4611 mov r1, r2 + 80055b2: 4618 mov r0, r3 + 80055b4: f7ff ff2a bl 800540c if((regval&0X20)||lcddev.dir==1) - 80055b4: 89fb ldrh r3, [r7, #14] - 80055b6: f003 0320 and.w r3, r3, #32 - 80055ba: 2b00 cmp r3, #0 - 80055bc: d103 bne.n 80055c6 - 80055be: 4b54 ldr r3, [pc, #336] ; (8005710 ) - 80055c0: 799b ldrb r3, [r3, #6] - 80055c2: 2b01 cmp r3, #1 - 80055c4: d110 bne.n 80055e8 + 80055b8: 89fb ldrh r3, [r7, #14] + 80055ba: f003 0320 and.w r3, r3, #32 + 80055be: 2b00 cmp r3, #0 + 80055c0: d103 bne.n 80055ca + 80055c2: 4b54 ldr r3, [pc, #336] ; (8005714 ) + 80055c4: 799b ldrb r3, [r3, #6] + 80055c6: 2b01 cmp r3, #1 + 80055c8: d110 bne.n 80055ec { if(lcddev.width) - 80055c8: 881a ldrh r2, [r3, #0] - 80055ca: 4b51 ldr r3, [pc, #324] ; (8005710 ) - 80055cc: 885b ldrh r3, [r3, #2] - 80055ce: 429a cmp r2, r3 - 80055d0: d21a bcs.n 8005608 + 80055ca: 4b52 ldr r3, [pc, #328] ; (8005714 ) + 80055cc: 881a ldrh r2, [r3, #0] + 80055ce: 4b51 ldr r3, [pc, #324] ; (8005714 ) + 80055d0: 885b ldrh r3, [r3, #2] + 80055d2: 429a cmp r2, r3 + 80055d4: d21a bcs.n 800560c { temp=lcddev.width; - 80055d2: 4b4f ldr r3, [pc, #316] ; (8005710 ) - 80055d4: 881b ldrh r3, [r3, #0] - 80055d6: 817b strh r3, [r7, #10] + 80055d6: 4b4f ldr r3, [pc, #316] ; (8005714 ) + 80055d8: 881b ldrh r3, [r3, #0] + 80055da: 817b strh r3, [r7, #10] lcddev.width=lcddev.height; - 80055d8: 4b4d ldr r3, [pc, #308] ; (8005710 ) - 80055da: 885a ldrh r2, [r3, #2] - 80055dc: 4b4c ldr r3, [pc, #304] ; (8005710 ) - 80055de: 801a strh r2, [r3, #0] + 80055dc: 4b4d ldr r3, [pc, #308] ; (8005714 ) + 80055de: 885a ldrh r2, [r3, #2] + 80055e0: 4b4c ldr r3, [pc, #304] ; (8005714 ) + 80055e2: 801a strh r2, [r3, #0] lcddev.height=temp; - 80055e0: 4a4b ldr r2, [pc, #300] ; (8005710 ) - 80055e2: 897b ldrh r3, [r7, #10] - 80055e4: 8053 strh r3, [r2, #2] + 80055e4: 4a4b ldr r2, [pc, #300] ; (8005714 ) + 80055e6: 897b ldrh r3, [r7, #10] + 80055e8: 8053 strh r3, [r2, #2] if(lcddev.width + 80055ea: e00f b.n 800560c } }else { if(lcddev.width>lcddev.height)//½»»»X,Y - 80055e8: 4b49 ldr r3, [pc, #292] ; (8005710 ) - 80055ea: 881a ldrh r2, [r3, #0] - 80055ec: 4b48 ldr r3, [pc, #288] ; (8005710 ) - 80055ee: 885b ldrh r3, [r3, #2] - 80055f0: 429a cmp r2, r3 - 80055f2: d909 bls.n 8005608 + 80055ec: 4b49 ldr r3, [pc, #292] ; (8005714 ) + 80055ee: 881a ldrh r2, [r3, #0] + 80055f0: 4b48 ldr r3, [pc, #288] ; (8005714 ) + 80055f2: 885b ldrh r3, [r3, #2] + 80055f4: 429a cmp r2, r3 + 80055f6: d909 bls.n 800560c { temp=lcddev.width; - 80055f4: 4b46 ldr r3, [pc, #280] ; (8005710 ) - 80055f6: 881b ldrh r3, [r3, #0] - 80055f8: 817b strh r3, [r7, #10] + 80055f8: 4b46 ldr r3, [pc, #280] ; (8005714 ) + 80055fa: 881b ldrh r3, [r3, #0] + 80055fc: 817b strh r3, [r7, #10] lcddev.width=lcddev.height; - 80055fa: 4b45 ldr r3, [pc, #276] ; (8005710 ) - 80055fc: 885a ldrh r2, [r3, #2] - 80055fe: 4b44 ldr r3, [pc, #272] ; (8005710 ) - 8005600: 801a strh r2, [r3, #0] + 80055fe: 4b45 ldr r3, [pc, #276] ; (8005714 ) + 8005600: 885a ldrh r2, [r3, #2] + 8005602: 4b44 ldr r3, [pc, #272] ; (8005714 ) + 8005604: 801a strh r2, [r3, #0] lcddev.height=temp; - 8005602: 4a43 ldr r2, [pc, #268] ; (8005710 ) - 8005604: 897b ldrh r3, [r7, #10] - 8005606: 8053 strh r3, [r2, #2] + 8005606: 4a43 ldr r2, [pc, #268] ; (8005714 ) + 8005608: 897b ldrh r3, [r7, #10] + 800560a: 8053 strh r3, [r2, #2] } } LCD_WR_REG(lcddev.setxcmd); - 8005608: 4b41 ldr r3, [pc, #260] ; (8005710 ) - 800560a: 7a1b ldrb r3, [r3, #8] - 800560c: b29b uxth r3, r3 - 800560e: 4618 mov r0, r3 - 8005610: f7ff fedc bl 80053cc + 800560c: 4b41 ldr r3, [pc, #260] ; (8005714 ) + 800560e: 7a1b ldrb r3, [r3, #8] + 8005610: b29b uxth r3, r3 + 8005612: 4618 mov r0, r3 + 8005614: f7ff fedc bl 80053d0 LCD_WR_DATA(0);LCD_WR_DATA(0); - 8005614: 2000 movs r0, #0 - 8005616: f7ff fee7 bl 80053e8 - 800561a: 2000 movs r0, #0 - 800561c: f7ff fee4 bl 80053e8 + 8005618: 2000 movs r0, #0 + 800561a: f7ff fee7 bl 80053ec + 800561e: 2000 movs r0, #0 + 8005620: f7ff fee4 bl 80053ec LCD_WR_DATA((lcddev.width-1)>>8);LCD_WR_DATA((lcddev.width-1)&0XFF); - 8005620: 4b3b ldr r3, [pc, #236] ; (8005710 ) - 8005622: 881b ldrh r3, [r3, #0] - 8005624: 3b01 subs r3, #1 - 8005626: 121b asrs r3, r3, #8 - 8005628: b29b uxth r3, r3 - 800562a: 4618 mov r0, r3 - 800562c: f7ff fedc bl 80053e8 - 8005630: 4b37 ldr r3, [pc, #220] ; (8005710 ) - 8005632: 881b ldrh r3, [r3, #0] - 8005634: 3b01 subs r3, #1 - 8005636: b29b uxth r3, r3 - 8005638: b2db uxtb r3, r3 + 8005624: 4b3b ldr r3, [pc, #236] ; (8005714 ) + 8005626: 881b ldrh r3, [r3, #0] + 8005628: 3b01 subs r3, #1 + 800562a: 121b asrs r3, r3, #8 + 800562c: b29b uxth r3, r3 + 800562e: 4618 mov r0, r3 + 8005630: f7ff fedc bl 80053ec + 8005634: 4b37 ldr r3, [pc, #220] ; (8005714 ) + 8005636: 881b ldrh r3, [r3, #0] + 8005638: 3b01 subs r3, #1 800563a: b29b uxth r3, r3 - 800563c: 4618 mov r0, r3 - 800563e: f7ff fed3 bl 80053e8 + 800563c: b2db uxtb r3, r3 + 800563e: b29b uxth r3, r3 + 8005640: 4618 mov r0, r3 + 8005642: f7ff fed3 bl 80053ec LCD_WR_REG(lcddev.setycmd); - 8005642: 4b33 ldr r3, [pc, #204] ; (8005710 ) - 8005644: 7a5b ldrb r3, [r3, #9] - 8005646: b29b uxth r3, r3 - 8005648: 4618 mov r0, r3 - 800564a: f7ff febf bl 80053cc + 8005646: 4b33 ldr r3, [pc, #204] ; (8005714 ) + 8005648: 7a5b ldrb r3, [r3, #9] + 800564a: b29b uxth r3, r3 + 800564c: 4618 mov r0, r3 + 800564e: f7ff febf bl 80053d0 LCD_WR_DATA(0);LCD_WR_DATA(0); - 800564e: 2000 movs r0, #0 - 8005650: f7ff feca bl 80053e8 - 8005654: 2000 movs r0, #0 - 8005656: f7ff fec7 bl 80053e8 + 8005652: 2000 movs r0, #0 + 8005654: f7ff feca bl 80053ec + 8005658: 2000 movs r0, #0 + 800565a: f7ff fec7 bl 80053ec LCD_WR_DATA((lcddev.height-1)>>8);LCD_WR_DATA((lcddev.height-1)&0XFF); - 800565a: 4b2d ldr r3, [pc, #180] ; (8005710 ) - 800565c: 885b ldrh r3, [r3, #2] - 800565e: 3b01 subs r3, #1 - 8005660: 121b asrs r3, r3, #8 - 8005662: b29b uxth r3, r3 - 8005664: 4618 mov r0, r3 - 8005666: f7ff febf bl 80053e8 - 800566a: 4b29 ldr r3, [pc, #164] ; (8005710 ) - 800566c: 885b ldrh r3, [r3, #2] - 800566e: 3b01 subs r3, #1 - 8005670: b29b uxth r3, r3 - 8005672: b2db uxtb r3, r3 + 800565e: 4b2d ldr r3, [pc, #180] ; (8005714 ) + 8005660: 885b ldrh r3, [r3, #2] + 8005662: 3b01 subs r3, #1 + 8005664: 121b asrs r3, r3, #8 + 8005666: b29b uxth r3, r3 + 8005668: 4618 mov r0, r3 + 800566a: f7ff febf bl 80053ec + 800566e: 4b29 ldr r3, [pc, #164] ; (8005714 ) + 8005670: 885b ldrh r3, [r3, #2] + 8005672: 3b01 subs r3, #1 8005674: b29b uxth r3, r3 - 8005676: 4618 mov r0, r3 - 8005678: f7ff feb6 bl 80053e8 - 800567c: e058 b.n 8005730 + 8005676: b2db uxtb r3, r3 + 8005678: b29b uxth r3, r3 + 800567a: 4618 mov r0, r3 + 800567c: f7ff feb6 bl 80053ec + 8005680: e058 b.n 8005734 }else { switch(dir) - 800567e: 79fb ldrb r3, [r7, #7] - 8005680: 2b07 cmp r3, #7 - 8005682: d836 bhi.n 80056f2 - 8005684: a201 add r2, pc, #4 ; (adr r2, 800568c ) - 8005686: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800568a: bf00 nop - 800568c: 080056ad .word 0x080056ad - 8005690: 080056b7 .word 0x080056b7 - 8005694: 080056c1 .word 0x080056c1 - 8005698: 080056f3 .word 0x080056f3 - 800569c: 080056cb .word 0x080056cb - 80056a0: 080056d5 .word 0x080056d5 - 80056a4: 080056df .word 0x080056df - 80056a8: 080056e9 .word 0x080056e9 + 8005682: 79fb ldrb r3, [r7, #7] + 8005684: 2b07 cmp r3, #7 + 8005686: d836 bhi.n 80056f6 + 8005688: a201 add r2, pc, #4 ; (adr r2, 8005690 ) + 800568a: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 800568e: bf00 nop + 8005690: 080056b1 .word 0x080056b1 + 8005694: 080056bb .word 0x080056bb + 8005698: 080056c5 .word 0x080056c5 + 800569c: 080056f7 .word 0x080056f7 + 80056a0: 080056cf .word 0x080056cf + 80056a4: 080056d9 .word 0x080056d9 + 80056a8: 080056e3 .word 0x080056e3 + 80056ac: 080056ed .word 0x080056ed { case L2R_U2D://´Ó×óµ½ÓÒ,´ÓÉϵ½Ï regval|=(1<<5)|(1<<4)|(0<<3); - 80056ac: 89fb ldrh r3, [r7, #14] - 80056ae: f043 0330 orr.w r3, r3, #48 ; 0x30 - 80056b2: 81fb strh r3, [r7, #14] + 80056b0: 89fb ldrh r3, [r7, #14] + 80056b2: f043 0330 orr.w r3, r3, #48 ; 0x30 + 80056b6: 81fb strh r3, [r7, #14] break; - 80056b4: e01d b.n 80056f2 + 80056b8: e01d b.n 80056f6 case L2R_D2U://´Ó×óµ½ÓÒ,´Óϵ½ÉÏ regval|=(0<<5)|(1<<4)|(0<<3); - 80056b6: 89fb ldrh r3, [r7, #14] - 80056b8: f043 0310 orr.w r3, r3, #16 - 80056bc: 81fb strh r3, [r7, #14] + 80056ba: 89fb ldrh r3, [r7, #14] + 80056bc: f043 0310 orr.w r3, r3, #16 + 80056c0: 81fb strh r3, [r7, #14] break; - 80056be: e018 b.n 80056f2 + 80056c2: e018 b.n 80056f6 case R2L_U2D://´ÓÓÒµ½×ó,´ÓÉϵ½Ï regval|=(1<<5)|(0<<4)|(0<<3); - 80056c0: 89fb ldrh r3, [r7, #14] - 80056c2: f043 0320 orr.w r3, r3, #32 - 80056c6: 81fb strh r3, [r7, #14] + 80056c4: 89fb ldrh r3, [r7, #14] + 80056c6: f043 0320 orr.w r3, r3, #32 + 80056ca: 81fb strh r3, [r7, #14] break; - 80056c8: e013 b.n 80056f2 + 80056cc: e013 b.n 80056f6 case R2L_D2U://´ÓÓÒµ½×ó,´Óϵ½ÉÏ regval|=(0<<5)|(0<<4)|(0<<3); break; case U2D_L2R://´ÓÉϵ½ÏÂ,´Ó×óµ½ÓÒ regval|=(1<<5)|(1<<4)|(1<<3); - 80056ca: 89fb ldrh r3, [r7, #14] - 80056cc: f043 0338 orr.w r3, r3, #56 ; 0x38 - 80056d0: 81fb strh r3, [r7, #14] + 80056ce: 89fb ldrh r3, [r7, #14] + 80056d0: f043 0338 orr.w r3, r3, #56 ; 0x38 + 80056d4: 81fb strh r3, [r7, #14] break; - 80056d2: e00e b.n 80056f2 + 80056d6: e00e b.n 80056f6 case U2D_R2L://´ÓÉϵ½ÏÂ,´ÓÓÒµ½×ó regval|=(1<<5)|(0<<4)|(1<<3); - 80056d4: 89fb ldrh r3, [r7, #14] - 80056d6: f043 0328 orr.w r3, r3, #40 ; 0x28 - 80056da: 81fb strh r3, [r7, #14] + 80056d8: 89fb ldrh r3, [r7, #14] + 80056da: f043 0328 orr.w r3, r3, #40 ; 0x28 + 80056de: 81fb strh r3, [r7, #14] break; - 80056dc: e009 b.n 80056f2 + 80056e0: e009 b.n 80056f6 case D2U_L2R://´Óϵ½ÉÏ,´Ó×óµ½ÓÒ regval|=(0<<5)|(1<<4)|(1<<3); - 80056de: 89fb ldrh r3, [r7, #14] - 80056e0: f043 0318 orr.w r3, r3, #24 - 80056e4: 81fb strh r3, [r7, #14] + 80056e2: 89fb ldrh r3, [r7, #14] + 80056e4: f043 0318 orr.w r3, r3, #24 + 80056e8: 81fb strh r3, [r7, #14] break; - 80056e6: e004 b.n 80056f2 + 80056ea: e004 b.n 80056f6 case D2U_R2L://´Óϵ½ÉÏ,´ÓÓÒµ½×ó regval|=(0<<5)|(0<<4)|(1<<3); - 80056e8: 89fb ldrh r3, [r7, #14] - 80056ea: f043 0308 orr.w r3, r3, #8 - 80056ee: 81fb strh r3, [r7, #14] + 80056ec: 89fb ldrh r3, [r7, #14] + 80056ee: f043 0308 orr.w r3, r3, #8 + 80056f2: 81fb strh r3, [r7, #14] break; - 80056f0: bf00 nop + 80056f4: bf00 nop } if(lcddev.id==0x8989)//8989 IC - 80056f2: 4b07 ldr r3, [pc, #28] ; (8005710 ) - 80056f4: 889b ldrh r3, [r3, #4] - 80056f6: f648 1289 movw r2, #35209 ; 0x8989 - 80056fa: 4293 cmp r3, r2 - 80056fc: d10a bne.n 8005714 + 80056f6: 4b07 ldr r3, [pc, #28] ; (8005714 ) + 80056f8: 889b ldrh r3, [r3, #4] + 80056fa: f648 1289 movw r2, #35209 ; 0x8989 + 80056fe: 4293 cmp r3, r2 + 8005700: d10a bne.n 8005718 { dirreg=0X11; - 80056fe: 2311 movs r3, #17 - 8005700: 737b strb r3, [r7, #13] + 8005702: 2311 movs r3, #17 + 8005704: 737b strb r3, [r7, #13] regval|=0X6040; //65K - 8005702: 89fb ldrh r3, [r7, #14] - 8005704: f443 43c0 orr.w r3, r3, #24576 ; 0x6000 - 8005708: f043 0340 orr.w r3, r3, #64 ; 0x40 - 800570c: 81fb strh r3, [r7, #14] - 800570e: e007 b.n 8005720 - 8005710: 20000824 .word 0x20000824 + 8005706: 89fb ldrh r3, [r7, #14] + 8005708: f443 43c0 orr.w r3, r3, #24576 ; 0x6000 + 800570c: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8005710: 81fb strh r3, [r7, #14] + 8005712: e007 b.n 8005724 + 8005714: 20000824 .word 0x20000824 }else//ÆäËûÇý¶¯IC { dirreg=0X03; - 8005714: 2303 movs r3, #3 - 8005716: 737b strb r3, [r7, #13] + 8005718: 2303 movs r3, #3 + 800571a: 737b strb r3, [r7, #13] regval|=1<<12; - 8005718: 89fb ldrh r3, [r7, #14] - 800571a: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 800571e: 81fb strh r3, [r7, #14] + 800571c: 89fb ldrh r3, [r7, #14] + 800571e: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8005722: 81fb strh r3, [r7, #14] } LCD_WriteReg(dirreg,regval); - 8005720: 7b7b ldrb r3, [r7, #13] - 8005722: b29b uxth r3, r3 - 8005724: 89fa ldrh r2, [r7, #14] - 8005726: 4611 mov r1, r2 - 8005728: 4618 mov r0, r3 - 800572a: f7ff fe6d bl 8005408 + 8005724: 7b7b ldrb r3, [r7, #13] + 8005726: b29b uxth r3, r3 + 8005728: 89fa ldrh r2, [r7, #14] + 800572a: 4611 mov r1, r2 + 800572c: 4618 mov r0, r3 + 800572e: f7ff fe6d bl 800540c } } - 800572e: bf00 nop - 8005730: bf00 nop - 8005732: 3710 adds r7, #16 - 8005734: 46bd mov sp, r7 - 8005736: bd80 pop {r7, pc} + 8005732: bf00 nop + 8005734: bf00 nop + 8005736: 3710 adds r7, #16 + 8005738: 46bd mov sp, r7 + 800573a: bd80 pop {r7, pc} -08005738 : +0800573c : //ÉèÖÃLCDÏÔʾ·½Ïò //dir:0,ÊúÆÁ£»1,ºáÆÁ void LCD_Display_Dir(uint8_t dir) { - 8005738: b580 push {r7, lr} - 800573a: b082 sub sp, #8 - 800573c: af00 add r7, sp, #0 - 800573e: 4603 mov r3, r0 - 8005740: 71fb strb r3, [r7, #7] + 800573c: b580 push {r7, lr} + 800573e: b082 sub sp, #8 + 8005740: af00 add r7, sp, #0 + 8005742: 4603 mov r3, r0 + 8005744: 71fb strb r3, [r7, #7] if(dir==0) //ÊúÆÁ - 8005742: 79fb ldrb r3, [r7, #7] - 8005744: 2b00 cmp r3, #0 - 8005746: d154 bne.n 80057f2 + 8005746: 79fb ldrb r3, [r7, #7] + 8005748: 2b00 cmp r3, #0 + 800574a: d154 bne.n 80057f6 { lcddev.dir=0; //ÊúÆÁ - 8005748: 4b5d ldr r3, [pc, #372] ; (80058c0 ) - 800574a: 2200 movs r2, #0 - 800574c: 719a strb r2, [r3, #6] + 800574c: 4b5d ldr r3, [pc, #372] ; (80058c4 ) + 800574e: 2200 movs r2, #0 + 8005750: 719a strb r2, [r3, #6] lcddev.width=240; - 800574e: 4b5c ldr r3, [pc, #368] ; (80058c0 ) - 8005750: 22f0 movs r2, #240 ; 0xf0 - 8005752: 801a strh r2, [r3, #0] + 8005752: 4b5c ldr r3, [pc, #368] ; (80058c4 ) + 8005754: 22f0 movs r2, #240 ; 0xf0 + 8005756: 801a strh r2, [r3, #0] lcddev.height=320; - 8005754: 4b5a ldr r3, [pc, #360] ; (80058c0 ) - 8005756: f44f 72a0 mov.w r2, #320 ; 0x140 - 800575a: 805a strh r2, [r3, #2] + 8005758: 4b5a ldr r3, [pc, #360] ; (80058c4 ) + 800575a: f44f 72a0 mov.w r2, #320 ; 0x140 + 800575e: 805a strh r2, [r3, #2] if(lcddev.id==0X9341||lcddev.id==0X6804||lcddev.id==0X5310) - 800575c: 4b58 ldr r3, [pc, #352] ; (80058c0 ) - 800575e: 889b ldrh r3, [r3, #4] - 8005760: f249 3241 movw r2, #37697 ; 0x9341 - 8005764: 4293 cmp r3, r2 - 8005766: d00b beq.n 8005780 - 8005768: 4b55 ldr r3, [pc, #340] ; (80058c0 ) - 800576a: 889b ldrh r3, [r3, #4] - 800576c: f646 0204 movw r2, #26628 ; 0x6804 - 8005770: 4293 cmp r3, r2 - 8005772: d005 beq.n 8005780 - 8005774: 4b52 ldr r3, [pc, #328] ; (80058c0 ) - 8005776: 889b ldrh r3, [r3, #4] - 8005778: f245 3210 movw r2, #21264 ; 0x5310 - 800577c: 4293 cmp r3, r2 - 800577e: d11e bne.n 80057be + 8005760: 4b58 ldr r3, [pc, #352] ; (80058c4 ) + 8005762: 889b ldrh r3, [r3, #4] + 8005764: f249 3241 movw r2, #37697 ; 0x9341 + 8005768: 4293 cmp r3, r2 + 800576a: d00b beq.n 8005784 + 800576c: 4b55 ldr r3, [pc, #340] ; (80058c4 ) + 800576e: 889b ldrh r3, [r3, #4] + 8005770: f646 0204 movw r2, #26628 ; 0x6804 + 8005774: 4293 cmp r3, r2 + 8005776: d005 beq.n 8005784 + 8005778: 4b52 ldr r3, [pc, #328] ; (80058c4 ) + 800577a: 889b ldrh r3, [r3, #4] + 800577c: f245 3210 movw r2, #21264 ; 0x5310 + 8005780: 4293 cmp r3, r2 + 8005782: d11e bne.n 80057c2 { lcddev.wramcmd=0X2C; - 8005780: 4b4f ldr r3, [pc, #316] ; (80058c0 ) - 8005782: 222c movs r2, #44 ; 0x2c - 8005784: 71da strb r2, [r3, #7] + 8005784: 4b4f ldr r3, [pc, #316] ; (80058c4 ) + 8005786: 222c movs r2, #44 ; 0x2c + 8005788: 71da strb r2, [r3, #7] lcddev.setxcmd=0X2A; - 8005786: 4b4e ldr r3, [pc, #312] ; (80058c0 ) - 8005788: 222a movs r2, #42 ; 0x2a - 800578a: 721a strb r2, [r3, #8] + 800578a: 4b4e ldr r3, [pc, #312] ; (80058c4 ) + 800578c: 222a movs r2, #42 ; 0x2a + 800578e: 721a strb r2, [r3, #8] lcddev.setycmd=0X2B; - 800578c: 4b4c ldr r3, [pc, #304] ; (80058c0 ) - 800578e: 222b movs r2, #43 ; 0x2b - 8005790: 725a strb r2, [r3, #9] + 8005790: 4b4c ldr r3, [pc, #304] ; (80058c4 ) + 8005792: 222b movs r2, #43 ; 0x2b + 8005794: 725a strb r2, [r3, #9] if(lcddev.id==0X6804||lcddev.id==0X5310) - 8005792: 4b4b ldr r3, [pc, #300] ; (80058c0 ) - 8005794: 889b ldrh r3, [r3, #4] - 8005796: f646 0204 movw r2, #26628 ; 0x6804 - 800579a: 4293 cmp r3, r2 - 800579c: d006 beq.n 80057ac - 800579e: 4b48 ldr r3, [pc, #288] ; (80058c0 ) - 80057a0: 889b ldrh r3, [r3, #4] - 80057a2: f245 3210 movw r2, #21264 ; 0x5310 - 80057a6: 4293 cmp r3, r2 - 80057a8: f040 8081 bne.w 80058ae + 8005796: 4b4b ldr r3, [pc, #300] ; (80058c4 ) + 8005798: 889b ldrh r3, [r3, #4] + 800579a: f646 0204 movw r2, #26628 ; 0x6804 + 800579e: 4293 cmp r3, r2 + 80057a0: d006 beq.n 80057b0 + 80057a2: 4b48 ldr r3, [pc, #288] ; (80058c4 ) + 80057a4: 889b ldrh r3, [r3, #4] + 80057a6: f245 3210 movw r2, #21264 ; 0x5310 + 80057aa: 4293 cmp r3, r2 + 80057ac: f040 8081 bne.w 80058b2 { lcddev.width=320; - 80057ac: 4b44 ldr r3, [pc, #272] ; (80058c0 ) - 80057ae: f44f 72a0 mov.w r2, #320 ; 0x140 - 80057b2: 801a strh r2, [r3, #0] + 80057b0: 4b44 ldr r3, [pc, #272] ; (80058c4 ) + 80057b2: f44f 72a0 mov.w r2, #320 ; 0x140 + 80057b6: 801a strh r2, [r3, #0] lcddev.height=480; - 80057b4: 4b42 ldr r3, [pc, #264] ; (80058c0 ) - 80057b6: f44f 72f0 mov.w r2, #480 ; 0x1e0 - 80057ba: 805a strh r2, [r3, #2] + 80057b8: 4b42 ldr r3, [pc, #264] ; (80058c4 ) + 80057ba: f44f 72f0 mov.w r2, #480 ; 0x1e0 + 80057be: 805a strh r2, [r3, #2] if(lcddev.id==0X6804||lcddev.id==0X5310) - 80057bc: e077 b.n 80058ae + 80057c0: e077 b.n 80058b2 } }else if(lcddev.id==0X8989) - 80057be: 4b40 ldr r3, [pc, #256] ; (80058c0 ) - 80057c0: 889b ldrh r3, [r3, #4] - 80057c2: f648 1289 movw r2, #35209 ; 0x8989 - 80057c6: 4293 cmp r3, r2 - 80057c8: d109 bne.n 80057de + 80057c2: 4b40 ldr r3, [pc, #256] ; (80058c4 ) + 80057c4: 889b ldrh r3, [r3, #4] + 80057c6: f648 1289 movw r2, #35209 ; 0x8989 + 80057ca: 4293 cmp r3, r2 + 80057cc: d109 bne.n 80057e2 { lcddev.wramcmd=R34; - 80057ca: 4b3d ldr r3, [pc, #244] ; (80058c0 ) - 80057cc: 2222 movs r2, #34 ; 0x22 - 80057ce: 71da strb r2, [r3, #7] + 80057ce: 4b3d ldr r3, [pc, #244] ; (80058c4 ) + 80057d0: 2222 movs r2, #34 ; 0x22 + 80057d2: 71da strb r2, [r3, #7] lcddev.setxcmd=0X4E; - 80057d0: 4b3b ldr r3, [pc, #236] ; (80058c0 ) - 80057d2: 224e movs r2, #78 ; 0x4e - 80057d4: 721a strb r2, [r3, #8] + 80057d4: 4b3b ldr r3, [pc, #236] ; (80058c4 ) + 80057d6: 224e movs r2, #78 ; 0x4e + 80057d8: 721a strb r2, [r3, #8] lcddev.setycmd=0X4F; - 80057d6: 4b3a ldr r3, [pc, #232] ; (80058c0 ) - 80057d8: 224f movs r2, #79 ; 0x4f - 80057da: 725a strb r2, [r3, #9] - 80057dc: e068 b.n 80058b0 + 80057da: 4b3a ldr r3, [pc, #232] ; (80058c4 ) + 80057dc: 224f movs r2, #79 ; 0x4f + 80057de: 725a strb r2, [r3, #9] + 80057e0: e068 b.n 80058b4 }else { lcddev.wramcmd=R34; - 80057de: 4b38 ldr r3, [pc, #224] ; (80058c0 ) - 80057e0: 2222 movs r2, #34 ; 0x22 - 80057e2: 71da strb r2, [r3, #7] + 80057e2: 4b38 ldr r3, [pc, #224] ; (80058c4 ) + 80057e4: 2222 movs r2, #34 ; 0x22 + 80057e6: 71da strb r2, [r3, #7] lcddev.setxcmd=R32; - 80057e4: 4b36 ldr r3, [pc, #216] ; (80058c0 ) - 80057e6: 2220 movs r2, #32 - 80057e8: 721a strb r2, [r3, #8] + 80057e8: 4b36 ldr r3, [pc, #216] ; (80058c4 ) + 80057ea: 2220 movs r2, #32 + 80057ec: 721a strb r2, [r3, #8] lcddev.setycmd=R33; - 80057ea: 4b35 ldr r3, [pc, #212] ; (80058c0 ) - 80057ec: 2221 movs r2, #33 ; 0x21 - 80057ee: 725a strb r2, [r3, #9] - 80057f0: e05e b.n 80058b0 + 80057ee: 4b35 ldr r3, [pc, #212] ; (80058c4 ) + 80057f0: 2221 movs r2, #33 ; 0x21 + 80057f2: 725a strb r2, [r3, #9] + 80057f4: e05e b.n 80058b4 } }else //ºáÆÁ { lcddev.dir=1; //ºáÆÁ - 80057f2: 4b33 ldr r3, [pc, #204] ; (80058c0 ) - 80057f4: 2201 movs r2, #1 - 80057f6: 719a strb r2, [r3, #6] + 80057f6: 4b33 ldr r3, [pc, #204] ; (80058c4 ) + 80057f8: 2201 movs r2, #1 + 80057fa: 719a strb r2, [r3, #6] lcddev.width=320; - 80057f8: 4b31 ldr r3, [pc, #196] ; (80058c0 ) - 80057fa: f44f 72a0 mov.w r2, #320 ; 0x140 - 80057fe: 801a strh r2, [r3, #0] + 80057fc: 4b31 ldr r3, [pc, #196] ; (80058c4 ) + 80057fe: f44f 72a0 mov.w r2, #320 ; 0x140 + 8005802: 801a strh r2, [r3, #0] lcddev.height=240; - 8005800: 4b2f ldr r3, [pc, #188] ; (80058c0 ) - 8005802: 22f0 movs r2, #240 ; 0xf0 - 8005804: 805a strh r2, [r3, #2] + 8005804: 4b2f ldr r3, [pc, #188] ; (80058c4 ) + 8005806: 22f0 movs r2, #240 ; 0xf0 + 8005808: 805a strh r2, [r3, #2] if(lcddev.id==0X9341||lcddev.id==0X5310) - 8005806: 4b2e ldr r3, [pc, #184] ; (80058c0 ) - 8005808: 889b ldrh r3, [r3, #4] - 800580a: f249 3241 movw r2, #37697 ; 0x9341 - 800580e: 4293 cmp r3, r2 - 8005810: d005 beq.n 800581e - 8005812: 4b2b ldr r3, [pc, #172] ; (80058c0 ) - 8005814: 889b ldrh r3, [r3, #4] - 8005816: f245 3210 movw r2, #21264 ; 0x5310 - 800581a: 4293 cmp r3, r2 - 800581c: d109 bne.n 8005832 + 800580a: 4b2e ldr r3, [pc, #184] ; (80058c4 ) + 800580c: 889b ldrh r3, [r3, #4] + 800580e: f249 3241 movw r2, #37697 ; 0x9341 + 8005812: 4293 cmp r3, r2 + 8005814: d005 beq.n 8005822 + 8005816: 4b2b ldr r3, [pc, #172] ; (80058c4 ) + 8005818: 889b ldrh r3, [r3, #4] + 800581a: f245 3210 movw r2, #21264 ; 0x5310 + 800581e: 4293 cmp r3, r2 + 8005820: d109 bne.n 8005836 { lcddev.wramcmd=0X2C; - 800581e: 4b28 ldr r3, [pc, #160] ; (80058c0 ) - 8005820: 222c movs r2, #44 ; 0x2c - 8005822: 71da strb r2, [r3, #7] + 8005822: 4b28 ldr r3, [pc, #160] ; (80058c4 ) + 8005824: 222c movs r2, #44 ; 0x2c + 8005826: 71da strb r2, [r3, #7] lcddev.setxcmd=0X2A; - 8005824: 4b26 ldr r3, [pc, #152] ; (80058c0 ) - 8005826: 222a movs r2, #42 ; 0x2a - 8005828: 721a strb r2, [r3, #8] + 8005828: 4b26 ldr r3, [pc, #152] ; (80058c4 ) + 800582a: 222a movs r2, #42 ; 0x2a + 800582c: 721a strb r2, [r3, #8] lcddev.setycmd=0X2B; - 800582a: 4b25 ldr r3, [pc, #148] ; (80058c0 ) - 800582c: 222b movs r2, #43 ; 0x2b - 800582e: 725a strb r2, [r3, #9] - 8005830: e028 b.n 8005884 + 800582e: 4b25 ldr r3, [pc, #148] ; (80058c4 ) + 8005830: 222b movs r2, #43 ; 0x2b + 8005832: 725a strb r2, [r3, #9] + 8005834: e028 b.n 8005888 }else if(lcddev.id==0X6804) - 8005832: 4b23 ldr r3, [pc, #140] ; (80058c0 ) - 8005834: 889b ldrh r3, [r3, #4] - 8005836: f646 0204 movw r2, #26628 ; 0x6804 - 800583a: 4293 cmp r3, r2 - 800583c: d109 bne.n 8005852 + 8005836: 4b23 ldr r3, [pc, #140] ; (80058c4 ) + 8005838: 889b ldrh r3, [r3, #4] + 800583a: f646 0204 movw r2, #26628 ; 0x6804 + 800583e: 4293 cmp r3, r2 + 8005840: d109 bne.n 8005856 { lcddev.wramcmd=0X2C; - 800583e: 4b20 ldr r3, [pc, #128] ; (80058c0 ) - 8005840: 222c movs r2, #44 ; 0x2c - 8005842: 71da strb r2, [r3, #7] + 8005842: 4b20 ldr r3, [pc, #128] ; (80058c4 ) + 8005844: 222c movs r2, #44 ; 0x2c + 8005846: 71da strb r2, [r3, #7] lcddev.setxcmd=0X2B; - 8005844: 4b1e ldr r3, [pc, #120] ; (80058c0 ) - 8005846: 222b movs r2, #43 ; 0x2b - 8005848: 721a strb r2, [r3, #8] + 8005848: 4b1e ldr r3, [pc, #120] ; (80058c4 ) + 800584a: 222b movs r2, #43 ; 0x2b + 800584c: 721a strb r2, [r3, #8] lcddev.setycmd=0X2A; - 800584a: 4b1d ldr r3, [pc, #116] ; (80058c0 ) - 800584c: 222a movs r2, #42 ; 0x2a - 800584e: 725a strb r2, [r3, #9] - 8005850: e018 b.n 8005884 + 800584e: 4b1d ldr r3, [pc, #116] ; (80058c4 ) + 8005850: 222a movs r2, #42 ; 0x2a + 8005852: 725a strb r2, [r3, #9] + 8005854: e018 b.n 8005888 }else if(lcddev.id==0X8989) - 8005852: 4b1b ldr r3, [pc, #108] ; (80058c0 ) - 8005854: 889b ldrh r3, [r3, #4] - 8005856: f648 1289 movw r2, #35209 ; 0x8989 - 800585a: 4293 cmp r3, r2 - 800585c: d109 bne.n 8005872 + 8005856: 4b1b ldr r3, [pc, #108] ; (80058c4 ) + 8005858: 889b ldrh r3, [r3, #4] + 800585a: f648 1289 movw r2, #35209 ; 0x8989 + 800585e: 4293 cmp r3, r2 + 8005860: d109 bne.n 8005876 { lcddev.wramcmd=R34; - 800585e: 4b18 ldr r3, [pc, #96] ; (80058c0 ) - 8005860: 2222 movs r2, #34 ; 0x22 - 8005862: 71da strb r2, [r3, #7] + 8005862: 4b18 ldr r3, [pc, #96] ; (80058c4 ) + 8005864: 2222 movs r2, #34 ; 0x22 + 8005866: 71da strb r2, [r3, #7] lcddev.setxcmd=0X4F; - 8005864: 4b16 ldr r3, [pc, #88] ; (80058c0 ) - 8005866: 224f movs r2, #79 ; 0x4f - 8005868: 721a strb r2, [r3, #8] + 8005868: 4b16 ldr r3, [pc, #88] ; (80058c4 ) + 800586a: 224f movs r2, #79 ; 0x4f + 800586c: 721a strb r2, [r3, #8] lcddev.setycmd=0X4E; - 800586a: 4b15 ldr r3, [pc, #84] ; (80058c0 ) - 800586c: 224e movs r2, #78 ; 0x4e - 800586e: 725a strb r2, [r3, #9] - 8005870: e008 b.n 8005884 + 800586e: 4b15 ldr r3, [pc, #84] ; (80058c4 ) + 8005870: 224e movs r2, #78 ; 0x4e + 8005872: 725a strb r2, [r3, #9] + 8005874: e008 b.n 8005888 }else { lcddev.wramcmd=R34; - 8005872: 4b13 ldr r3, [pc, #76] ; (80058c0 ) - 8005874: 2222 movs r2, #34 ; 0x22 - 8005876: 71da strb r2, [r3, #7] + 8005876: 4b13 ldr r3, [pc, #76] ; (80058c4 ) + 8005878: 2222 movs r2, #34 ; 0x22 + 800587a: 71da strb r2, [r3, #7] lcddev.setxcmd=R33; - 8005878: 4b11 ldr r3, [pc, #68] ; (80058c0 ) - 800587a: 2221 movs r2, #33 ; 0x21 - 800587c: 721a strb r2, [r3, #8] + 800587c: 4b11 ldr r3, [pc, #68] ; (80058c4 ) + 800587e: 2221 movs r2, #33 ; 0x21 + 8005880: 721a strb r2, [r3, #8] lcddev.setycmd=R32; - 800587e: 4b10 ldr r3, [pc, #64] ; (80058c0 ) - 8005880: 2220 movs r2, #32 - 8005882: 725a strb r2, [r3, #9] + 8005882: 4b10 ldr r3, [pc, #64] ; (80058c4 ) + 8005884: 2220 movs r2, #32 + 8005886: 725a strb r2, [r3, #9] } if(lcddev.id==0X6804||lcddev.id==0X5310) - 8005884: 4b0e ldr r3, [pc, #56] ; (80058c0 ) - 8005886: 889b ldrh r3, [r3, #4] - 8005888: f646 0204 movw r2, #26628 ; 0x6804 - 800588c: 4293 cmp r3, r2 - 800588e: d005 beq.n 800589c - 8005890: 4b0b ldr r3, [pc, #44] ; (80058c0 ) - 8005892: 889b ldrh r3, [r3, #4] - 8005894: f245 3210 movw r2, #21264 ; 0x5310 - 8005898: 4293 cmp r3, r2 - 800589a: d109 bne.n 80058b0 + 8005888: 4b0e ldr r3, [pc, #56] ; (80058c4 ) + 800588a: 889b ldrh r3, [r3, #4] + 800588c: f646 0204 movw r2, #26628 ; 0x6804 + 8005890: 4293 cmp r3, r2 + 8005892: d005 beq.n 80058a0 + 8005894: 4b0b ldr r3, [pc, #44] ; (80058c4 ) + 8005896: 889b ldrh r3, [r3, #4] + 8005898: f245 3210 movw r2, #21264 ; 0x5310 + 800589c: 4293 cmp r3, r2 + 800589e: d109 bne.n 80058b4 { lcddev.width=480; - 800589c: 4b08 ldr r3, [pc, #32] ; (80058c0 ) - 800589e: f44f 72f0 mov.w r2, #480 ; 0x1e0 - 80058a2: 801a strh r2, [r3, #0] + 80058a0: 4b08 ldr r3, [pc, #32] ; (80058c4 ) + 80058a2: f44f 72f0 mov.w r2, #480 ; 0x1e0 + 80058a6: 801a strh r2, [r3, #0] lcddev.height=320; - 80058a4: 4b06 ldr r3, [pc, #24] ; (80058c0 ) - 80058a6: f44f 72a0 mov.w r2, #320 ; 0x140 - 80058aa: 805a strh r2, [r3, #2] - 80058ac: e000 b.n 80058b0 + 80058a8: 4b06 ldr r3, [pc, #24] ; (80058c4 ) + 80058aa: f44f 72a0 mov.w r2, #320 ; 0x140 + 80058ae: 805a strh r2, [r3, #2] + 80058b0: e000 b.n 80058b4 if(lcddev.id==0X6804||lcddev.id==0X5310) - 80058ae: bf00 nop + 80058b2: bf00 nop } } LCD_Scan_Dir(DFT_SCAN_DIR); //ĬÈÏɨÃè·½Ïò - 80058b0: 2000 movs r0, #0 - 80058b2: f7ff fdd3 bl 800545c + 80058b4: 2000 movs r0, #0 + 80058b6: f7ff fdd3 bl 8005460 } - 80058b6: bf00 nop - 80058b8: 3708 adds r7, #8 - 80058ba: 46bd mov sp, r7 - 80058bc: bd80 pop {r7, pc} - 80058be: bf00 nop - 80058c0: 20000824 .word 0x20000824 + 80058ba: bf00 nop + 80058bc: 3708 adds r7, #8 + 80058be: 46bd mov sp, r7 + 80058c0: bd80 pop {r7, pc} + 80058c2: bf00 nop + 80058c4: 20000824 .word 0x20000824 -080058c4 : +080058c8 : //³õʼ»¯lcd //¸Ã³õʼ»¯º¯Êý¿ÉÒÔ³õʼ»¯¸÷ÖÖÒº¾§! void LCDx_Init(void) { - 80058c4: b580 push {r7, lr} - 80058c6: af00 add r7, sp, #0 + 80058c8: b580 push {r7, lr} + 80058ca: af00 add r7, sp, #0 LCD_BL(0); - 80058c8: 2200 movs r2, #0 - 80058ca: 2101 movs r1, #1 - 80058cc: 4876 ldr r0, [pc, #472] ; (8005aa8 ) - 80058ce: f7fb faae bl 8000e2e + 80058cc: 2200 movs r2, #0 + 80058ce: 2101 movs r1, #1 + 80058d0: 4876 ldr r0, [pc, #472] ; (8005aac ) + 80058d2: f7fb faac bl 8000e2e HAL_Delay(50); // delay 50 ms - 80058d2: 2032 movs r0, #50 ; 0x32 - 80058d4: f7fa fff8 bl 80008c8 + 80058d6: 2032 movs r0, #50 ; 0x32 + 80058d8: f7fa fff6 bl 80008c8 LCD_WriteReg(0x0000,0x0001); - 80058d8: 2101 movs r1, #1 - 80058da: 2000 movs r0, #0 - 80058dc: f7ff fd94 bl 8005408 + 80058dc: 2101 movs r1, #1 + 80058de: 2000 movs r0, #0 + 80058e0: f7ff fd94 bl 800540c HAL_Delay(50); // delay 50 ms - 80058e0: 2032 movs r0, #50 ; 0x32 - 80058e2: f7fa fff1 bl 80008c8 + 80058e4: 2032 movs r0, #50 ; 0x32 + 80058e6: f7fa ffef bl 80008c8 lcddev.id = LCD_ReadReg(0x0000); - 80058e6: 2000 movs r0, #0 - 80058e8: f7ff fda4 bl 8005434 - 80058ec: 4603 mov r3, r0 - 80058ee: 461a mov r2, r3 - 80058f0: 4b6e ldr r3, [pc, #440] ; (8005aac ) - 80058f2: 809a strh r2, [r3, #4] + 80058ea: 2000 movs r0, #0 + 80058ec: f7ff fda4 bl 8005438 + 80058f0: 4603 mov r3, r0 + 80058f2: 461a mov r2, r3 + 80058f4: 4b6e ldr r3, [pc, #440] ; (8005ab0 ) + 80058f6: 809a strh r2, [r3, #4] LCD_WriteReg(0x00E5,0x78F0); - 80058f4: f647 01f0 movw r1, #30960 ; 0x78f0 - 80058f8: 20e5 movs r0, #229 ; 0xe5 - 80058fa: f7ff fd85 bl 8005408 + 80058f8: f647 01f0 movw r1, #30960 ; 0x78f0 + 80058fc: 20e5 movs r0, #229 ; 0xe5 + 80058fe: f7ff fd85 bl 800540c LCD_WriteReg(0x0001,0x0100); - 80058fe: f44f 7180 mov.w r1, #256 ; 0x100 - 8005902: 2001 movs r0, #1 - 8005904: f7ff fd80 bl 8005408 + 8005902: f44f 7180 mov.w r1, #256 ; 0x100 + 8005906: 2001 movs r0, #1 + 8005908: f7ff fd80 bl 800540c LCD_WriteReg(0x0002,0x0700); - 8005908: f44f 61e0 mov.w r1, #1792 ; 0x700 - 800590c: 2002 movs r0, #2 - 800590e: f7ff fd7b bl 8005408 + 800590c: f44f 61e0 mov.w r1, #1792 ; 0x700 + 8005910: 2002 movs r0, #2 + 8005912: f7ff fd7b bl 800540c LCD_WriteReg(0x0003,0x1030); - 8005912: f241 0130 movw r1, #4144 ; 0x1030 - 8005916: 2003 movs r0, #3 - 8005918: f7ff fd76 bl 8005408 + 8005916: f241 0130 movw r1, #4144 ; 0x1030 + 800591a: 2003 movs r0, #3 + 800591c: f7ff fd76 bl 800540c LCD_WriteReg(0x0004,0x0000); - 800591c: 2100 movs r1, #0 - 800591e: 2004 movs r0, #4 - 8005920: f7ff fd72 bl 8005408 + 8005920: 2100 movs r1, #0 + 8005922: 2004 movs r0, #4 + 8005924: f7ff fd72 bl 800540c LCD_WriteReg(0x0008,0x0202); - 8005924: f240 2102 movw r1, #514 ; 0x202 - 8005928: 2008 movs r0, #8 - 800592a: f7ff fd6d bl 8005408 + 8005928: f240 2102 movw r1, #514 ; 0x202 + 800592c: 2008 movs r0, #8 + 800592e: f7ff fd6d bl 800540c LCD_WriteReg(0x0009,0x0000); - 800592e: 2100 movs r1, #0 - 8005930: 2009 movs r0, #9 - 8005932: f7ff fd69 bl 8005408 + 8005932: 2100 movs r1, #0 + 8005934: 2009 movs r0, #9 + 8005936: f7ff fd69 bl 800540c LCD_WriteReg(0x000A,0x0000); - 8005936: 2100 movs r1, #0 - 8005938: 200a movs r0, #10 - 800593a: f7ff fd65 bl 8005408 + 800593a: 2100 movs r1, #0 + 800593c: 200a movs r0, #10 + 800593e: f7ff fd65 bl 800540c LCD_WriteReg(0x000C,0x0000); - 800593e: 2100 movs r1, #0 - 8005940: 200c movs r0, #12 - 8005942: f7ff fd61 bl 8005408 + 8005942: 2100 movs r1, #0 + 8005944: 200c movs r0, #12 + 8005946: f7ff fd61 bl 800540c LCD_WriteReg(0x000D,0x0000); - 8005946: 2100 movs r1, #0 - 8005948: 200d movs r0, #13 - 800594a: f7ff fd5d bl 8005408 + 800594a: 2100 movs r1, #0 + 800594c: 200d movs r0, #13 + 800594e: f7ff fd5d bl 800540c LCD_WriteReg(0x000F,0x0000); - 800594e: 2100 movs r1, #0 - 8005950: 200f movs r0, #15 - 8005952: f7ff fd59 bl 8005408 + 8005952: 2100 movs r1, #0 + 8005954: 200f movs r0, #15 + 8005956: f7ff fd59 bl 800540c //power on sequence VGHVGL LCD_WriteReg(0x0010,0x0000); - 8005956: 2100 movs r1, #0 - 8005958: 2010 movs r0, #16 - 800595a: f7ff fd55 bl 8005408 + 800595a: 2100 movs r1, #0 + 800595c: 2010 movs r0, #16 + 800595e: f7ff fd55 bl 800540c LCD_WriteReg(0x0011,0x0007); - 800595e: 2107 movs r1, #7 - 8005960: 2011 movs r0, #17 - 8005962: f7ff fd51 bl 8005408 + 8005962: 2107 movs r1, #7 + 8005964: 2011 movs r0, #17 + 8005966: f7ff fd51 bl 800540c LCD_WriteReg(0x0012,0x0000); - 8005966: 2100 movs r1, #0 - 8005968: 2012 movs r0, #18 - 800596a: f7ff fd4d bl 8005408 + 800596a: 2100 movs r1, #0 + 800596c: 2012 movs r0, #18 + 800596e: f7ff fd4d bl 800540c LCD_WriteReg(0x0013,0x0000); - 800596e: 2100 movs r1, #0 - 8005970: 2013 movs r0, #19 - 8005972: f7ff fd49 bl 8005408 + 8005972: 2100 movs r1, #0 + 8005974: 2013 movs r0, #19 + 8005976: f7ff fd49 bl 800540c LCD_WriteReg(0x0007,0x0000); - 8005976: 2100 movs r1, #0 - 8005978: 2007 movs r0, #7 - 800597a: f7ff fd45 bl 8005408 + 800597a: 2100 movs r1, #0 + 800597c: 2007 movs r0, #7 + 800597e: f7ff fd45 bl 800540c //vgh LCD_WriteReg(0x0010,0x1690); - 800597e: f241 6190 movw r1, #5776 ; 0x1690 - 8005982: 2010 movs r0, #16 - 8005984: f7ff fd40 bl 8005408 + 8005982: f241 6190 movw r1, #5776 ; 0x1690 + 8005986: 2010 movs r0, #16 + 8005988: f7ff fd40 bl 800540c LCD_WriteReg(0x0011,0x0227); - 8005988: f240 2127 movw r1, #551 ; 0x227 - 800598c: 2011 movs r0, #17 - 800598e: f7ff fd3b bl 8005408 + 800598c: f240 2127 movw r1, #551 ; 0x227 + 8005990: 2011 movs r0, #17 + 8005992: f7ff fd3b bl 800540c //delayms(100); //vregiout LCD_WriteReg(0x0012,0x009D); //0x001b - 8005992: 219d movs r1, #157 ; 0x9d - 8005994: 2012 movs r0, #18 - 8005996: f7ff fd37 bl 8005408 + 8005996: 219d movs r1, #157 ; 0x9d + 8005998: 2012 movs r0, #18 + 800599a: f7ff fd37 bl 800540c //delayms(100); //vom amplitude LCD_WriteReg(0x0013,0x1900); - 800599a: f44f 51c8 mov.w r1, #6400 ; 0x1900 - 800599e: 2013 movs r0, #19 - 80059a0: f7ff fd32 bl 8005408 + 800599e: f44f 51c8 mov.w r1, #6400 ; 0x1900 + 80059a2: 2013 movs r0, #19 + 80059a4: f7ff fd32 bl 800540c //delayms(100); //vom H LCD_WriteReg(0x0029,0x0025); - 80059a4: 2125 movs r1, #37 ; 0x25 - 80059a6: 2029 movs r0, #41 ; 0x29 - 80059a8: f7ff fd2e bl 8005408 + 80059a8: 2125 movs r1, #37 ; 0x25 + 80059aa: 2029 movs r0, #41 ; 0x29 + 80059ac: f7ff fd2e bl 800540c LCD_WriteReg(0x002B,0x000D); - 80059ac: 210d movs r1, #13 - 80059ae: 202b movs r0, #43 ; 0x2b - 80059b0: f7ff fd2a bl 8005408 + 80059b0: 210d movs r1, #13 + 80059b2: 202b movs r0, #43 ; 0x2b + 80059b4: f7ff fd2a bl 800540c //gamma LCD_WriteReg(0x0030,0x0007); - 80059b4: 2107 movs r1, #7 - 80059b6: 2030 movs r0, #48 ; 0x30 - 80059b8: f7ff fd26 bl 8005408 + 80059b8: 2107 movs r1, #7 + 80059ba: 2030 movs r0, #48 ; 0x30 + 80059bc: f7ff fd26 bl 800540c LCD_WriteReg(0x0031,0x0303); - 80059bc: f240 3103 movw r1, #771 ; 0x303 - 80059c0: 2031 movs r0, #49 ; 0x31 - 80059c2: f7ff fd21 bl 8005408 + 80059c0: f240 3103 movw r1, #771 ; 0x303 + 80059c4: 2031 movs r0, #49 ; 0x31 + 80059c6: f7ff fd21 bl 800540c LCD_WriteReg(0x0032,0x0003);// 0006 - 80059c6: 2103 movs r1, #3 - 80059c8: 2032 movs r0, #50 ; 0x32 - 80059ca: f7ff fd1d bl 8005408 + 80059ca: 2103 movs r1, #3 + 80059cc: 2032 movs r0, #50 ; 0x32 + 80059ce: f7ff fd1d bl 800540c LCD_WriteReg(0x0035,0x0206); - 80059ce: f240 2106 movw r1, #518 ; 0x206 - 80059d2: 2035 movs r0, #53 ; 0x35 - 80059d4: f7ff fd18 bl 8005408 + 80059d2: f240 2106 movw r1, #518 ; 0x206 + 80059d6: 2035 movs r0, #53 ; 0x35 + 80059d8: f7ff fd18 bl 800540c LCD_WriteReg(0x0036,0x0008); - 80059d8: 2108 movs r1, #8 - 80059da: 2036 movs r0, #54 ; 0x36 - 80059dc: f7ff fd14 bl 8005408 + 80059dc: 2108 movs r1, #8 + 80059de: 2036 movs r0, #54 ; 0x36 + 80059e0: f7ff fd14 bl 800540c LCD_WriteReg(0x0037,0x0406); - 80059e0: f240 4106 movw r1, #1030 ; 0x406 - 80059e4: 2037 movs r0, #55 ; 0x37 - 80059e6: f7ff fd0f bl 8005408 + 80059e4: f240 4106 movw r1, #1030 ; 0x406 + 80059e8: 2037 movs r0, #55 ; 0x37 + 80059ea: f7ff fd0f bl 800540c LCD_WriteReg(0x0038,0x0304);//0200 - 80059ea: f44f 7141 mov.w r1, #772 ; 0x304 - 80059ee: 2038 movs r0, #56 ; 0x38 - 80059f0: f7ff fd0a bl 8005408 + 80059ee: f44f 7141 mov.w r1, #772 ; 0x304 + 80059f2: 2038 movs r0, #56 ; 0x38 + 80059f4: f7ff fd0a bl 800540c LCD_WriteReg(0x0039,0x0007); - 80059f4: 2107 movs r1, #7 - 80059f6: 2039 movs r0, #57 ; 0x39 - 80059f8: f7ff fd06 bl 8005408 + 80059f8: 2107 movs r1, #7 + 80059fa: 2039 movs r0, #57 ; 0x39 + 80059fc: f7ff fd06 bl 800540c LCD_WriteReg(0x003C,0x0602);// 0504 - 80059fc: f240 6102 movw r1, #1538 ; 0x602 - 8005a00: 203c movs r0, #60 ; 0x3c - 8005a02: f7ff fd01 bl 8005408 + 8005a00: f240 6102 movw r1, #1538 ; 0x602 + 8005a04: 203c movs r0, #60 ; 0x3c + 8005a06: f7ff fd01 bl 800540c LCD_WriteReg(0x003D,0x0008); - 8005a06: 2108 movs r1, #8 - 8005a08: 203d movs r0, #61 ; 0x3d - 8005a0a: f7ff fcfd bl 8005408 + 8005a0a: 2108 movs r1, #8 + 8005a0c: 203d movs r0, #61 ; 0x3d + 8005a0e: f7ff fcfd bl 800540c //ram LCD_WriteReg(0x0050,0x0000); - 8005a0e: 2100 movs r1, #0 - 8005a10: 2050 movs r0, #80 ; 0x50 - 8005a12: f7ff fcf9 bl 8005408 + 8005a12: 2100 movs r1, #0 + 8005a14: 2050 movs r0, #80 ; 0x50 + 8005a16: f7ff fcf9 bl 800540c LCD_WriteReg(0x0051,0x00EF); - 8005a16: 21ef movs r1, #239 ; 0xef - 8005a18: 2051 movs r0, #81 ; 0x51 - 8005a1a: f7ff fcf5 bl 8005408 + 8005a1a: 21ef movs r1, #239 ; 0xef + 8005a1c: 2051 movs r0, #81 ; 0x51 + 8005a1e: f7ff fcf5 bl 800540c LCD_WriteReg(0x0052,0x0000); - 8005a1e: 2100 movs r1, #0 - 8005a20: 2052 movs r0, #82 ; 0x52 - 8005a22: f7ff fcf1 bl 8005408 + 8005a22: 2100 movs r1, #0 + 8005a24: 2052 movs r0, #82 ; 0x52 + 8005a26: f7ff fcf1 bl 800540c LCD_WriteReg(0x0053,0x013F); - 8005a26: f240 113f movw r1, #319 ; 0x13f - 8005a2a: 2053 movs r0, #83 ; 0x53 - 8005a2c: f7ff fcec bl 8005408 + 8005a2a: f240 113f movw r1, #319 ; 0x13f + 8005a2e: 2053 movs r0, #83 ; 0x53 + 8005a30: f7ff fcec bl 800540c LCD_WriteReg(0x0060,0xA700); - 8005a30: f44f 4127 mov.w r1, #42752 ; 0xa700 - 8005a34: 2060 movs r0, #96 ; 0x60 - 8005a36: f7ff fce7 bl 8005408 + 8005a34: f44f 4127 mov.w r1, #42752 ; 0xa700 + 8005a38: 2060 movs r0, #96 ; 0x60 + 8005a3a: f7ff fce7 bl 800540c LCD_WriteReg(0x0061,0x0001); - 8005a3a: 2101 movs r1, #1 - 8005a3c: 2061 movs r0, #97 ; 0x61 - 8005a3e: f7ff fce3 bl 8005408 + 8005a3e: 2101 movs r1, #1 + 8005a40: 2061 movs r0, #97 ; 0x61 + 8005a42: f7ff fce3 bl 800540c LCD_WriteReg(0x006A,0x0000); - 8005a42: 2100 movs r1, #0 - 8005a44: 206a movs r0, #106 ; 0x6a - 8005a46: f7ff fcdf bl 8005408 + 8005a46: 2100 movs r1, #0 + 8005a48: 206a movs r0, #106 ; 0x6a + 8005a4a: f7ff fcdf bl 800540c // LCD_WriteReg(0x0080,0x0000); - 8005a4a: 2100 movs r1, #0 - 8005a4c: 2080 movs r0, #128 ; 0x80 - 8005a4e: f7ff fcdb bl 8005408 + 8005a4e: 2100 movs r1, #0 + 8005a50: 2080 movs r0, #128 ; 0x80 + 8005a52: f7ff fcdb bl 800540c LCD_WriteReg(0x0081,0x0000); - 8005a52: 2100 movs r1, #0 - 8005a54: 2081 movs r0, #129 ; 0x81 - 8005a56: f7ff fcd7 bl 8005408 + 8005a56: 2100 movs r1, #0 + 8005a58: 2081 movs r0, #129 ; 0x81 + 8005a5a: f7ff fcd7 bl 800540c LCD_WriteReg(0x0082,0x0000); - 8005a5a: 2100 movs r1, #0 - 8005a5c: 2082 movs r0, #130 ; 0x82 - 8005a5e: f7ff fcd3 bl 8005408 + 8005a5e: 2100 movs r1, #0 + 8005a60: 2082 movs r0, #130 ; 0x82 + 8005a62: f7ff fcd3 bl 800540c LCD_WriteReg(0x0083,0x0000); - 8005a62: 2100 movs r1, #0 - 8005a64: 2083 movs r0, #131 ; 0x83 - 8005a66: f7ff fccf bl 8005408 + 8005a66: 2100 movs r1, #0 + 8005a68: 2083 movs r0, #131 ; 0x83 + 8005a6a: f7ff fccf bl 800540c LCD_WriteReg(0x0084,0x0000); - 8005a6a: 2100 movs r1, #0 - 8005a6c: 2084 movs r0, #132 ; 0x84 - 8005a6e: f7ff fccb bl 8005408 + 8005a6e: 2100 movs r1, #0 + 8005a70: 2084 movs r0, #132 ; 0x84 + 8005a72: f7ff fccb bl 800540c LCD_WriteReg(0x0085,0x0000); - 8005a72: 2100 movs r1, #0 - 8005a74: 2085 movs r0, #133 ; 0x85 - 8005a76: f7ff fcc7 bl 8005408 + 8005a76: 2100 movs r1, #0 + 8005a78: 2085 movs r0, #133 ; 0x85 + 8005a7a: f7ff fcc7 bl 800540c // LCD_WriteReg(0x0090,0x0010); - 8005a7a: 2110 movs r1, #16 - 8005a7c: 2090 movs r0, #144 ; 0x90 - 8005a7e: f7ff fcc3 bl 8005408 + 8005a7e: 2110 movs r1, #16 + 8005a80: 2090 movs r0, #144 ; 0x90 + 8005a82: f7ff fcc3 bl 800540c LCD_WriteReg(0x0092,0x0600); - 8005a82: f44f 61c0 mov.w r1, #1536 ; 0x600 - 8005a86: 2092 movs r0, #146 ; 0x92 - 8005a88: f7ff fcbe bl 8005408 + 8005a86: f44f 61c0 mov.w r1, #1536 ; 0x600 + 8005a8a: 2092 movs r0, #146 ; 0x92 + 8005a8c: f7ff fcbe bl 800540c LCD_WriteReg(0x0007,0x0133); - 8005a8c: f240 1133 movw r1, #307 ; 0x133 - 8005a90: 2007 movs r0, #7 - 8005a92: f7ff fcb9 bl 8005408 + 8005a90: f240 1133 movw r1, #307 ; 0x133 + 8005a94: 2007 movs r0, #7 + 8005a96: f7ff fcb9 bl 800540c LCD_WriteReg(0x00,0x0022);// - 8005a96: 2122 movs r1, #34 ; 0x22 - 8005a98: 2000 movs r0, #0 - 8005a9a: f7ff fcb5 bl 8005408 + 8005a9a: 2122 movs r1, #34 ; 0x22 + 8005a9c: 2000 movs r0, #0 + 8005a9e: f7ff fcb5 bl 800540c LCD_Display_Dir(1); //ĬÈÏΪhÆÁ - 8005a9e: 2001 movs r0, #1 - 8005aa0: f7ff fe4a bl 8005738 + 8005aa2: 2001 movs r0, #1 + 8005aa4: f7ff fe4a bl 800573c } - 8005aa4: bf00 nop - 8005aa6: bd80 pop {r7, pc} - 8005aa8: 40010c00 .word 0x40010c00 - 8005aac: 20000824 .word 0x20000824 + 8005aa8: bf00 nop + 8005aaa: bd80 pop {r7, pc} + 8005aac: 40010c00 .word 0x40010c00 + 8005ab0: 20000824 .word 0x20000824 -08005ab0 : +08005ab4 : //***********************************************************´òµã ¶Áµã ʲôµÄ //ÉèÖùâ±êλÖà //Xpos:ºá×ø±ê //Ypos:×Ý×ø±ê void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos) { - 8005ab0: b580 push {r7, lr} - 8005ab2: b082 sub sp, #8 - 8005ab4: af00 add r7, sp, #0 - 8005ab6: 4603 mov r3, r0 - 8005ab8: 460a mov r2, r1 - 8005aba: 80fb strh r3, [r7, #6] - 8005abc: 4613 mov r3, r2 - 8005abe: 80bb strh r3, [r7, #4] + 8005ab4: b580 push {r7, lr} + 8005ab6: b082 sub sp, #8 + 8005ab8: af00 add r7, sp, #0 + 8005aba: 4603 mov r3, r0 + 8005abc: 460a mov r2, r1 + 8005abe: 80fb strh r3, [r7, #6] + 8005ac0: 4613 mov r3, r2 + 8005ac2: 80bb strh r3, [r7, #4] if(lcddev.id==0X9341||lcddev.id==0X5310) - 8005ac0: 4b42 ldr r3, [pc, #264] ; (8005bcc ) - 8005ac2: 889b ldrh r3, [r3, #4] - 8005ac4: f249 3241 movw r2, #37697 ; 0x9341 - 8005ac8: 4293 cmp r3, r2 - 8005aca: d005 beq.n 8005ad8 - 8005acc: 4b3f ldr r3, [pc, #252] ; (8005bcc ) - 8005ace: 889b ldrh r3, [r3, #4] - 8005ad0: f245 3210 movw r2, #21264 ; 0x5310 - 8005ad4: 4293 cmp r3, r2 - 8005ad6: d124 bne.n 8005b22 + 8005ac4: 4b42 ldr r3, [pc, #264] ; (8005bd0 ) + 8005ac6: 889b ldrh r3, [r3, #4] + 8005ac8: f249 3241 movw r2, #37697 ; 0x9341 + 8005acc: 4293 cmp r3, r2 + 8005ace: d005 beq.n 8005adc + 8005ad0: 4b3f ldr r3, [pc, #252] ; (8005bd0 ) + 8005ad2: 889b ldrh r3, [r3, #4] + 8005ad4: f245 3210 movw r2, #21264 ; 0x5310 + 8005ad8: 4293 cmp r3, r2 + 8005ada: d124 bne.n 8005b26 { LCD_WR_REG(lcddev.setxcmd); - 8005ad8: 4b3c ldr r3, [pc, #240] ; (8005bcc ) - 8005ada: 7a1b ldrb r3, [r3, #8] - 8005adc: b29b uxth r3, r3 - 8005ade: 4618 mov r0, r3 - 8005ae0: f7ff fc74 bl 80053cc + 8005adc: 4b3c ldr r3, [pc, #240] ; (8005bd0 ) + 8005ade: 7a1b ldrb r3, [r3, #8] + 8005ae0: b29b uxth r3, r3 + 8005ae2: 4618 mov r0, r3 + 8005ae4: f7ff fc74 bl 80053d0 LCD_WR_DATA(Xpos>>8); - 8005ae4: 88fb ldrh r3, [r7, #6] - 8005ae6: 0a1b lsrs r3, r3, #8 - 8005ae8: b29b uxth r3, r3 - 8005aea: 4618 mov r0, r3 - 8005aec: f7ff fc7c bl 80053e8 + 8005ae8: 88fb ldrh r3, [r7, #6] + 8005aea: 0a1b lsrs r3, r3, #8 + 8005aec: b29b uxth r3, r3 + 8005aee: 4618 mov r0, r3 + 8005af0: f7ff fc7c bl 80053ec LCD_WR_DATA(Xpos&0XFF); - 8005af0: 88fb ldrh r3, [r7, #6] - 8005af2: b2db uxtb r3, r3 - 8005af4: b29b uxth r3, r3 - 8005af6: 4618 mov r0, r3 - 8005af8: f7ff fc76 bl 80053e8 + 8005af4: 88fb ldrh r3, [r7, #6] + 8005af6: b2db uxtb r3, r3 + 8005af8: b29b uxth r3, r3 + 8005afa: 4618 mov r0, r3 + 8005afc: f7ff fc76 bl 80053ec LCD_WR_REG(lcddev.setycmd); - 8005afc: 4b33 ldr r3, [pc, #204] ; (8005bcc ) - 8005afe: 7a5b ldrb r3, [r3, #9] - 8005b00: b29b uxth r3, r3 - 8005b02: 4618 mov r0, r3 - 8005b04: f7ff fc62 bl 80053cc + 8005b00: 4b33 ldr r3, [pc, #204] ; (8005bd0 ) + 8005b02: 7a5b ldrb r3, [r3, #9] + 8005b04: b29b uxth r3, r3 + 8005b06: 4618 mov r0, r3 + 8005b08: f7ff fc62 bl 80053d0 LCD_WR_DATA(Ypos>>8); - 8005b08: 88bb ldrh r3, [r7, #4] - 8005b0a: 0a1b lsrs r3, r3, #8 - 8005b0c: b29b uxth r3, r3 - 8005b0e: 4618 mov r0, r3 - 8005b10: f7ff fc6a bl 80053e8 + 8005b0c: 88bb ldrh r3, [r7, #4] + 8005b0e: 0a1b lsrs r3, r3, #8 + 8005b10: b29b uxth r3, r3 + 8005b12: 4618 mov r0, r3 + 8005b14: f7ff fc6a bl 80053ec LCD_WR_DATA(Ypos&0XFF); - 8005b14: 88bb ldrh r3, [r7, #4] - 8005b16: b2db uxtb r3, r3 - 8005b18: b29b uxth r3, r3 - 8005b1a: 4618 mov r0, r3 - 8005b1c: f7ff fc64 bl 80053e8 + 8005b18: 88bb ldrh r3, [r7, #4] + 8005b1a: b2db uxtb r3, r3 + 8005b1c: b29b uxth r3, r3 + 8005b1e: 4618 mov r0, r3 + 8005b20: f7ff fc64 bl 80053ec { if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//ºáÆÁÆäʵ¾ÍÊǵ÷תx,y×ø±ê LCD_WriteReg(lcddev.setxcmd, Xpos); LCD_WriteReg(lcddev.setycmd, Ypos); } } - 8005b20: e050 b.n 8005bc4 + 8005b24: e050 b.n 8005bc8 }else if(lcddev.id==0X6804) - 8005b22: 4b2a ldr r3, [pc, #168] ; (8005bcc ) - 8005b24: 889b ldrh r3, [r3, #4] - 8005b26: f646 0204 movw r2, #26628 ; 0x6804 - 8005b2a: 4293 cmp r3, r2 - 8005b2c: d12f bne.n 8005b8e + 8005b26: 4b2a ldr r3, [pc, #168] ; (8005bd0 ) + 8005b28: 889b ldrh r3, [r3, #4] + 8005b2a: f646 0204 movw r2, #26628 ; 0x6804 + 8005b2e: 4293 cmp r3, r2 + 8005b30: d12f bne.n 8005b92 if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//ºáÆÁʱ´¦Àí - 8005b2e: 4b27 ldr r3, [pc, #156] ; (8005bcc ) - 8005b30: 799b ldrb r3, [r3, #6] - 8005b32: 2b01 cmp r3, #1 - 8005b34: d106 bne.n 8005b44 - 8005b36: 4b25 ldr r3, [pc, #148] ; (8005bcc ) - 8005b38: 881a ldrh r2, [r3, #0] - 8005b3a: 88fb ldrh r3, [r7, #6] - 8005b3c: 1ad3 subs r3, r2, r3 - 8005b3e: b29b uxth r3, r3 - 8005b40: 3b01 subs r3, #1 - 8005b42: 80fb strh r3, [r7, #6] + 8005b32: 4b27 ldr r3, [pc, #156] ; (8005bd0 ) + 8005b34: 799b ldrb r3, [r3, #6] + 8005b36: 2b01 cmp r3, #1 + 8005b38: d106 bne.n 8005b48 + 8005b3a: 4b25 ldr r3, [pc, #148] ; (8005bd0 ) + 8005b3c: 881a ldrh r2, [r3, #0] + 8005b3e: 88fb ldrh r3, [r7, #6] + 8005b40: 1ad3 subs r3, r2, r3 + 8005b42: b29b uxth r3, r3 + 8005b44: 3b01 subs r3, #1 + 8005b46: 80fb strh r3, [r7, #6] LCD_WR_REG(lcddev.setxcmd); - 8005b44: 4b21 ldr r3, [pc, #132] ; (8005bcc ) - 8005b46: 7a1b ldrb r3, [r3, #8] - 8005b48: b29b uxth r3, r3 - 8005b4a: 4618 mov r0, r3 - 8005b4c: f7ff fc3e bl 80053cc + 8005b48: 4b21 ldr r3, [pc, #132] ; (8005bd0 ) + 8005b4a: 7a1b ldrb r3, [r3, #8] + 8005b4c: b29b uxth r3, r3 + 8005b4e: 4618 mov r0, r3 + 8005b50: f7ff fc3e bl 80053d0 LCD_WR_DATA(Xpos>>8); - 8005b50: 88fb ldrh r3, [r7, #6] - 8005b52: 0a1b lsrs r3, r3, #8 - 8005b54: b29b uxth r3, r3 - 8005b56: 4618 mov r0, r3 - 8005b58: f7ff fc46 bl 80053e8 + 8005b54: 88fb ldrh r3, [r7, #6] + 8005b56: 0a1b lsrs r3, r3, #8 + 8005b58: b29b uxth r3, r3 + 8005b5a: 4618 mov r0, r3 + 8005b5c: f7ff fc46 bl 80053ec LCD_WR_DATA(Xpos&0XFF); - 8005b5c: 88fb ldrh r3, [r7, #6] - 8005b5e: b2db uxtb r3, r3 - 8005b60: b29b uxth r3, r3 - 8005b62: 4618 mov r0, r3 - 8005b64: f7ff fc40 bl 80053e8 + 8005b60: 88fb ldrh r3, [r7, #6] + 8005b62: b2db uxtb r3, r3 + 8005b64: b29b uxth r3, r3 + 8005b66: 4618 mov r0, r3 + 8005b68: f7ff fc40 bl 80053ec LCD_WR_REG(lcddev.setycmd); - 8005b68: 4b18 ldr r3, [pc, #96] ; (8005bcc ) - 8005b6a: 7a5b ldrb r3, [r3, #9] - 8005b6c: b29b uxth r3, r3 - 8005b6e: 4618 mov r0, r3 - 8005b70: f7ff fc2c bl 80053cc + 8005b6c: 4b18 ldr r3, [pc, #96] ; (8005bd0 ) + 8005b6e: 7a5b ldrb r3, [r3, #9] + 8005b70: b29b uxth r3, r3 + 8005b72: 4618 mov r0, r3 + 8005b74: f7ff fc2c bl 80053d0 LCD_WR_DATA(Ypos>>8); - 8005b74: 88bb ldrh r3, [r7, #4] - 8005b76: 0a1b lsrs r3, r3, #8 - 8005b78: b29b uxth r3, r3 - 8005b7a: 4618 mov r0, r3 - 8005b7c: f7ff fc34 bl 80053e8 + 8005b78: 88bb ldrh r3, [r7, #4] + 8005b7a: 0a1b lsrs r3, r3, #8 + 8005b7c: b29b uxth r3, r3 + 8005b7e: 4618 mov r0, r3 + 8005b80: f7ff fc34 bl 80053ec LCD_WR_DATA(Ypos&0XFF); - 8005b80: 88bb ldrh r3, [r7, #4] - 8005b82: b2db uxtb r3, r3 - 8005b84: b29b uxth r3, r3 - 8005b86: 4618 mov r0, r3 - 8005b88: f7ff fc2e bl 80053e8 + 8005b84: 88bb ldrh r3, [r7, #4] + 8005b86: b2db uxtb r3, r3 + 8005b88: b29b uxth r3, r3 + 8005b8a: 4618 mov r0, r3 + 8005b8c: f7ff fc2e bl 80053ec } - 8005b8c: e01a b.n 8005bc4 + 8005b90: e01a b.n 8005bc8 if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//ºáÆÁÆäʵ¾ÍÊǵ÷תx,y×ø±ê - 8005b8e: 4b0f ldr r3, [pc, #60] ; (8005bcc ) - 8005b90: 799b ldrb r3, [r3, #6] - 8005b92: 2b01 cmp r3, #1 - 8005b94: d106 bne.n 8005ba4 - 8005b96: 4b0d ldr r3, [pc, #52] ; (8005bcc ) - 8005b98: 881a ldrh r2, [r3, #0] - 8005b9a: 88fb ldrh r3, [r7, #6] - 8005b9c: 1ad3 subs r3, r2, r3 - 8005b9e: b29b uxth r3, r3 - 8005ba0: 3b01 subs r3, #1 - 8005ba2: 80fb strh r3, [r7, #6] + 8005b92: 4b0f ldr r3, [pc, #60] ; (8005bd0 ) + 8005b94: 799b ldrb r3, [r3, #6] + 8005b96: 2b01 cmp r3, #1 + 8005b98: d106 bne.n 8005ba8 + 8005b9a: 4b0d ldr r3, [pc, #52] ; (8005bd0 ) + 8005b9c: 881a ldrh r2, [r3, #0] + 8005b9e: 88fb ldrh r3, [r7, #6] + 8005ba0: 1ad3 subs r3, r2, r3 + 8005ba2: b29b uxth r3, r3 + 8005ba4: 3b01 subs r3, #1 + 8005ba6: 80fb strh r3, [r7, #6] LCD_WriteReg(lcddev.setxcmd, Xpos); - 8005ba4: 4b09 ldr r3, [pc, #36] ; (8005bcc ) - 8005ba6: 7a1b ldrb r3, [r3, #8] - 8005ba8: b29b uxth r3, r3 - 8005baa: 88fa ldrh r2, [r7, #6] - 8005bac: 4611 mov r1, r2 - 8005bae: 4618 mov r0, r3 - 8005bb0: f7ff fc2a bl 8005408 + 8005ba8: 4b09 ldr r3, [pc, #36] ; (8005bd0 ) + 8005baa: 7a1b ldrb r3, [r3, #8] + 8005bac: b29b uxth r3, r3 + 8005bae: 88fa ldrh r2, [r7, #6] + 8005bb0: 4611 mov r1, r2 + 8005bb2: 4618 mov r0, r3 + 8005bb4: f7ff fc2a bl 800540c LCD_WriteReg(lcddev.setycmd, Ypos); - 8005bb4: 4b05 ldr r3, [pc, #20] ; (8005bcc ) - 8005bb6: 7a5b ldrb r3, [r3, #9] - 8005bb8: b29b uxth r3, r3 - 8005bba: 88ba ldrh r2, [r7, #4] - 8005bbc: 4611 mov r1, r2 - 8005bbe: 4618 mov r0, r3 - 8005bc0: f7ff fc22 bl 8005408 + 8005bb8: 4b05 ldr r3, [pc, #20] ; (8005bd0 ) + 8005bba: 7a5b ldrb r3, [r3, #9] + 8005bbc: b29b uxth r3, r3 + 8005bbe: 88ba ldrh r2, [r7, #4] + 8005bc0: 4611 mov r1, r2 + 8005bc2: 4618 mov r0, r3 + 8005bc4: f7ff fc22 bl 800540c } - 8005bc4: bf00 nop - 8005bc6: 3708 adds r7, #8 - 8005bc8: 46bd mov sp, r7 - 8005bca: bd80 pop {r7, pc} - 8005bcc: 20000824 .word 0x20000824 + 8005bc8: bf00 nop + 8005bca: 3708 adds r7, #8 + 8005bcc: 46bd mov sp, r7 + 8005bce: bd80 pop {r7, pc} + 8005bd0: 20000824 .word 0x20000824 -08005bd0 : +08005bd4 : } //»­µã //x,y:×ø±ê //POINT_COLOR:´ËµãµÄÑÕÉ« void LCD_set_dot(uint16_t x,uint16_t y,uint16_t color) { - 8005bd0: b580 push {r7, lr} - 8005bd2: b082 sub sp, #8 - 8005bd4: af00 add r7, sp, #0 - 8005bd6: 4603 mov r3, r0 - 8005bd8: 80fb strh r3, [r7, #6] - 8005bda: 460b mov r3, r1 - 8005bdc: 80bb strh r3, [r7, #4] - 8005bde: 4613 mov r3, r2 - 8005be0: 807b strh r3, [r7, #2] + 8005bd4: b580 push {r7, lr} + 8005bd6: b082 sub sp, #8 + 8005bd8: af00 add r7, sp, #0 + 8005bda: 4603 mov r3, r0 + 8005bdc: 80fb strh r3, [r7, #6] + 8005bde: 460b mov r3, r1 + 8005be0: 80bb strh r3, [r7, #4] + 8005be2: 4613 mov r3, r2 + 8005be4: 807b strh r3, [r7, #2] LCD_SetCursor(x,y); //ÉèÖùâ±êλÖà - 8005be2: 88ba ldrh r2, [r7, #4] - 8005be4: 88fb ldrh r3, [r7, #6] - 8005be6: 4611 mov r1, r2 - 8005be8: 4618 mov r0, r3 - 8005bea: f7ff ff61 bl 8005ab0 + 8005be6: 88ba ldrh r2, [r7, #4] + 8005be8: 88fb ldrh r3, [r7, #6] + 8005bea: 4611 mov r1, r2 + 8005bec: 4618 mov r0, r3 + 8005bee: f7ff ff61 bl 8005ab4 LCD_REG_ADDRESS=lcddev.wramcmd; //¿ªÊ¼Ð´ÈëGRAM - 8005bee: 4b06 ldr r3, [pc, #24] ; (8005c08 ) - 8005bf0: 79da ldrb r2, [r3, #7] - 8005bf2: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 - 8005bf6: b292 uxth r2, r2 - 8005bf8: 801a strh r2, [r3, #0] + 8005bf2: 4b06 ldr r3, [pc, #24] ; (8005c0c ) + 8005bf4: 79da ldrb r2, [r3, #7] + 8005bf6: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 + 8005bfa: b292 uxth r2, r2 + 8005bfc: 801a strh r2, [r3, #0] LCD_DATA_ADDRESS=color; - 8005bfa: 4a04 ldr r2, [pc, #16] ; (8005c0c ) - 8005bfc: 887b ldrh r3, [r7, #2] - 8005bfe: 8013 strh r3, [r2, #0] + 8005bfe: 4a04 ldr r2, [pc, #16] ; (8005c10 ) + 8005c00: 887b ldrh r3, [r7, #2] + 8005c02: 8013 strh r3, [r2, #0] } - 8005c00: bf00 nop - 8005c02: 3708 adds r7, #8 - 8005c04: 46bd mov sp, r7 - 8005c06: bd80 pop {r7, pc} - 8005c08: 20000824 .word 0x20000824 - 8005c0c: 6c000800 .word 0x6c000800 + 8005c04: bf00 nop + 8005c06: 3708 adds r7, #8 + 8005c08: 46bd mov sp, r7 + 8005c0a: bd80 pop {r7, pc} + 8005c0c: 20000824 .word 0x20000824 + 8005c10: 6c000800 .word 0x6c000800 -08005c10 : +08005c14 : //ÇåÆÁº¯Êý //color:ÒªÇåÆÁµÄÌî³äÉ« void LCD_Clear(uint16_t color) { - 8005c10: b580 push {r7, lr} - 8005c12: b084 sub sp, #16 - 8005c14: af00 add r7, sp, #0 - 8005c16: 4603 mov r3, r0 - 8005c18: 80fb strh r3, [r7, #6] + 8005c14: b580 push {r7, lr} + 8005c16: b084 sub sp, #16 + 8005c18: af00 add r7, sp, #0 + 8005c1a: 4603 mov r3, r0 + 8005c1c: 80fb strh r3, [r7, #6] uint32_t index=0; - 8005c1a: 2300 movs r3, #0 - 8005c1c: 60fb str r3, [r7, #12] + 8005c1e: 2300 movs r3, #0 + 8005c20: 60fb str r3, [r7, #12] uint32_t totalpoint=lcddev.width; - 8005c1e: 4b23 ldr r3, [pc, #140] ; (8005cac ) - 8005c20: 881b ldrh r3, [r3, #0] - 8005c22: 60bb str r3, [r7, #8] + 8005c22: 4b23 ldr r3, [pc, #140] ; (8005cb0 ) + 8005c24: 881b ldrh r3, [r3, #0] + 8005c26: 60bb str r3, [r7, #8] totalpoint*=lcddev.height; //µÃµ½×ܵãÊý - 8005c24: 4b21 ldr r3, [pc, #132] ; (8005cac ) - 8005c26: 885b ldrh r3, [r3, #2] - 8005c28: 461a mov r2, r3 - 8005c2a: 68bb ldr r3, [r7, #8] - 8005c2c: fb02 f303 mul.w r3, r2, r3 - 8005c30: 60bb str r3, [r7, #8] + 8005c28: 4b21 ldr r3, [pc, #132] ; (8005cb0 ) + 8005c2a: 885b ldrh r3, [r3, #2] + 8005c2c: 461a mov r2, r3 + 8005c2e: 68bb ldr r3, [r7, #8] + 8005c30: fb02 f303 mul.w r3, r2, r3 + 8005c34: 60bb str r3, [r7, #8] if((lcddev.id==0X6804)&&(lcddev.dir==1))//6804ºáÆÁµÄʱºòÌØÊâ´¦Àí - 8005c32: 4b1e ldr r3, [pc, #120] ; (8005cac ) - 8005c34: 889b ldrh r3, [r3, #4] - 8005c36: f646 0204 movw r2, #26628 ; 0x6804 - 8005c3a: 4293 cmp r3, r2 - 8005c3c: d11a bne.n 8005c74 - 8005c3e: 4b1b ldr r3, [pc, #108] ; (8005cac ) - 8005c40: 799b ldrb r3, [r3, #6] - 8005c42: 2b01 cmp r3, #1 - 8005c44: d116 bne.n 8005c74 + 8005c36: 4b1e ldr r3, [pc, #120] ; (8005cb0 ) + 8005c38: 889b ldrh r3, [r3, #4] + 8005c3a: f646 0204 movw r2, #26628 ; 0x6804 + 8005c3e: 4293 cmp r3, r2 + 8005c40: d11a bne.n 8005c78 + 8005c42: 4b1b ldr r3, [pc, #108] ; (8005cb0 ) + 8005c44: 799b ldrb r3, [r3, #6] + 8005c46: 2b01 cmp r3, #1 + 8005c48: d116 bne.n 8005c78 { lcddev.dir=0; - 8005c46: 4b19 ldr r3, [pc, #100] ; (8005cac ) - 8005c48: 2200 movs r2, #0 - 8005c4a: 719a strb r2, [r3, #6] + 8005c4a: 4b19 ldr r3, [pc, #100] ; (8005cb0 ) + 8005c4c: 2200 movs r2, #0 + 8005c4e: 719a strb r2, [r3, #6] lcddev.setxcmd=0X2A; - 8005c4c: 4b17 ldr r3, [pc, #92] ; (8005cac ) - 8005c4e: 222a movs r2, #42 ; 0x2a - 8005c50: 721a strb r2, [r3, #8] + 8005c50: 4b17 ldr r3, [pc, #92] ; (8005cb0 ) + 8005c52: 222a movs r2, #42 ; 0x2a + 8005c54: 721a strb r2, [r3, #8] lcddev.setycmd=0X2B; - 8005c52: 4b16 ldr r3, [pc, #88] ; (8005cac ) - 8005c54: 222b movs r2, #43 ; 0x2b - 8005c56: 725a strb r2, [r3, #9] + 8005c56: 4b16 ldr r3, [pc, #88] ; (8005cb0 ) + 8005c58: 222b movs r2, #43 ; 0x2b + 8005c5a: 725a strb r2, [r3, #9] LCD_SetCursor(0x00,0x0000); //ÉèÖùâ±êλÖà - 8005c58: 2100 movs r1, #0 - 8005c5a: 2000 movs r0, #0 - 8005c5c: f7ff ff28 bl 8005ab0 + 8005c5c: 2100 movs r1, #0 + 8005c5e: 2000 movs r0, #0 + 8005c60: f7ff ff28 bl 8005ab4 lcddev.dir=1; - 8005c60: 4b12 ldr r3, [pc, #72] ; (8005cac ) - 8005c62: 2201 movs r2, #1 - 8005c64: 719a strb r2, [r3, #6] + 8005c64: 4b12 ldr r3, [pc, #72] ; (8005cb0 ) + 8005c66: 2201 movs r2, #1 + 8005c68: 719a strb r2, [r3, #6] lcddev.setxcmd=0X2B; - 8005c66: 4b11 ldr r3, [pc, #68] ; (8005cac ) - 8005c68: 222b movs r2, #43 ; 0x2b - 8005c6a: 721a strb r2, [r3, #8] + 8005c6a: 4b11 ldr r3, [pc, #68] ; (8005cb0 ) + 8005c6c: 222b movs r2, #43 ; 0x2b + 8005c6e: 721a strb r2, [r3, #8] lcddev.setycmd=0X2A; - 8005c6c: 4b0f ldr r3, [pc, #60] ; (8005cac ) - 8005c6e: 222a movs r2, #42 ; 0x2a - 8005c70: 725a strb r2, [r3, #9] - 8005c72: e003 b.n 8005c7c + 8005c70: 4b0f ldr r3, [pc, #60] ; (8005cb0 ) + 8005c72: 222a movs r2, #42 ; 0x2a + 8005c74: 725a strb r2, [r3, #9] + 8005c76: e003 b.n 8005c80 }else LCD_SetCursor(0x00,0x0000); //ÉèÖùâ±êλÖà - 8005c74: 2100 movs r1, #0 - 8005c76: 2000 movs r0, #0 - 8005c78: f7ff ff1a bl 8005ab0 + 8005c78: 2100 movs r1, #0 + 8005c7a: 2000 movs r0, #0 + 8005c7c: f7ff ff1a bl 8005ab4 LCD_REG_ADDRESS=lcddev.wramcmd; //¿ªÊ¼Ð´ÈëGRAM - 8005c7c: 4b0b ldr r3, [pc, #44] ; (8005cac ) - 8005c7e: 79da ldrb r2, [r3, #7] - 8005c80: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 - 8005c84: b292 uxth r2, r2 - 8005c86: 801a strh r2, [r3, #0] + 8005c80: 4b0b ldr r3, [pc, #44] ; (8005cb0 ) + 8005c82: 79da ldrb r2, [r3, #7] + 8005c84: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 + 8005c88: b292 uxth r2, r2 + 8005c8a: 801a strh r2, [r3, #0] for(index=0;index + 8005c8c: 2300 movs r3, #0 + 8005c8e: 60fb str r3, [r7, #12] + 8005c90: e005 b.n 8005c9e { LCD_DATA_ADDRESS=color; - 8005c8e: 4a08 ldr r2, [pc, #32] ; (8005cb0 ) - 8005c90: 88fb ldrh r3, [r7, #6] - 8005c92: 8013 strh r3, [r2, #0] + 8005c92: 4a08 ldr r2, [pc, #32] ; (8005cb4 ) + 8005c94: 88fb ldrh r3, [r7, #6] + 8005c96: 8013 strh r3, [r2, #0] for(index=0;index + 8005c98: 68fb ldr r3, [r7, #12] + 8005c9a: 3301 adds r3, #1 + 8005c9c: 60fb str r3, [r7, #12] + 8005c9e: 68fa ldr r2, [r7, #12] + 8005ca0: 68bb ldr r3, [r7, #8] + 8005ca2: 429a cmp r2, r3 + 8005ca4: d3f5 bcc.n 8005c92 } } - 8005ca2: bf00 nop - 8005ca4: bf00 nop - 8005ca6: 3710 adds r7, #16 - 8005ca8: 46bd mov sp, r7 - 8005caa: bd80 pop {r7, pc} - 8005cac: 20000824 .word 0x20000824 - 8005cb0: 6c000800 .word 0x6c000800 + 8005ca6: bf00 nop + 8005ca8: bf00 nop + 8005caa: 3710 adds r7, #16 + 8005cac: 46bd mov sp, r7 + 8005cae: bd80 pop {r7, pc} + 8005cb0: 20000824 .word 0x20000824 + 8005cb4: 6c000800 .word 0x6c000800 -08005cb4 : +08005cb8 : //³õʼ»¯×ÖÌå //·µ»ØÖµ:0,×Ö¿âÍêºÃ. // ÆäËû,×ֿⶪʧ uint8_t font_init(void) { - 8005cb4: b580 push {r7, lr} - 8005cb6: b082 sub sp, #8 - 8005cb8: af00 add r7, sp, #0 + 8005cb8: b580 push {r7, lr} + 8005cba: b082 sub sp, #8 + 8005cbc: af00 add r7, sp, #0 uint8_t t=0; - 8005cba: 2300 movs r3, #0 - 8005cbc: 71fb strb r3, [r7, #7] + 8005cbe: 2300 movs r3, #0 + 8005cc0: 71fb strb r3, [r7, #7] while(t<10)//Á¬Ðø¶ÁÈ¡10´Î,¶¼ÊÇ´íÎó,˵Ã÷ȷʵÊÇÓÐÎÊÌâ,µÃ¸üÐÂ×Ö¿âÁË - 8005cbe: e014 b.n 8005cea + 8005cc2: e014 b.n 8005cee { t++; - 8005cc0: 79fb ldrb r3, [r7, #7] - 8005cc2: 3301 adds r3, #1 - 8005cc4: 71fb strb r3, [r7, #7] + 8005cc4: 79fb ldrb r3, [r7, #7] + 8005cc6: 3301 adds r3, #1 + 8005cc8: 71fb strb r3, [r7, #7] W25QXX_Read((uint8_t*)&ftinfo,FONTINFOADDR,sizeof(ftinfo));//¶Á³öftinfo½á¹¹ÌåÊý¾Ý - 8005cc6: 2224 movs r2, #36 ; 0x24 - 8005cc8: f44f 0180 mov.w r1, #4194304 ; 0x400000 - 8005ccc: 480d ldr r0, [pc, #52] ; (8005d04 ) - 8005cce: f7fe fe5d bl 800498c + 8005cca: 2224 movs r2, #36 ; 0x24 + 8005ccc: f44f 0180 mov.w r1, #4194304 ; 0x400000 + 8005cd0: 480d ldr r0, [pc, #52] ; (8005d08 ) + 8005cd2: f7fe fe5d bl 8004990 if(ftinfo.fontok==0XAA) - 8005cd2: 4b0c ldr r3, [pc, #48] ; (8005d04 ) - 8005cd4: 781b ldrb r3, [r3, #0] - 8005cd6: 2baa cmp r3, #170 ; 0xaa - 8005cd8: d107 bne.n 8005cea + 8005cd6: 4b0c ldr r3, [pc, #48] ; (8005d08 ) + 8005cd8: 781b ldrb r3, [r3, #0] + 8005cda: 2baa cmp r3, #170 ; 0xaa + 8005cdc: d107 bne.n 8005cee { ftinfo.f12addr=0x0042a929; - 8005cda: 4b0a ldr r3, [pc, #40] ; (8005d04 ) - 8005cdc: 4a0a ldr r2, [pc, #40] ; (8005d08 ) - 8005cde: 60da str r2, [r3, #12] + 8005cde: 4b0a ldr r3, [pc, #40] ; (8005d08 ) + 8005ce0: 4a0a ldr r2, [pc, #40] ; (8005d0c ) + 8005ce2: 60da str r2, [r3, #12] ftinfo.f16addr=0x004b6d89; - 8005ce0: 4b08 ldr r3, [pc, #32] ; (8005d04 ) - 8005ce2: 4a0a ldr r2, [pc, #40] ; (8005d0c ) - 8005ce4: 615a str r2, [r3, #20] + 8005ce4: 4b08 ldr r3, [pc, #32] ; (8005d08 ) + 8005ce6: 4a0a ldr r2, [pc, #40] ; (8005d10 ) + 8005ce8: 615a str r2, [r3, #20] return 0; - 8005ce6: 2300 movs r3, #0 - 8005ce8: e008 b.n 8005cfc + 8005cea: 2300 movs r3, #0 + 8005cec: e008 b.n 8005d00 while(t<10)//Á¬Ðø¶ÁÈ¡10´Î,¶¼ÊÇ´íÎó,˵Ã÷ȷʵÊÇÓÐÎÊÌâ,µÃ¸üÐÂ×Ö¿âÁË - 8005cea: 79fb ldrb r3, [r7, #7] - 8005cec: 2b09 cmp r3, #9 - 8005cee: d9e7 bls.n 8005cc0 + 8005cee: 79fb ldrb r3, [r7, #7] + 8005cf0: 2b09 cmp r3, #9 + 8005cf2: d9e7 bls.n 8005cc4 } } if(ftinfo.fontok!=0XAA)return 1; - 8005cf0: 4b04 ldr r3, [pc, #16] ; (8005d04 ) - 8005cf2: 781b ldrb r3, [r3, #0] - 8005cf4: 2baa cmp r3, #170 ; 0xaa - 8005cf6: d001 beq.n 8005cfc - 8005cf8: 2301 movs r3, #1 - 8005cfa: e7ff b.n 8005cfc + 8005cf4: 4b04 ldr r3, [pc, #16] ; (8005d08 ) + 8005cf6: 781b ldrb r3, [r3, #0] + 8005cf8: 2baa cmp r3, #170 ; 0xaa + 8005cfa: d001 beq.n 8005d00 + 8005cfc: 2301 movs r3, #1 + 8005cfe: e7ff b.n 8005d00 } - 8005cfc: 4618 mov r0, r3 - 8005cfe: 3708 adds r7, #8 - 8005d00: 46bd mov sp, r7 - 8005d02: bd80 pop {r7, pc} - 8005d04: 20000830 .word 0x20000830 - 8005d08: 0042a929 .word 0x0042a929 - 8005d0c: 004b6d89 .word 0x004b6d89 + 8005d00: 4618 mov r0, r3 + 8005d02: 3708 adds r7, #8 + 8005d04: 46bd mov sp, r7 + 8005d06: bd80 pop {r7, pc} + 8005d08: 20000830 .word 0x20000830 + 8005d0c: 0042a929 .word 0x0042a929 + 8005d10: 004b6d89 .word 0x004b6d89 -08005d10 : +08005d14 : //´Ó×Ö¿âÖвéÕÒ³ö×ÖÄ£ //code ×Ö·û´®µÄ¿ªÊ¼µØÖ·,GBKÂë //mat Êý¾Ý´æ·ÅµØÖ· (size/8+((size%8)?1:0))*(size) bytes´óС //size:×ÖÌå´óС void Get_HzMat(unsigned char *code,unsigned char *mat,uint8_t size) { - 8005d10: b580 push {r7, lr} - 8005d12: b086 sub sp, #24 - 8005d14: af00 add r7, sp, #0 - 8005d16: 60f8 str r0, [r7, #12] - 8005d18: 60b9 str r1, [r7, #8] - 8005d1a: 4613 mov r3, r2 - 8005d1c: 71fb strb r3, [r7, #7] + 8005d14: b580 push {r7, lr} + 8005d16: b086 sub sp, #24 + 8005d18: af00 add r7, sp, #0 + 8005d1a: 60f8 str r0, [r7, #12] + 8005d1c: 60b9 str r1, [r7, #8] + 8005d1e: 4613 mov r3, r2 + 8005d20: 71fb strb r3, [r7, #7] unsigned char qh,ql; unsigned char i; unsigned long foffset; uint8_t csize=(size/8+((size%8)?1:0))*(size);//µÃµ½×ÖÌåÒ»¸ö×Ö·û¶ÔÓ¦µãÕó¼¯ËùÕ¼µÄ×Ö½ÚÊý - 8005d1e: 79fb ldrb r3, [r7, #7] - 8005d20: 08db lsrs r3, r3, #3 - 8005d22: b2db uxtb r3, r3 - 8005d24: 461a mov r2, r3 - 8005d26: 79fb ldrb r3, [r7, #7] - 8005d28: f003 0307 and.w r3, r3, #7 - 8005d2c: b2db uxtb r3, r3 - 8005d2e: 2b00 cmp r3, #0 - 8005d30: bf14 ite ne - 8005d32: 2301 movne r3, #1 - 8005d34: 2300 moveq r3, #0 - 8005d36: b2db uxtb r3, r3 - 8005d38: 4413 add r3, r2 + 8005d22: 79fb ldrb r3, [r7, #7] + 8005d24: 08db lsrs r3, r3, #3 + 8005d26: b2db uxtb r3, r3 + 8005d28: 461a mov r2, r3 + 8005d2a: 79fb ldrb r3, [r7, #7] + 8005d2c: f003 0307 and.w r3, r3, #7 + 8005d30: b2db uxtb r3, r3 + 8005d32: 2b00 cmp r3, #0 + 8005d34: bf14 ite ne + 8005d36: 2301 movne r3, #1 + 8005d38: 2300 moveq r3, #0 8005d3a: b2db uxtb r3, r3 - 8005d3c: 79fa ldrb r2, [r7, #7] - 8005d3e: fb02 f303 mul.w r3, r2, r3 - 8005d42: 757b strb r3, [r7, #21] + 8005d3c: 4413 add r3, r2 + 8005d3e: b2db uxtb r3, r3 + 8005d40: 79fa ldrb r2, [r7, #7] + 8005d42: fb02 f303 mul.w r3, r2, r3 + 8005d46: 757b strb r3, [r7, #21] qh=*code; - 8005d44: 68fb ldr r3, [r7, #12] - 8005d46: 781b ldrb r3, [r3, #0] - 8005d48: 753b strb r3, [r7, #20] + 8005d48: 68fb ldr r3, [r7, #12] + 8005d4a: 781b ldrb r3, [r3, #0] + 8005d4c: 753b strb r3, [r7, #20] ql=*(++code); - 8005d4a: 68fb ldr r3, [r7, #12] - 8005d4c: 3301 adds r3, #1 - 8005d4e: 60fb str r3, [r7, #12] - 8005d50: 68fb ldr r3, [r7, #12] - 8005d52: 781b ldrb r3, [r3, #0] - 8005d54: 75fb strb r3, [r7, #23] + 8005d4e: 68fb ldr r3, [r7, #12] + 8005d50: 3301 adds r3, #1 + 8005d52: 60fb str r3, [r7, #12] + 8005d54: 68fb ldr r3, [r7, #12] + 8005d56: 781b ldrb r3, [r3, #0] + 8005d58: 75fb strb r3, [r7, #23] if(qh<0x81||ql<0x40||ql==0xff||qh==0xff)//·Ç ³£Óúº×Ö - 8005d56: 7d3b ldrb r3, [r7, #20] - 8005d58: 2b80 cmp r3, #128 ; 0x80 - 8005d5a: d908 bls.n 8005d6e - 8005d5c: 7dfb ldrb r3, [r7, #23] - 8005d5e: 2b3f cmp r3, #63 ; 0x3f - 8005d60: d905 bls.n 8005d6e - 8005d62: 7dfb ldrb r3, [r7, #23] - 8005d64: 2bff cmp r3, #255 ; 0xff - 8005d66: d002 beq.n 8005d6e - 8005d68: 7d3b ldrb r3, [r7, #20] - 8005d6a: 2bff cmp r3, #255 ; 0xff - 8005d6c: d10f bne.n 8005d8e + 8005d5a: 7d3b ldrb r3, [r7, #20] + 8005d5c: 2b80 cmp r3, #128 ; 0x80 + 8005d5e: d908 bls.n 8005d72 + 8005d60: 7dfb ldrb r3, [r7, #23] + 8005d62: 2b3f cmp r3, #63 ; 0x3f + 8005d64: d905 bls.n 8005d72 + 8005d66: 7dfb ldrb r3, [r7, #23] + 8005d68: 2bff cmp r3, #255 ; 0xff + 8005d6a: d002 beq.n 8005d72 + 8005d6c: 7d3b ldrb r3, [r7, #20] + 8005d6e: 2bff cmp r3, #255 ; 0xff + 8005d70: d10f bne.n 8005d92 { for(i=0;i - 8005d74: 68bb ldr r3, [r7, #8] - 8005d76: 1c5a adds r2, r3, #1 - 8005d78: 60ba str r2, [r7, #8] - 8005d7a: 2200 movs r2, #0 - 8005d7c: 701a strb r2, [r3, #0] - 8005d7e: 7dbb ldrb r3, [r7, #22] - 8005d80: 3301 adds r3, #1 - 8005d82: 75bb strb r3, [r7, #22] - 8005d84: 7dba ldrb r2, [r7, #22] - 8005d86: 7d7b ldrb r3, [r7, #21] - 8005d88: 429a cmp r2, r3 - 8005d8a: d3f3 bcc.n 8005d74 + 8005d72: 2300 movs r3, #0 + 8005d74: 75bb strb r3, [r7, #22] + 8005d76: e007 b.n 8005d88 + 8005d78: 68bb ldr r3, [r7, #8] + 8005d7a: 1c5a adds r2, r3, #1 + 8005d7c: 60ba str r2, [r7, #8] + 8005d7e: 2200 movs r2, #0 + 8005d80: 701a strb r2, [r3, #0] + 8005d82: 7dbb ldrb r3, [r7, #22] + 8005d84: 3301 adds r3, #1 + 8005d86: 75bb strb r3, [r7, #22] + 8005d88: 7dba ldrb r2, [r7, #22] + 8005d8a: 7d7b ldrb r3, [r7, #21] + 8005d8c: 429a cmp r2, r3 + 8005d8e: d3f3 bcc.n 8005d78 return; //½áÊø·ÃÎÊ - 8005d8c: e041 b.n 8005e12 + 8005d90: e041 b.n 8005e16 } if(ql<0x7f)ql-=0x40;//×¢Òâ! - 8005d8e: 7dfb ldrb r3, [r7, #23] - 8005d90: 2b7e cmp r3, #126 ; 0x7e - 8005d92: d803 bhi.n 8005d9c - 8005d94: 7dfb ldrb r3, [r7, #23] - 8005d96: 3b40 subs r3, #64 ; 0x40 - 8005d98: 75fb strb r3, [r7, #23] - 8005d9a: e002 b.n 8005da2 + 8005d92: 7dfb ldrb r3, [r7, #23] + 8005d94: 2b7e cmp r3, #126 ; 0x7e + 8005d96: d803 bhi.n 8005da0 + 8005d98: 7dfb ldrb r3, [r7, #23] + 8005d9a: 3b40 subs r3, #64 ; 0x40 + 8005d9c: 75fb strb r3, [r7, #23] + 8005d9e: e002 b.n 8005da6 else ql-=0x41; - 8005d9c: 7dfb ldrb r3, [r7, #23] - 8005d9e: 3b41 subs r3, #65 ; 0x41 - 8005da0: 75fb strb r3, [r7, #23] + 8005da0: 7dfb ldrb r3, [r7, #23] + 8005da2: 3b41 subs r3, #65 ; 0x41 + 8005da4: 75fb strb r3, [r7, #23] qh-=0x81; - 8005da2: 7d3b ldrb r3, [r7, #20] - 8005da4: 337f adds r3, #127 ; 0x7f - 8005da6: 753b strb r3, [r7, #20] + 8005da6: 7d3b ldrb r3, [r7, #20] + 8005da8: 337f adds r3, #127 ; 0x7f + 8005daa: 753b strb r3, [r7, #20] foffset=((unsigned long)190*qh+ql)*csize; //µÃµ½×Ö¿âÖеÄ×Ö½ÚÆ«ÒÆÁ¿ - 8005da8: 7d3b ldrb r3, [r7, #20] - 8005daa: 22be movs r2, #190 ; 0xbe - 8005dac: fb02 f203 mul.w r2, r2, r3 - 8005db0: 7dfb ldrb r3, [r7, #23] - 8005db2: 4413 add r3, r2 - 8005db4: 7d7a ldrb r2, [r7, #21] - 8005db6: fb02 f303 mul.w r3, r2, r3 - 8005dba: 613b str r3, [r7, #16] + 8005dac: 7d3b ldrb r3, [r7, #20] + 8005dae: 22be movs r2, #190 ; 0xbe + 8005db0: fb02 f203 mul.w r2, r2, r3 + 8005db4: 7dfb ldrb r3, [r7, #23] + 8005db6: 4413 add r3, r2 + 8005db8: 7d7a ldrb r2, [r7, #21] + 8005dba: fb02 f303 mul.w r3, r2, r3 + 8005dbe: 613b str r3, [r7, #16] switch(size) - 8005dbc: 79fb ldrb r3, [r7, #7] - 8005dbe: 2b18 cmp r3, #24 - 8005dc0: d01c beq.n 8005dfc + 8005dc0: 79fb ldrb r3, [r7, #7] 8005dc2: 2b18 cmp r3, #24 - 8005dc4: dc25 bgt.n 8005e12 - 8005dc6: 2b0c cmp r3, #12 - 8005dc8: d002 beq.n 8005dd0 - 8005dca: 2b10 cmp r3, #16 - 8005dcc: d00b beq.n 8005de6 - 8005dce: e020 b.n 8005e12 + 8005dc4: d01c beq.n 8005e00 + 8005dc6: 2b18 cmp r3, #24 + 8005dc8: dc25 bgt.n 8005e16 + 8005dca: 2b0c cmp r3, #12 + 8005dcc: d002 beq.n 8005dd4 + 8005dce: 2b10 cmp r3, #16 + 8005dd0: d00b beq.n 8005dea + 8005dd2: e020 b.n 8005e16 { case 12: W25QXX_Read(mat,foffset+ftinfo.f12addr,csize); - 8005dd0: 4b11 ldr r3, [pc, #68] ; (8005e18 ) - 8005dd2: 68da ldr r2, [r3, #12] - 8005dd4: 693b ldr r3, [r7, #16] - 8005dd6: 4413 add r3, r2 - 8005dd8: 7d7a ldrb r2, [r7, #21] - 8005dda: b292 uxth r2, r2 - 8005ddc: 4619 mov r1, r3 - 8005dde: 68b8 ldr r0, [r7, #8] - 8005de0: f7fe fdd4 bl 800498c + 8005dd4: 4b11 ldr r3, [pc, #68] ; (8005e1c ) + 8005dd6: 68da ldr r2, [r3, #12] + 8005dd8: 693b ldr r3, [r7, #16] + 8005dda: 4413 add r3, r2 + 8005ddc: 7d7a ldrb r2, [r7, #21] + 8005dde: b292 uxth r2, r2 + 8005de0: 4619 mov r1, r3 + 8005de2: 68b8 ldr r0, [r7, #8] + 8005de4: f7fe fdd4 bl 8004990 break; - 8005de4: e015 b.n 8005e12 + 8005de8: e015 b.n 8005e16 case 16: W25QXX_Read(mat,foffset+ftinfo.f16addr,csize); - 8005de6: 4b0c ldr r3, [pc, #48] ; (8005e18 ) - 8005de8: 695a ldr r2, [r3, #20] - 8005dea: 693b ldr r3, [r7, #16] - 8005dec: 4413 add r3, r2 - 8005dee: 7d7a ldrb r2, [r7, #21] - 8005df0: b292 uxth r2, r2 - 8005df2: 4619 mov r1, r3 - 8005df4: 68b8 ldr r0, [r7, #8] - 8005df6: f7fe fdc9 bl 800498c + 8005dea: 4b0c ldr r3, [pc, #48] ; (8005e1c ) + 8005dec: 695a ldr r2, [r3, #20] + 8005dee: 693b ldr r3, [r7, #16] + 8005df0: 4413 add r3, r2 + 8005df2: 7d7a ldrb r2, [r7, #21] + 8005df4: b292 uxth r2, r2 + 8005df6: 4619 mov r1, r3 + 8005df8: 68b8 ldr r0, [r7, #8] + 8005dfa: f7fe fdc9 bl 8004990 break; - 8005dfa: e00a b.n 8005e12 + 8005dfe: e00a b.n 8005e16 case 24: W25QXX_Read(mat,foffset+ftinfo.f24addr,csize); - 8005dfc: 4b06 ldr r3, [pc, #24] ; (8005e18 ) - 8005dfe: 69da ldr r2, [r3, #28] - 8005e00: 693b ldr r3, [r7, #16] - 8005e02: 4413 add r3, r2 - 8005e04: 7d7a ldrb r2, [r7, #21] - 8005e06: b292 uxth r2, r2 - 8005e08: 4619 mov r1, r3 - 8005e0a: 68b8 ldr r0, [r7, #8] - 8005e0c: f7fe fdbe bl 800498c + 8005e00: 4b06 ldr r3, [pc, #24] ; (8005e1c ) + 8005e02: 69da ldr r2, [r3, #28] + 8005e04: 693b ldr r3, [r7, #16] + 8005e06: 4413 add r3, r2 + 8005e08: 7d7a ldrb r2, [r7, #21] + 8005e0a: b292 uxth r2, r2 + 8005e0c: 4619 mov r1, r3 + 8005e0e: 68b8 ldr r0, [r7, #8] + 8005e10: f7fe fdbe bl 8004990 break; - 8005e10: bf00 nop + 8005e14: bf00 nop } } - 8005e12: 3718 adds r7, #24 - 8005e14: 46bd mov sp, r7 - 8005e16: bd80 pop {r7, pc} - 8005e18: 20000830 .word 0x20000830 + 8005e16: 3718 adds r7, #24 + 8005e18: 46bd mov sp, r7 + 8005e1a: bd80 pop {r7, pc} + 8005e1c: 20000830 .word 0x20000830 -08005e1c : +08005e20 : //x,y :ºº×ÖµÄ×ø±ê //font:ºº×ÖGBKÂë //size:×ÖÌå´óС //mode:0,Õý³£ÏÔʾ,1,µþ¼ÓÏÔʾ void Show_Font(uint16_t x,uint16_t y,uint8_t *font,uint8_t size,uint16_t bg,uint16_t color) { - 8005e1c: b580 push {r7, lr} - 8005e1e: b098 sub sp, #96 ; 0x60 - 8005e20: af00 add r7, sp, #0 - 8005e22: 60ba str r2, [r7, #8] - 8005e24: 461a mov r2, r3 - 8005e26: 4603 mov r3, r0 - 8005e28: 81fb strh r3, [r7, #14] - 8005e2a: 460b mov r3, r1 - 8005e2c: 81bb strh r3, [r7, #12] - 8005e2e: 4613 mov r3, r2 - 8005e30: 71fb strb r3, [r7, #7] + 8005e20: b580 push {r7, lr} + 8005e22: b098 sub sp, #96 ; 0x60 + 8005e24: af00 add r7, sp, #0 + 8005e26: 60ba str r2, [r7, #8] + 8005e28: 461a mov r2, r3 + 8005e2a: 4603 mov r3, r0 + 8005e2c: 81fb strh r3, [r7, #14] + 8005e2e: 460b mov r3, r1 + 8005e30: 81bb strh r3, [r7, #12] + 8005e32: 4613 mov r3, r2 + 8005e34: 71fb strb r3, [r7, #7] uint8_t temp,t,t1; uint16_t y0=y; - 8005e32: 89bb ldrh r3, [r7, #12] - 8005e34: f8a7 305a strh.w r3, [r7, #90] ; 0x5a + 8005e36: 89bb ldrh r3, [r7, #12] + 8005e38: f8a7 305a strh.w r3, [r7, #90] ; 0x5a uint8_t dzk[72]; uint8_t csize=(size/8+((size%8)?1:0))*(size);//µÃµ½×ÖÌåÒ»¸ö×Ö·û¶ÔÓ¦µãÕó¼¯ËùÕ¼µÄ×Ö½ÚÊý - 8005e38: 79fb ldrb r3, [r7, #7] - 8005e3a: 08db lsrs r3, r3, #3 - 8005e3c: b2db uxtb r3, r3 - 8005e3e: 461a mov r2, r3 - 8005e40: 79fb ldrb r3, [r7, #7] - 8005e42: f003 0307 and.w r3, r3, #7 - 8005e46: b2db uxtb r3, r3 - 8005e48: 2b00 cmp r3, #0 - 8005e4a: bf14 ite ne - 8005e4c: 2301 movne r3, #1 - 8005e4e: 2300 moveq r3, #0 - 8005e50: b2db uxtb r3, r3 - 8005e52: 4413 add r3, r2 + 8005e3c: 79fb ldrb r3, [r7, #7] + 8005e3e: 08db lsrs r3, r3, #3 + 8005e40: b2db uxtb r3, r3 + 8005e42: 461a mov r2, r3 + 8005e44: 79fb ldrb r3, [r7, #7] + 8005e46: f003 0307 and.w r3, r3, #7 + 8005e4a: b2db uxtb r3, r3 + 8005e4c: 2b00 cmp r3, #0 + 8005e4e: bf14 ite ne + 8005e50: 2301 movne r3, #1 + 8005e52: 2300 moveq r3, #0 8005e54: b2db uxtb r3, r3 - 8005e56: 79fa ldrb r2, [r7, #7] - 8005e58: fb02 f303 mul.w r3, r2, r3 - 8005e5c: f887 3059 strb.w r3, [r7, #89] ; 0x59 + 8005e56: 4413 add r3, r2 + 8005e58: b2db uxtb r3, r3 + 8005e5a: 79fa ldrb r2, [r7, #7] + 8005e5c: fb02 f303 mul.w r3, r2, r3 + 8005e60: f887 3059 strb.w r3, [r7, #89] ; 0x59 if(size!=12&&size!=16)return; //²»Ö§³ÖµÄsize - 8005e60: 79fb ldrb r3, [r7, #7] - 8005e62: 2b0c cmp r3, #12 - 8005e64: d002 beq.n 8005e6c - 8005e66: 79fb ldrb r3, [r7, #7] - 8005e68: 2b10 cmp r3, #16 - 8005e6a: d15b bne.n 8005f24 + 8005e64: 79fb ldrb r3, [r7, #7] + 8005e66: 2b0c cmp r3, #12 + 8005e68: d002 beq.n 8005e70 + 8005e6a: 79fb ldrb r3, [r7, #7] + 8005e6c: 2b10 cmp r3, #16 + 8005e6e: d15b bne.n 8005f28 Get_HzMat(font,dzk,size); //µÃµ½ÏàÓ¦´óСµÄµãÕóÊý¾Ý - 8005e6c: 79fa ldrb r2, [r7, #7] - 8005e6e: f107 0310 add.w r3, r7, #16 - 8005e72: 4619 mov r1, r3 - 8005e74: 68b8 ldr r0, [r7, #8] - 8005e76: f7ff ff4b bl 8005d10 + 8005e70: 79fa ldrb r2, [r7, #7] + 8005e72: f107 0310 add.w r3, r7, #16 + 8005e76: 4619 mov r1, r3 + 8005e78: 68b8 ldr r0, [r7, #8] + 8005e7a: f7ff ff4b bl 8005d14 for(t=0;t + 8005e7e: 2300 movs r3, #0 + 8005e80: f887 305e strb.w r3, [r7, #94] ; 0x5e + 8005e84: e049 b.n 8005f1a { temp=dzk[t]; //µÃµ½µãÕóÊý¾Ý - 8005e82: f897 305e ldrb.w r3, [r7, #94] ; 0x5e - 8005e86: f107 0260 add.w r2, r7, #96 ; 0x60 - 8005e8a: 4413 add r3, r2 - 8005e8c: f813 3c50 ldrb.w r3, [r3, #-80] - 8005e90: f887 305f strb.w r3, [r7, #95] ; 0x5f + 8005e86: f897 305e ldrb.w r3, [r7, #94] ; 0x5e + 8005e8a: f107 0260 add.w r2, r7, #96 ; 0x60 + 8005e8e: 4413 add r3, r2 + 8005e90: f813 3c50 ldrb.w r3, [r3, #-80] + 8005e94: f887 305f strb.w r3, [r7, #95] ; 0x5f for(t1=0;t1<8;t1++) - 8005e94: 2300 movs r3, #0 - 8005e96: f887 305d strb.w r3, [r7, #93] ; 0x5d - 8005e9a: e033 b.n 8005f04 + 8005e98: 2300 movs r3, #0 + 8005e9a: f887 305d strb.w r3, [r7, #93] ; 0x5d + 8005e9e: e033 b.n 8005f08 { if(temp&0x80){LCD_set_dot(x,y,color);}else{if(bg!=color){LCD_set_dot(x,y,bg);}} - 8005e9c: f997 305f ldrsb.w r3, [r7, #95] ; 0x5f - 8005ea0: 2b00 cmp r3, #0 - 8005ea2: da07 bge.n 8005eb4 - 8005ea4: f8b7 206c ldrh.w r2, [r7, #108] ; 0x6c - 8005ea8: 89b9 ldrh r1, [r7, #12] - 8005eaa: 89fb ldrh r3, [r7, #14] - 8005eac: 4618 mov r0, r3 - 8005eae: f7ff fe8f bl 8005bd0 - 8005eb2: e00c b.n 8005ece - 8005eb4: f8b7 2068 ldrh.w r2, [r7, #104] ; 0x68 - 8005eb8: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c - 8005ebc: 429a cmp r2, r3 - 8005ebe: d006 beq.n 8005ece - 8005ec0: f8b7 2068 ldrh.w r2, [r7, #104] ; 0x68 - 8005ec4: 89b9 ldrh r1, [r7, #12] - 8005ec6: 89fb ldrh r3, [r7, #14] - 8005ec8: 4618 mov r0, r3 - 8005eca: f7ff fe81 bl 8005bd0 + 8005ea0: f997 305f ldrsb.w r3, [r7, #95] ; 0x5f + 8005ea4: 2b00 cmp r3, #0 + 8005ea6: da07 bge.n 8005eb8 + 8005ea8: f8b7 206c ldrh.w r2, [r7, #108] ; 0x6c + 8005eac: 89b9 ldrh r1, [r7, #12] + 8005eae: 89fb ldrh r3, [r7, #14] + 8005eb0: 4618 mov r0, r3 + 8005eb2: f7ff fe8f bl 8005bd4 + 8005eb6: e00c b.n 8005ed2 + 8005eb8: f8b7 2068 ldrh.w r2, [r7, #104] ; 0x68 + 8005ebc: f8b7 306c ldrh.w r3, [r7, #108] ; 0x6c + 8005ec0: 429a cmp r2, r3 + 8005ec2: d006 beq.n 8005ed2 + 8005ec4: f8b7 2068 ldrh.w r2, [r7, #104] ; 0x68 + 8005ec8: 89b9 ldrh r1, [r7, #12] + 8005eca: 89fb ldrh r3, [r7, #14] + 8005ecc: 4618 mov r0, r3 + 8005ece: f7ff fe81 bl 8005bd4 temp<<=1; - 8005ece: f897 305f ldrb.w r3, [r7, #95] ; 0x5f - 8005ed2: 005b lsls r3, r3, #1 - 8005ed4: f887 305f strb.w r3, [r7, #95] ; 0x5f + 8005ed2: f897 305f ldrb.w r3, [r7, #95] ; 0x5f + 8005ed6: 005b lsls r3, r3, #1 + 8005ed8: f887 305f strb.w r3, [r7, #95] ; 0x5f y++; - 8005ed8: 89bb ldrh r3, [r7, #12] - 8005eda: 3301 adds r3, #1 - 8005edc: 81bb strh r3, [r7, #12] + 8005edc: 89bb ldrh r3, [r7, #12] + 8005ede: 3301 adds r3, #1 + 8005ee0: 81bb strh r3, [r7, #12] if((y-y0)==size) - 8005ede: 89ba ldrh r2, [r7, #12] - 8005ee0: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 8005ee4: 1ad2 subs r2, r2, r3 - 8005ee6: 79fb ldrb r3, [r7, #7] - 8005ee8: 429a cmp r2, r3 - 8005eea: d106 bne.n 8005efa + 8005ee2: 89ba ldrh r2, [r7, #12] + 8005ee4: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 8005ee8: 1ad2 subs r2, r2, r3 + 8005eea: 79fb ldrb r3, [r7, #7] + 8005eec: 429a cmp r2, r3 + 8005eee: d106 bne.n 8005efe { y=y0; - 8005eec: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a - 8005ef0: 81bb strh r3, [r7, #12] + 8005ef0: f8b7 305a ldrh.w r3, [r7, #90] ; 0x5a + 8005ef4: 81bb strh r3, [r7, #12] x++; - 8005ef2: 89fb ldrh r3, [r7, #14] - 8005ef4: 3301 adds r3, #1 - 8005ef6: 81fb strh r3, [r7, #14] + 8005ef6: 89fb ldrh r3, [r7, #14] + 8005ef8: 3301 adds r3, #1 + 8005efa: 81fb strh r3, [r7, #14] break; - 8005ef8: e008 b.n 8005f0c + 8005efc: e008 b.n 8005f10 for(t1=0;t1<8;t1++) - 8005efa: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 8005efe: 3301 adds r3, #1 - 8005f00: f887 305d strb.w r3, [r7, #93] ; 0x5d - 8005f04: f897 305d ldrb.w r3, [r7, #93] ; 0x5d - 8005f08: 2b07 cmp r3, #7 - 8005f0a: d9c7 bls.n 8005e9c + 8005efe: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 8005f02: 3301 adds r3, #1 + 8005f04: f887 305d strb.w r3, [r7, #93] ; 0x5d + 8005f08: f897 305d ldrb.w r3, [r7, #93] ; 0x5d + 8005f0c: 2b07 cmp r3, #7 + 8005f0e: d9c7 bls.n 8005ea0 for(t=0;t - 8005f22: e000 b.n 8005f26 + 8005f10: f897 305e ldrb.w r3, [r7, #94] ; 0x5e + 8005f14: 3301 adds r3, #1 + 8005f16: f887 305e strb.w r3, [r7, #94] ; 0x5e + 8005f1a: f897 205e ldrb.w r2, [r7, #94] ; 0x5e + 8005f1e: f897 3059 ldrb.w r3, [r7, #89] ; 0x59 + 8005f22: 429a cmp r2, r3 + 8005f24: d3af bcc.n 8005e86 + 8005f26: e000 b.n 8005f2a if(size!=12&&size!=16)return; //²»Ö§³ÖµÄsize - 8005f24: bf00 nop + 8005f28: bf00 nop } } } } - 8005f26: 3760 adds r7, #96 ; 0x60 - 8005f28: 46bd mov sp, r7 - 8005f2a: bd80 pop {r7, pc} + 8005f2a: 3760 adds r7, #96 ; 0x60 + 8005f2c: 46bd mov sp, r7 + 8005f2e: bd80 pop {r7, pc} -08005f2c : +08005f30 : //num:ÒªÏÔʾµÄ×Ö·û:" "--->"~" //size:×ÖÌå´óС 12/16 //mode:µþ¼Ó·½Ê½(1)»¹ÊǷǵþ¼Ó·½Ê½(0) void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t num,uint8_t size,uint16_t bg,uint16_t color) { - 8005f2c: b590 push {r4, r7, lr} - 8005f2e: b085 sub sp, #20 - 8005f30: af00 add r7, sp, #0 - 8005f32: 4604 mov r4, r0 - 8005f34: 4608 mov r0, r1 - 8005f36: 4611 mov r1, r2 - 8005f38: 461a mov r2, r3 - 8005f3a: 4623 mov r3, r4 - 8005f3c: 80fb strh r3, [r7, #6] - 8005f3e: 4603 mov r3, r0 - 8005f40: 80bb strh r3, [r7, #4] - 8005f42: 460b mov r3, r1 - 8005f44: 70fb strb r3, [r7, #3] - 8005f46: 4613 mov r3, r2 - 8005f48: 70bb strb r3, [r7, #2] + 8005f30: b590 push {r4, r7, lr} + 8005f32: b085 sub sp, #20 + 8005f34: af00 add r7, sp, #0 + 8005f36: 4604 mov r4, r0 + 8005f38: 4608 mov r0, r1 + 8005f3a: 4611 mov r1, r2 + 8005f3c: 461a mov r2, r3 + 8005f3e: 4623 mov r3, r4 + 8005f40: 80fb strh r3, [r7, #6] + 8005f42: 4603 mov r3, r0 + 8005f44: 80bb strh r3, [r7, #4] + 8005f46: 460b mov r3, r1 + 8005f48: 70fb strb r3, [r7, #3] + 8005f4a: 4613 mov r3, r2 + 8005f4c: 70bb strb r3, [r7, #2] uint8_t temp,t1,t; uint16_t y0=y; - 8005f4a: 88bb ldrh r3, [r7, #4] - 8005f4c: 817b strh r3, [r7, #10] + 8005f4e: 88bb ldrh r3, [r7, #4] + 8005f50: 817b strh r3, [r7, #10] //ÉèÖô°¿Ú num=num-' ';//µÃµ½Æ«ÒƺóµÄÖµ - 8005f4e: 78fb ldrb r3, [r7, #3] - 8005f50: 3b20 subs r3, #32 - 8005f52: 70fb strb r3, [r7, #3] + 8005f52: 78fb ldrb r3, [r7, #3] + 8005f54: 3b20 subs r3, #32 + 8005f56: 70fb strb r3, [r7, #3] for(t=0;t + 8005f58: 2300 movs r3, #0 + 8005f5a: 737b strb r3, [r7, #13] + 8005f5c: e055 b.n 800600a { if(size==12){temp=asc2_1206[num][t];} //µ÷ÓÃ1206×ÖÌå - 8005f5a: 78bb ldrb r3, [r7, #2] - 8005f5c: 2b0c cmp r3, #12 - 8005f5e: d10b bne.n 8005f78 - 8005f60: 78fa ldrb r2, [r7, #3] - 8005f62: 7b79 ldrb r1, [r7, #13] - 8005f64: 482c ldr r0, [pc, #176] ; (8006018 ) - 8005f66: 4613 mov r3, r2 - 8005f68: 005b lsls r3, r3, #1 - 8005f6a: 4413 add r3, r2 - 8005f6c: 009b lsls r3, r3, #2 - 8005f6e: 4403 add r3, r0 - 8005f70: 440b add r3, r1 - 8005f72: 781b ldrb r3, [r3, #0] - 8005f74: 73fb strb r3, [r7, #15] - 8005f76: e007 b.n 8005f88 + 8005f5e: 78bb ldrb r3, [r7, #2] + 8005f60: 2b0c cmp r3, #12 + 8005f62: d10b bne.n 8005f7c + 8005f64: 78fa ldrb r2, [r7, #3] + 8005f66: 7b79 ldrb r1, [r7, #13] + 8005f68: 482c ldr r0, [pc, #176] ; (800601c ) + 8005f6a: 4613 mov r3, r2 + 8005f6c: 005b lsls r3, r3, #1 + 8005f6e: 4413 add r3, r2 + 8005f70: 009b lsls r3, r3, #2 + 8005f72: 4403 add r3, r0 + 8005f74: 440b add r3, r1 + 8005f76: 781b ldrb r3, [r3, #0] + 8005f78: 73fb strb r3, [r7, #15] + 8005f7a: e007 b.n 8005f8c else{ temp=asc2_1608[num][t]; } //µ÷ÓÃ1608×ÖÌå - 8005f78: 78fa ldrb r2, [r7, #3] - 8005f7a: 7b7b ldrb r3, [r7, #13] - 8005f7c: 4927 ldr r1, [pc, #156] ; (800601c ) - 8005f7e: 0112 lsls r2, r2, #4 - 8005f80: 440a add r2, r1 - 8005f82: 4413 add r3, r2 - 8005f84: 781b ldrb r3, [r3, #0] - 8005f86: 73fb strb r3, [r7, #15] + 8005f7c: 78fa ldrb r2, [r7, #3] + 8005f7e: 7b7b ldrb r3, [r7, #13] + 8005f80: 4927 ldr r1, [pc, #156] ; (8006020 ) + 8005f82: 0112 lsls r2, r2, #4 + 8005f84: 440a add r2, r1 + 8005f86: 4413 add r3, r2 + 8005f88: 781b ldrb r3, [r3, #0] + 8005f8a: 73fb strb r3, [r7, #15] for(t1=0;t1<8;t1++) - 8005f88: 2300 movs r3, #0 - 8005f8a: 73bb strb r3, [r7, #14] - 8005f8c: e033 b.n 8005ff6 + 8005f8c: 2300 movs r3, #0 + 8005f8e: 73bb strb r3, [r7, #14] + 8005f90: e033 b.n 8005ffa { if(temp&0x80){LCD_set_dot(x,y,color);}else{if(bg!=color){LCD_set_dot(x,y,bg);}} - 8005f8e: f997 300f ldrsb.w r3, [r7, #15] - 8005f92: 2b00 cmp r3, #0 - 8005f94: da06 bge.n 8005fa4 - 8005f96: 8cba ldrh r2, [r7, #36] ; 0x24 - 8005f98: 88b9 ldrh r1, [r7, #4] - 8005f9a: 88fb ldrh r3, [r7, #6] - 8005f9c: 4618 mov r0, r3 - 8005f9e: f7ff fe17 bl 8005bd0 - 8005fa2: e009 b.n 8005fb8 - 8005fa4: 8c3a ldrh r2, [r7, #32] - 8005fa6: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8005fa8: 429a cmp r2, r3 - 8005faa: d005 beq.n 8005fb8 - 8005fac: 8c3a ldrh r2, [r7, #32] - 8005fae: 88b9 ldrh r1, [r7, #4] - 8005fb0: 88fb ldrh r3, [r7, #6] - 8005fb2: 4618 mov r0, r3 - 8005fb4: f7ff fe0c bl 8005bd0 + 8005f92: f997 300f ldrsb.w r3, [r7, #15] + 8005f96: 2b00 cmp r3, #0 + 8005f98: da06 bge.n 8005fa8 + 8005f9a: 8cba ldrh r2, [r7, #36] ; 0x24 + 8005f9c: 88b9 ldrh r1, [r7, #4] + 8005f9e: 88fb ldrh r3, [r7, #6] + 8005fa0: 4618 mov r0, r3 + 8005fa2: f7ff fe17 bl 8005bd4 + 8005fa6: e009 b.n 8005fbc + 8005fa8: 8c3a ldrh r2, [r7, #32] + 8005faa: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8005fac: 429a cmp r2, r3 + 8005fae: d005 beq.n 8005fbc + 8005fb0: 8c3a ldrh r2, [r7, #32] + 8005fb2: 88b9 ldrh r1, [r7, #4] + 8005fb4: 88fb ldrh r3, [r7, #6] + 8005fb6: 4618 mov r0, r3 + 8005fb8: f7ff fe0c bl 8005bd4 temp<<=1; - 8005fb8: 7bfb ldrb r3, [r7, #15] - 8005fba: 005b lsls r3, r3, #1 - 8005fbc: 73fb strb r3, [r7, #15] + 8005fbc: 7bfb ldrb r3, [r7, #15] + 8005fbe: 005b lsls r3, r3, #1 + 8005fc0: 73fb strb r3, [r7, #15] y++; - 8005fbe: 88bb ldrh r3, [r7, #4] - 8005fc0: 3301 adds r3, #1 - 8005fc2: 80bb strh r3, [r7, #4] + 8005fc2: 88bb ldrh r3, [r7, #4] + 8005fc4: 3301 adds r3, #1 + 8005fc6: 80bb strh r3, [r7, #4] if(x>=lcddev.width){return;}//³¬ÇøÓòÁË - 8005fc4: 4b16 ldr r3, [pc, #88] ; (8006020 ) - 8005fc6: 881b ldrh r3, [r3, #0] - 8005fc8: 88fa ldrh r2, [r7, #6] - 8005fca: 429a cmp r2, r3 - 8005fcc: d220 bcs.n 8006010 + 8005fc8: 4b16 ldr r3, [pc, #88] ; (8006024 ) + 8005fca: 881b ldrh r3, [r3, #0] + 8005fcc: 88fa ldrh r2, [r7, #6] + 8005fce: 429a cmp r2, r3 + 8005fd0: d220 bcs.n 8006014 if((y-y0)==size) - 8005fce: 88ba ldrh r2, [r7, #4] - 8005fd0: 897b ldrh r3, [r7, #10] - 8005fd2: 1ad2 subs r2, r2, r3 - 8005fd4: 78bb ldrb r3, [r7, #2] - 8005fd6: 429a cmp r2, r3 - 8005fd8: d10a bne.n 8005ff0 + 8005fd2: 88ba ldrh r2, [r7, #4] + 8005fd4: 897b ldrh r3, [r7, #10] + 8005fd6: 1ad2 subs r2, r2, r3 + 8005fd8: 78bb ldrb r3, [r7, #2] + 8005fda: 429a cmp r2, r3 + 8005fdc: d10a bne.n 8005ff4 { y=y0; - 8005fda: 897b ldrh r3, [r7, #10] - 8005fdc: 80bb strh r3, [r7, #4] + 8005fde: 897b ldrh r3, [r7, #10] + 8005fe0: 80bb strh r3, [r7, #4] x++; - 8005fde: 88fb ldrh r3, [r7, #6] - 8005fe0: 3301 adds r3, #1 - 8005fe2: 80fb strh r3, [r7, #6] + 8005fe2: 88fb ldrh r3, [r7, #6] + 8005fe4: 3301 adds r3, #1 + 8005fe6: 80fb strh r3, [r7, #6] if(x>=lcddev.width){return;}//³¬ÇøÓòÁË - 8005fe4: 4b0e ldr r3, [pc, #56] ; (8006020 ) - 8005fe6: 881b ldrh r3, [r3, #0] - 8005fe8: 88fa ldrh r2, [r7, #6] - 8005fea: 429a cmp r2, r3 - 8005fec: d307 bcc.n 8005ffe - 8005fee: e010 b.n 8006012 + 8005fe8: 4b0e ldr r3, [pc, #56] ; (8006024 ) + 8005fea: 881b ldrh r3, [r3, #0] + 8005fec: 88fa ldrh r2, [r7, #6] + 8005fee: 429a cmp r2, r3 + 8005ff0: d307 bcc.n 8006002 + 8005ff2: e010 b.n 8006016 for(t1=0;t1<8;t1++) - 8005ff0: 7bbb ldrb r3, [r7, #14] - 8005ff2: 3301 adds r3, #1 - 8005ff4: 73bb strb r3, [r7, #14] - 8005ff6: 7bbb ldrb r3, [r7, #14] - 8005ff8: 2b07 cmp r3, #7 - 8005ffa: d9c8 bls.n 8005f8e - 8005ffc: e000 b.n 8006000 + 8005ff4: 7bbb ldrb r3, [r7, #14] + 8005ff6: 3301 adds r3, #1 + 8005ff8: 73bb strb r3, [r7, #14] + 8005ffa: 7bbb ldrb r3, [r7, #14] + 8005ffc: 2b07 cmp r3, #7 + 8005ffe: d9c8 bls.n 8005f92 + 8006000: e000 b.n 8006004 break; - 8005ffe: bf00 nop + 8006002: bf00 nop for(t=0;t - 800600e: e000 b.n 8006012 + 8006004: 7b7b ldrb r3, [r7, #13] + 8006006: 3301 adds r3, #1 + 8006008: 737b strb r3, [r7, #13] + 800600a: 7b7a ldrb r2, [r7, #13] + 800600c: 78bb ldrb r3, [r7, #2] + 800600e: 429a cmp r2, r3 + 8006010: d3a5 bcc.n 8005f5e + 8006012: e000 b.n 8006016 if(x>=lcddev.width){return;}//³¬ÇøÓòÁË - 8006010: bf00 nop + 8006014: bf00 nop } } } - 8006012: 3714 adds r7, #20 - 8006014: 46bd mov sp, r7 - 8006016: bd90 pop {r4, r7, pc} - 8006018: 08006af8 .word 0x08006af8 - 800601c: 08006f6c .word 0x08006f6c - 8006020: 20000824 .word 0x20000824 + 8006016: 3714 adds r7, #20 + 8006018: 46bd mov sp, r7 + 800601a: bd90 pop {r4, r7, pc} + 800601c: 08006b00 .word 0x08006b00 + 8006020: 08006f74 .word 0x08006f74 + 8006024: 20000824 .word 0x20000824 -08006024 : +08006028 : //width,height:ÇøÓò´óС //size:×ÖÌå´óС //*p:×Ö·û´®ÆðʼµØÖ· void LCD_ShowString(uint16_t x,uint16_t y,uint8_t *p,uint8_t size,uint16_t bg,uint16_t color,uint16_t len) { - 8006024: b590 push {r4, r7, lr} - 8006026: b087 sub sp, #28 - 8006028: af02 add r7, sp, #8 - 800602a: 60ba str r2, [r7, #8] - 800602c: 461a mov r2, r3 - 800602e: 4603 mov r3, r0 - 8006030: 81fb strh r3, [r7, #14] - 8006032: 460b mov r3, r1 - 8006034: 81bb strh r3, [r7, #12] - 8006036: 4613 mov r3, r2 - 8006038: 71fb strb r3, [r7, #7] + 8006028: b590 push {r4, r7, lr} + 800602a: b087 sub sp, #28 + 800602c: af02 add r7, sp, #8 + 800602e: 60ba str r2, [r7, #8] + 8006030: 461a mov r2, r3 + 8006032: 4603 mov r3, r0 + 8006034: 81fb strh r3, [r7, #14] + 8006036: 460b mov r3, r1 + 8006038: 81bb strh r3, [r7, #12] + 800603a: 4613 mov r3, r2 + 800603c: 71fb strb r3, [r7, #7] while(len--) - 800603a: e057 b.n 80060ec + 800603e: e057 b.n 80060f0 { if(x>=lcddev.width) - 800603c: 4b31 ldr r3, [pc, #196] ; (8006104 ) - 800603e: 881b ldrh r3, [r3, #0] - 8006040: 89fa ldrh r2, [r7, #14] - 8006042: 429a cmp r2, r3 - 8006044: d306 bcc.n 8006054 + 8006040: 4b31 ldr r3, [pc, #196] ; (8006108 ) + 8006042: 881b ldrh r3, [r3, #0] + 8006044: 89fa ldrh r2, [r7, #14] + 8006046: 429a cmp r2, r3 + 8006048: d306 bcc.n 8006058 { x=0; - 8006046: 2300 movs r3, #0 - 8006048: 81fb strh r3, [r7, #14] + 800604a: 2300 movs r3, #0 + 800604c: 81fb strh r3, [r7, #14] y+=size; - 800604a: 79fb ldrb r3, [r7, #7] - 800604c: b29a uxth r2, r3 - 800604e: 89bb ldrh r3, [r7, #12] - 8006050: 4413 add r3, r2 - 8006052: 81bb strh r3, [r7, #12] + 800604e: 79fb ldrb r3, [r7, #7] + 8006050: b29a uxth r2, r3 + 8006052: 89bb ldrh r3, [r7, #12] + 8006054: 4413 add r3, r2 + 8006056: 81bb strh r3, [r7, #12] } if(*p=='\0') - 8006054: 68bb ldr r3, [r7, #8] - 8006056: 781b ldrb r3, [r3, #0] - 8006058: 2b00 cmp r3, #0 - 800605a: d04d beq.n 80060f8 + 8006058: 68bb ldr r3, [r7, #8] + 800605a: 781b ldrb r3, [r3, #0] + 800605c: 2b00 cmp r3, #0 + 800605e: d04d beq.n 80060fc { return; } if(*p=='\r') - 800605c: 68bb ldr r3, [r7, #8] - 800605e: 781b ldrb r3, [r3, #0] - 8006060: 2b0d cmp r3, #13 - 8006062: d106 bne.n 8006072 + 8006060: 68bb ldr r3, [r7, #8] + 8006062: 781b ldrb r3, [r3, #0] + 8006064: 2b0d cmp r3, #13 + 8006066: d106 bne.n 8006076 { p++; - 8006064: 68bb ldr r3, [r7, #8] - 8006066: 3301 adds r3, #1 - 8006068: 60bb str r3, [r7, #8] + 8006068: 68bb ldr r3, [r7, #8] + 800606a: 3301 adds r3, #1 + 800606c: 60bb str r3, [r7, #8] if(*p!='\n') - 800606a: 68bb ldr r3, [r7, #8] - 800606c: 781b ldrb r3, [r3, #0] - 800606e: 2b0a cmp r3, #10 - 8006070: d144 bne.n 80060fc + 800606e: 68bb ldr r3, [r7, #8] + 8006070: 781b ldrb r3, [r3, #0] + 8006072: 2b0a cmp r3, #10 + 8006074: d144 bne.n 8006100 { return ; } } if(*p=='\n') - 8006072: 68bb ldr r3, [r7, #8] - 8006074: 781b ldrb r3, [r3, #0] - 8006076: 2b0a cmp r3, #10 - 8006078: d109 bne.n 800608e + 8006076: 68bb ldr r3, [r7, #8] + 8006078: 781b ldrb r3, [r3, #0] + 800607a: 2b0a cmp r3, #10 + 800607c: d109 bne.n 8006092 { x=0; - 800607a: 2300 movs r3, #0 - 800607c: 81fb strh r3, [r7, #14] + 800607e: 2300 movs r3, #0 + 8006080: 81fb strh r3, [r7, #14] y+=size; - 800607e: 79fb ldrb r3, [r7, #7] - 8006080: b29a uxth r2, r3 - 8006082: 89bb ldrh r3, [r7, #12] - 8006084: 4413 add r3, r2 - 8006086: 81bb strh r3, [r7, #12] + 8006082: 79fb ldrb r3, [r7, #7] + 8006084: b29a uxth r2, r3 + 8006086: 89bb ldrh r3, [r7, #12] + 8006088: 4413 add r3, r2 + 800608a: 81bb strh r3, [r7, #12] p++; - 8006088: 68bb ldr r3, [r7, #8] - 800608a: 3301 adds r3, #1 - 800608c: 60bb str r3, [r7, #8] + 800608c: 68bb ldr r3, [r7, #8] + 800608e: 3301 adds r3, #1 + 8006090: 60bb str r3, [r7, #8] } if(*p>127) - 800608e: 68bb ldr r3, [r7, #8] - 8006090: 781b ldrb r3, [r3, #0] - 8006092: b25b sxtb r3, r3 - 8006094: 2b00 cmp r3, #0 - 8006096: da13 bge.n 80060c0 + 8006092: 68bb ldr r3, [r7, #8] + 8006094: 781b ldrb r3, [r3, #0] + 8006096: b25b sxtb r3, r3 + 8006098: 2b00 cmp r3, #0 + 800609a: da13 bge.n 80060c4 { Show_Font(x,y,p,size,bg,color); - 8006098: 79fa ldrb r2, [r7, #7] - 800609a: 89b9 ldrh r1, [r7, #12] - 800609c: 89f8 ldrh r0, [r7, #14] - 800609e: 8cbb ldrh r3, [r7, #36] ; 0x24 - 80060a0: 9301 str r3, [sp, #4] - 80060a2: 8c3b ldrh r3, [r7, #32] - 80060a4: 9300 str r3, [sp, #0] - 80060a6: 4613 mov r3, r2 - 80060a8: 68ba ldr r2, [r7, #8] - 80060aa: f7ff feb7 bl 8005e1c + 800609c: 79fa ldrb r2, [r7, #7] + 800609e: 89b9 ldrh r1, [r7, #12] + 80060a0: 89f8 ldrh r0, [r7, #14] + 80060a2: 8cbb ldrh r3, [r7, #36] ; 0x24 + 80060a4: 9301 str r3, [sp, #4] + 80060a6: 8c3b ldrh r3, [r7, #32] + 80060a8: 9300 str r3, [sp, #0] + 80060aa: 4613 mov r3, r2 + 80060ac: 68ba ldr r2, [r7, #8] + 80060ae: f7ff feb7 bl 8005e20 p++; - 80060ae: 68bb ldr r3, [r7, #8] - 80060b0: 3301 adds r3, #1 - 80060b2: 60bb str r3, [r7, #8] + 80060b2: 68bb ldr r3, [r7, #8] + 80060b4: 3301 adds r3, #1 + 80060b6: 60bb str r3, [r7, #8] x+=size; - 80060b4: 79fb ldrb r3, [r7, #7] - 80060b6: b29a uxth r2, r3 - 80060b8: 89fb ldrh r3, [r7, #14] - 80060ba: 4413 add r3, r2 - 80060bc: 81fb strh r3, [r7, #14] - 80060be: e012 b.n 80060e6 + 80060b8: 79fb ldrb r3, [r7, #7] + 80060ba: b29a uxth r2, r3 + 80060bc: 89fb ldrh r3, [r7, #14] + 80060be: 4413 add r3, r2 + 80060c0: 81fb strh r3, [r7, #14] + 80060c2: e012 b.n 80060ea }else { LCD_ShowChar(x,y,*p,size,bg,color); - 80060c0: 68bb ldr r3, [r7, #8] - 80060c2: 781a ldrb r2, [r3, #0] - 80060c4: 79fc ldrb r4, [r7, #7] - 80060c6: 89b9 ldrh r1, [r7, #12] - 80060c8: 89f8 ldrh r0, [r7, #14] - 80060ca: 8cbb ldrh r3, [r7, #36] ; 0x24 - 80060cc: 9301 str r3, [sp, #4] - 80060ce: 8c3b ldrh r3, [r7, #32] - 80060d0: 9300 str r3, [sp, #0] - 80060d2: 4623 mov r3, r4 - 80060d4: f7ff ff2a bl 8005f2c + 80060c4: 68bb ldr r3, [r7, #8] + 80060c6: 781a ldrb r2, [r3, #0] + 80060c8: 79fc ldrb r4, [r7, #7] + 80060ca: 89b9 ldrh r1, [r7, #12] + 80060cc: 89f8 ldrh r0, [r7, #14] + 80060ce: 8cbb ldrh r3, [r7, #36] ; 0x24 + 80060d0: 9301 str r3, [sp, #4] + 80060d2: 8c3b ldrh r3, [r7, #32] + 80060d4: 9300 str r3, [sp, #0] + 80060d6: 4623 mov r3, r4 + 80060d8: f7ff ff2a bl 8005f30 x+=(size/2); - 80060d8: 79fb ldrb r3, [r7, #7] - 80060da: 085b lsrs r3, r3, #1 - 80060dc: b2db uxtb r3, r3 - 80060de: b29a uxth r2, r3 - 80060e0: 89fb ldrh r3, [r7, #14] - 80060e2: 4413 add r3, r2 - 80060e4: 81fb strh r3, [r7, #14] + 80060dc: 79fb ldrb r3, [r7, #7] + 80060de: 085b lsrs r3, r3, #1 + 80060e0: b2db uxtb r3, r3 + 80060e2: b29a uxth r2, r3 + 80060e4: 89fb ldrh r3, [r7, #14] + 80060e6: 4413 add r3, r2 + 80060e8: 81fb strh r3, [r7, #14] } p++; - 80060e6: 68bb ldr r3, [r7, #8] - 80060e8: 3301 adds r3, #1 - 80060ea: 60bb str r3, [r7, #8] + 80060ea: 68bb ldr r3, [r7, #8] + 80060ec: 3301 adds r3, #1 + 80060ee: 60bb str r3, [r7, #8] while(len--) - 80060ec: 8d3b ldrh r3, [r7, #40] ; 0x28 - 80060ee: 1e5a subs r2, r3, #1 - 80060f0: 853a strh r2, [r7, #40] ; 0x28 - 80060f2: 2b00 cmp r3, #0 - 80060f4: d1a2 bne.n 800603c - 80060f6: e002 b.n 80060fe + 80060f0: 8d3b ldrh r3, [r7, #40] ; 0x28 + 80060f2: 1e5a subs r2, r3, #1 + 80060f4: 853a strh r2, [r7, #40] ; 0x28 + 80060f6: 2b00 cmp r3, #0 + 80060f8: d1a2 bne.n 8006040 + 80060fa: e002 b.n 8006102 return; - 80060f8: bf00 nop - 80060fa: e000 b.n 80060fe - return ; 80060fc: bf00 nop + 80060fe: e000 b.n 8006102 + return ; + 8006100: bf00 nop } } - 80060fe: 3714 adds r7, #20 - 8006100: 46bd mov sp, r7 - 8006102: bd90 pop {r4, r7, pc} - 8006104: 20000824 .word 0x20000824 + 8006102: 3714 adds r7, #20 + 8006104: 46bd mov sp, r7 + 8006106: bd90 pop {r4, r7, pc} + 8006108: 20000824 .word 0x20000824 -08006108 <__errno>: - 8006108: 4b01 ldr r3, [pc, #4] ; (8006110 <__errno+0x8>) - 800610a: 6818 ldr r0, [r3, #0] - 800610c: 4770 bx lr - 800610e: bf00 nop - 8006110: 20000024 .word 0x20000024 +0800610c <__errno>: + 800610c: 4b01 ldr r3, [pc, #4] ; (8006114 <__errno+0x8>) + 800610e: 6818 ldr r0, [r3, #0] + 8006110: 4770 bx lr + 8006112: bf00 nop + 8006114: 20000024 .word 0x20000024 -08006114 <__libc_init_array>: - 8006114: b570 push {r4, r5, r6, lr} - 8006116: 2600 movs r6, #0 - 8006118: 4d0c ldr r5, [pc, #48] ; (800614c <__libc_init_array+0x38>) - 800611a: 4c0d ldr r4, [pc, #52] ; (8006150 <__libc_init_array+0x3c>) - 800611c: 1b64 subs r4, r4, r5 - 800611e: 10a4 asrs r4, r4, #2 - 8006120: 42a6 cmp r6, r4 - 8006122: d109 bne.n 8006138 <__libc_init_array+0x24> - 8006124: f000 fc5c bl 80069e0 <_init> - 8006128: 2600 movs r6, #0 - 800612a: 4d0a ldr r5, [pc, #40] ; (8006154 <__libc_init_array+0x40>) - 800612c: 4c0a ldr r4, [pc, #40] ; (8006158 <__libc_init_array+0x44>) - 800612e: 1b64 subs r4, r4, r5 - 8006130: 10a4 asrs r4, r4, #2 - 8006132: 42a6 cmp r6, r4 - 8006134: d105 bne.n 8006142 <__libc_init_array+0x2e> - 8006136: bd70 pop {r4, r5, r6, pc} - 8006138: f855 3b04 ldr.w r3, [r5], #4 - 800613c: 4798 blx r3 - 800613e: 3601 adds r6, #1 - 8006140: e7ee b.n 8006120 <__libc_init_array+0xc> - 8006142: f855 3b04 ldr.w r3, [r5], #4 - 8006146: 4798 blx r3 - 8006148: 3601 adds r6, #1 - 800614a: e7f2 b.n 8006132 <__libc_init_array+0x1e> - 800614c: 08007590 .word 0x08007590 - 8006150: 08007590 .word 0x08007590 - 8006154: 08007590 .word 0x08007590 - 8006158: 08007594 .word 0x08007594 +08006118 <__libc_init_array>: + 8006118: b570 push {r4, r5, r6, lr} + 800611a: 2600 movs r6, #0 + 800611c: 4d0c ldr r5, [pc, #48] ; (8006150 <__libc_init_array+0x38>) + 800611e: 4c0d ldr r4, [pc, #52] ; (8006154 <__libc_init_array+0x3c>) + 8006120: 1b64 subs r4, r4, r5 + 8006122: 10a4 asrs r4, r4, #2 + 8006124: 42a6 cmp r6, r4 + 8006126: d109 bne.n 800613c <__libc_init_array+0x24> + 8006128: f000 fc5c bl 80069e4 <_init> + 800612c: 2600 movs r6, #0 + 800612e: 4d0a ldr r5, [pc, #40] ; (8006158 <__libc_init_array+0x40>) + 8006130: 4c0a ldr r4, [pc, #40] ; (800615c <__libc_init_array+0x44>) + 8006132: 1b64 subs r4, r4, r5 + 8006134: 10a4 asrs r4, r4, #2 + 8006136: 42a6 cmp r6, r4 + 8006138: d105 bne.n 8006146 <__libc_init_array+0x2e> + 800613a: bd70 pop {r4, r5, r6, pc} + 800613c: f855 3b04 ldr.w r3, [r5], #4 + 8006140: 4798 blx r3 + 8006142: 3601 adds r6, #1 + 8006144: e7ee b.n 8006124 <__libc_init_array+0xc> + 8006146: f855 3b04 ldr.w r3, [r5], #4 + 800614a: 4798 blx r3 + 800614c: 3601 adds r6, #1 + 800614e: e7f2 b.n 8006136 <__libc_init_array+0x1e> + 8006150: 08007598 .word 0x08007598 + 8006154: 08007598 .word 0x08007598 + 8006158: 08007598 .word 0x08007598 + 800615c: 0800759c .word 0x0800759c -0800615c : - 800615c: 4603 mov r3, r0 - 800615e: 4402 add r2, r0 - 8006160: 4293 cmp r3, r2 - 8006162: d100 bne.n 8006166 - 8006164: 4770 bx lr - 8006166: f803 1b01 strb.w r1, [r3], #1 - 800616a: e7f9 b.n 8006160 +08006160 : + 8006160: 4603 mov r3, r0 + 8006162: 4402 add r2, r0 + 8006164: 4293 cmp r3, r2 + 8006166: d100 bne.n 800616a + 8006168: 4770 bx lr + 800616a: f803 1b01 strb.w r1, [r3], #1 + 800616e: e7f9 b.n 8006164 -0800616c : - 800616c: b40e push {r1, r2, r3} - 800616e: f06f 4100 mvn.w r1, #2147483648 ; 0x80000000 - 8006172: b500 push {lr} - 8006174: b09c sub sp, #112 ; 0x70 - 8006176: ab1d add r3, sp, #116 ; 0x74 - 8006178: 9002 str r0, [sp, #8] - 800617a: 9006 str r0, [sp, #24] - 800617c: 9107 str r1, [sp, #28] - 800617e: 9104 str r1, [sp, #16] - 8006180: 4808 ldr r0, [pc, #32] ; (80061a4 ) - 8006182: 4909 ldr r1, [pc, #36] ; (80061a8 ) - 8006184: f853 2b04 ldr.w r2, [r3], #4 - 8006188: 9105 str r1, [sp, #20] - 800618a: 6800 ldr r0, [r0, #0] - 800618c: a902 add r1, sp, #8 - 800618e: 9301 str r3, [sp, #4] - 8006190: f000 f868 bl 8006264 <_svfiprintf_r> - 8006194: 2200 movs r2, #0 - 8006196: 9b02 ldr r3, [sp, #8] - 8006198: 701a strb r2, [r3, #0] - 800619a: b01c add sp, #112 ; 0x70 - 800619c: f85d eb04 ldr.w lr, [sp], #4 - 80061a0: b003 add sp, #12 - 80061a2: 4770 bx lr - 80061a4: 20000024 .word 0x20000024 - 80061a8: ffff0208 .word 0xffff0208 +08006170 : + 8006170: b40e push {r1, r2, r3} + 8006172: f06f 4100 mvn.w r1, #2147483648 ; 0x80000000 + 8006176: b500 push {lr} + 8006178: b09c sub sp, #112 ; 0x70 + 800617a: ab1d add r3, sp, #116 ; 0x74 + 800617c: 9002 str r0, [sp, #8] + 800617e: 9006 str r0, [sp, #24] + 8006180: 9107 str r1, [sp, #28] + 8006182: 9104 str r1, [sp, #16] + 8006184: 4808 ldr r0, [pc, #32] ; (80061a8 ) + 8006186: 4909 ldr r1, [pc, #36] ; (80061ac ) + 8006188: f853 2b04 ldr.w r2, [r3], #4 + 800618c: 9105 str r1, [sp, #20] + 800618e: 6800 ldr r0, [r0, #0] + 8006190: a902 add r1, sp, #8 + 8006192: 9301 str r3, [sp, #4] + 8006194: f000 f868 bl 8006268 <_svfiprintf_r> + 8006198: 2200 movs r2, #0 + 800619a: 9b02 ldr r3, [sp, #8] + 800619c: 701a strb r2, [r3, #0] + 800619e: b01c add sp, #112 ; 0x70 + 80061a0: f85d eb04 ldr.w lr, [sp], #4 + 80061a4: b003 add sp, #12 + 80061a6: 4770 bx lr + 80061a8: 20000024 .word 0x20000024 + 80061ac: ffff0208 .word 0xffff0208 -080061ac <__ssputs_r>: - 80061ac: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80061b0: 688e ldr r6, [r1, #8] - 80061b2: 4682 mov sl, r0 - 80061b4: 429e cmp r6, r3 - 80061b6: 460c mov r4, r1 - 80061b8: 4690 mov r8, r2 - 80061ba: 461f mov r7, r3 - 80061bc: d838 bhi.n 8006230 <__ssputs_r+0x84> - 80061be: 898a ldrh r2, [r1, #12] - 80061c0: f412 6f90 tst.w r2, #1152 ; 0x480 - 80061c4: d032 beq.n 800622c <__ssputs_r+0x80> - 80061c6: 6825 ldr r5, [r4, #0] - 80061c8: 6909 ldr r1, [r1, #16] - 80061ca: 3301 adds r3, #1 - 80061cc: eba5 0901 sub.w r9, r5, r1 - 80061d0: 6965 ldr r5, [r4, #20] - 80061d2: 444b add r3, r9 - 80061d4: eb05 0545 add.w r5, r5, r5, lsl #1 - 80061d8: eb05 75d5 add.w r5, r5, r5, lsr #31 - 80061dc: 106d asrs r5, r5, #1 - 80061de: 429d cmp r5, r3 - 80061e0: bf38 it cc - 80061e2: 461d movcc r5, r3 - 80061e4: 0553 lsls r3, r2, #21 - 80061e6: d531 bpl.n 800624c <__ssputs_r+0xa0> - 80061e8: 4629 mov r1, r5 - 80061ea: f000 fb53 bl 8006894 <_malloc_r> - 80061ee: 4606 mov r6, r0 - 80061f0: b950 cbnz r0, 8006208 <__ssputs_r+0x5c> - 80061f2: 230c movs r3, #12 - 80061f4: f04f 30ff mov.w r0, #4294967295 - 80061f8: f8ca 3000 str.w r3, [sl] - 80061fc: 89a3 ldrh r3, [r4, #12] - 80061fe: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8006202: 81a3 strh r3, [r4, #12] - 8006204: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8006208: 464a mov r2, r9 - 800620a: 6921 ldr r1, [r4, #16] - 800620c: f000 face bl 80067ac - 8006210: 89a3 ldrh r3, [r4, #12] - 8006212: f423 6390 bic.w r3, r3, #1152 ; 0x480 - 8006216: f043 0380 orr.w r3, r3, #128 ; 0x80 - 800621a: 81a3 strh r3, [r4, #12] - 800621c: 6126 str r6, [r4, #16] - 800621e: 444e add r6, r9 - 8006220: 6026 str r6, [r4, #0] - 8006222: 463e mov r6, r7 - 8006224: 6165 str r5, [r4, #20] - 8006226: eba5 0509 sub.w r5, r5, r9 - 800622a: 60a5 str r5, [r4, #8] - 800622c: 42be cmp r6, r7 - 800622e: d900 bls.n 8006232 <__ssputs_r+0x86> - 8006230: 463e mov r6, r7 - 8006232: 4632 mov r2, r6 - 8006234: 4641 mov r1, r8 - 8006236: 6820 ldr r0, [r4, #0] - 8006238: f000 fac6 bl 80067c8 - 800623c: 68a3 ldr r3, [r4, #8] - 800623e: 6822 ldr r2, [r4, #0] - 8006240: 1b9b subs r3, r3, r6 - 8006242: 4432 add r2, r6 - 8006244: 2000 movs r0, #0 - 8006246: 60a3 str r3, [r4, #8] - 8006248: 6022 str r2, [r4, #0] - 800624a: e7db b.n 8006204 <__ssputs_r+0x58> - 800624c: 462a mov r2, r5 - 800624e: f000 fb7b bl 8006948 <_realloc_r> - 8006252: 4606 mov r6, r0 - 8006254: 2800 cmp r0, #0 - 8006256: d1e1 bne.n 800621c <__ssputs_r+0x70> - 8006258: 4650 mov r0, sl - 800625a: 6921 ldr r1, [r4, #16] - 800625c: f000 face bl 80067fc <_free_r> - 8006260: e7c7 b.n 80061f2 <__ssputs_r+0x46> +080061b0 <__ssputs_r>: + 80061b0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 80061b4: 688e ldr r6, [r1, #8] + 80061b6: 4682 mov sl, r0 + 80061b8: 429e cmp r6, r3 + 80061ba: 460c mov r4, r1 + 80061bc: 4690 mov r8, r2 + 80061be: 461f mov r7, r3 + 80061c0: d838 bhi.n 8006234 <__ssputs_r+0x84> + 80061c2: 898a ldrh r2, [r1, #12] + 80061c4: f412 6f90 tst.w r2, #1152 ; 0x480 + 80061c8: d032 beq.n 8006230 <__ssputs_r+0x80> + 80061ca: 6825 ldr r5, [r4, #0] + 80061cc: 6909 ldr r1, [r1, #16] + 80061ce: 3301 adds r3, #1 + 80061d0: eba5 0901 sub.w r9, r5, r1 + 80061d4: 6965 ldr r5, [r4, #20] + 80061d6: 444b add r3, r9 + 80061d8: eb05 0545 add.w r5, r5, r5, lsl #1 + 80061dc: eb05 75d5 add.w r5, r5, r5, lsr #31 + 80061e0: 106d asrs r5, r5, #1 + 80061e2: 429d cmp r5, r3 + 80061e4: bf38 it cc + 80061e6: 461d movcc r5, r3 + 80061e8: 0553 lsls r3, r2, #21 + 80061ea: d531 bpl.n 8006250 <__ssputs_r+0xa0> + 80061ec: 4629 mov r1, r5 + 80061ee: f000 fb53 bl 8006898 <_malloc_r> + 80061f2: 4606 mov r6, r0 + 80061f4: b950 cbnz r0, 800620c <__ssputs_r+0x5c> + 80061f6: 230c movs r3, #12 + 80061f8: f04f 30ff mov.w r0, #4294967295 + 80061fc: f8ca 3000 str.w r3, [sl] + 8006200: 89a3 ldrh r3, [r4, #12] + 8006202: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8006206: 81a3 strh r3, [r4, #12] + 8006208: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 800620c: 464a mov r2, r9 + 800620e: 6921 ldr r1, [r4, #16] + 8006210: f000 face bl 80067b0 + 8006214: 89a3 ldrh r3, [r4, #12] + 8006216: f423 6390 bic.w r3, r3, #1152 ; 0x480 + 800621a: f043 0380 orr.w r3, r3, #128 ; 0x80 + 800621e: 81a3 strh r3, [r4, #12] + 8006220: 6126 str r6, [r4, #16] + 8006222: 444e add r6, r9 + 8006224: 6026 str r6, [r4, #0] + 8006226: 463e mov r6, r7 + 8006228: 6165 str r5, [r4, #20] + 800622a: eba5 0509 sub.w r5, r5, r9 + 800622e: 60a5 str r5, [r4, #8] + 8006230: 42be cmp r6, r7 + 8006232: d900 bls.n 8006236 <__ssputs_r+0x86> + 8006234: 463e mov r6, r7 + 8006236: 4632 mov r2, r6 + 8006238: 4641 mov r1, r8 + 800623a: 6820 ldr r0, [r4, #0] + 800623c: f000 fac6 bl 80067cc + 8006240: 68a3 ldr r3, [r4, #8] + 8006242: 6822 ldr r2, [r4, #0] + 8006244: 1b9b subs r3, r3, r6 + 8006246: 4432 add r2, r6 + 8006248: 2000 movs r0, #0 + 800624a: 60a3 str r3, [r4, #8] + 800624c: 6022 str r2, [r4, #0] + 800624e: e7db b.n 8006208 <__ssputs_r+0x58> + 8006250: 462a mov r2, r5 + 8006252: f000 fb7b bl 800694c <_realloc_r> + 8006256: 4606 mov r6, r0 + 8006258: 2800 cmp r0, #0 + 800625a: d1e1 bne.n 8006220 <__ssputs_r+0x70> + 800625c: 4650 mov r0, sl + 800625e: 6921 ldr r1, [r4, #16] + 8006260: f000 face bl 8006800 <_free_r> + 8006264: e7c7 b.n 80061f6 <__ssputs_r+0x46> ... -08006264 <_svfiprintf_r>: - 8006264: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8006268: 4698 mov r8, r3 - 800626a: 898b ldrh r3, [r1, #12] - 800626c: 4607 mov r7, r0 - 800626e: 061b lsls r3, r3, #24 - 8006270: 460d mov r5, r1 - 8006272: 4614 mov r4, r2 - 8006274: b09d sub sp, #116 ; 0x74 - 8006276: d50e bpl.n 8006296 <_svfiprintf_r+0x32> - 8006278: 690b ldr r3, [r1, #16] - 800627a: b963 cbnz r3, 8006296 <_svfiprintf_r+0x32> - 800627c: 2140 movs r1, #64 ; 0x40 - 800627e: f000 fb09 bl 8006894 <_malloc_r> - 8006282: 6028 str r0, [r5, #0] - 8006284: 6128 str r0, [r5, #16] - 8006286: b920 cbnz r0, 8006292 <_svfiprintf_r+0x2e> - 8006288: 230c movs r3, #12 - 800628a: 603b str r3, [r7, #0] - 800628c: f04f 30ff mov.w r0, #4294967295 - 8006290: e0d1 b.n 8006436 <_svfiprintf_r+0x1d2> - 8006292: 2340 movs r3, #64 ; 0x40 - 8006294: 616b str r3, [r5, #20] - 8006296: 2300 movs r3, #0 - 8006298: 9309 str r3, [sp, #36] ; 0x24 - 800629a: 2320 movs r3, #32 - 800629c: f88d 3029 strb.w r3, [sp, #41] ; 0x29 - 80062a0: 2330 movs r3, #48 ; 0x30 - 80062a2: f04f 0901 mov.w r9, #1 - 80062a6: f8cd 800c str.w r8, [sp, #12] - 80062aa: f8df 81a4 ldr.w r8, [pc, #420] ; 8006450 <_svfiprintf_r+0x1ec> - 80062ae: f88d 302a strb.w r3, [sp, #42] ; 0x2a - 80062b2: 4623 mov r3, r4 - 80062b4: 469a mov sl, r3 - 80062b6: f813 2b01 ldrb.w r2, [r3], #1 - 80062ba: b10a cbz r2, 80062c0 <_svfiprintf_r+0x5c> - 80062bc: 2a25 cmp r2, #37 ; 0x25 - 80062be: d1f9 bne.n 80062b4 <_svfiprintf_r+0x50> - 80062c0: ebba 0b04 subs.w fp, sl, r4 - 80062c4: d00b beq.n 80062de <_svfiprintf_r+0x7a> - 80062c6: 465b mov r3, fp - 80062c8: 4622 mov r2, r4 - 80062ca: 4629 mov r1, r5 - 80062cc: 4638 mov r0, r7 - 80062ce: f7ff ff6d bl 80061ac <__ssputs_r> - 80062d2: 3001 adds r0, #1 - 80062d4: f000 80aa beq.w 800642c <_svfiprintf_r+0x1c8> - 80062d8: 9a09 ldr r2, [sp, #36] ; 0x24 - 80062da: 445a add r2, fp - 80062dc: 9209 str r2, [sp, #36] ; 0x24 - 80062de: f89a 3000 ldrb.w r3, [sl] - 80062e2: 2b00 cmp r3, #0 - 80062e4: f000 80a2 beq.w 800642c <_svfiprintf_r+0x1c8> - 80062e8: 2300 movs r3, #0 - 80062ea: f04f 32ff mov.w r2, #4294967295 - 80062ee: e9cd 2305 strd r2, r3, [sp, #20] - 80062f2: f10a 0a01 add.w sl, sl, #1 - 80062f6: 9304 str r3, [sp, #16] - 80062f8: 9307 str r3, [sp, #28] - 80062fa: f88d 3053 strb.w r3, [sp, #83] ; 0x53 - 80062fe: 931a str r3, [sp, #104] ; 0x68 - 8006300: 4654 mov r4, sl - 8006302: 2205 movs r2, #5 - 8006304: f814 1b01 ldrb.w r1, [r4], #1 - 8006308: 4851 ldr r0, [pc, #324] ; (8006450 <_svfiprintf_r+0x1ec>) - 800630a: f000 fa41 bl 8006790 - 800630e: 9a04 ldr r2, [sp, #16] - 8006310: b9d8 cbnz r0, 800634a <_svfiprintf_r+0xe6> - 8006312: 06d0 lsls r0, r2, #27 - 8006314: bf44 itt mi - 8006316: 2320 movmi r3, #32 - 8006318: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 800631c: 0711 lsls r1, r2, #28 - 800631e: bf44 itt mi - 8006320: 232b movmi r3, #43 ; 0x2b - 8006322: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 8006326: f89a 3000 ldrb.w r3, [sl] - 800632a: 2b2a cmp r3, #42 ; 0x2a - 800632c: d015 beq.n 800635a <_svfiprintf_r+0xf6> - 800632e: 4654 mov r4, sl - 8006330: 2000 movs r0, #0 - 8006332: f04f 0c0a mov.w ip, #10 - 8006336: 9a07 ldr r2, [sp, #28] - 8006338: 4621 mov r1, r4 - 800633a: f811 3b01 ldrb.w r3, [r1], #1 - 800633e: 3b30 subs r3, #48 ; 0x30 - 8006340: 2b09 cmp r3, #9 - 8006342: d94e bls.n 80063e2 <_svfiprintf_r+0x17e> - 8006344: b1b0 cbz r0, 8006374 <_svfiprintf_r+0x110> - 8006346: 9207 str r2, [sp, #28] - 8006348: e014 b.n 8006374 <_svfiprintf_r+0x110> - 800634a: eba0 0308 sub.w r3, r0, r8 - 800634e: fa09 f303 lsl.w r3, r9, r3 - 8006352: 4313 orrs r3, r2 - 8006354: 46a2 mov sl, r4 - 8006356: 9304 str r3, [sp, #16] - 8006358: e7d2 b.n 8006300 <_svfiprintf_r+0x9c> - 800635a: 9b03 ldr r3, [sp, #12] - 800635c: 1d19 adds r1, r3, #4 - 800635e: 681b ldr r3, [r3, #0] - 8006360: 9103 str r1, [sp, #12] - 8006362: 2b00 cmp r3, #0 - 8006364: bfbb ittet lt - 8006366: 425b neglt r3, r3 - 8006368: f042 0202 orrlt.w r2, r2, #2 - 800636c: 9307 strge r3, [sp, #28] - 800636e: 9307 strlt r3, [sp, #28] - 8006370: bfb8 it lt - 8006372: 9204 strlt r2, [sp, #16] - 8006374: 7823 ldrb r3, [r4, #0] - 8006376: 2b2e cmp r3, #46 ; 0x2e - 8006378: d10c bne.n 8006394 <_svfiprintf_r+0x130> - 800637a: 7863 ldrb r3, [r4, #1] - 800637c: 2b2a cmp r3, #42 ; 0x2a - 800637e: d135 bne.n 80063ec <_svfiprintf_r+0x188> - 8006380: 9b03 ldr r3, [sp, #12] - 8006382: 3402 adds r4, #2 - 8006384: 1d1a adds r2, r3, #4 - 8006386: 681b ldr r3, [r3, #0] - 8006388: 9203 str r2, [sp, #12] - 800638a: 2b00 cmp r3, #0 - 800638c: bfb8 it lt - 800638e: f04f 33ff movlt.w r3, #4294967295 - 8006392: 9305 str r3, [sp, #20] - 8006394: f8df a0c8 ldr.w sl, [pc, #200] ; 8006460 <_svfiprintf_r+0x1fc> - 8006398: 2203 movs r2, #3 - 800639a: 4650 mov r0, sl - 800639c: 7821 ldrb r1, [r4, #0] - 800639e: f000 f9f7 bl 8006790 - 80063a2: b140 cbz r0, 80063b6 <_svfiprintf_r+0x152> - 80063a4: 2340 movs r3, #64 ; 0x40 - 80063a6: eba0 000a sub.w r0, r0, sl - 80063aa: fa03 f000 lsl.w r0, r3, r0 - 80063ae: 9b04 ldr r3, [sp, #16] - 80063b0: 3401 adds r4, #1 - 80063b2: 4303 orrs r3, r0 - 80063b4: 9304 str r3, [sp, #16] - 80063b6: f814 1b01 ldrb.w r1, [r4], #1 - 80063ba: 2206 movs r2, #6 - 80063bc: 4825 ldr r0, [pc, #148] ; (8006454 <_svfiprintf_r+0x1f0>) - 80063be: f88d 1028 strb.w r1, [sp, #40] ; 0x28 - 80063c2: f000 f9e5 bl 8006790 - 80063c6: 2800 cmp r0, #0 - 80063c8: d038 beq.n 800643c <_svfiprintf_r+0x1d8> - 80063ca: 4b23 ldr r3, [pc, #140] ; (8006458 <_svfiprintf_r+0x1f4>) - 80063cc: bb1b cbnz r3, 8006416 <_svfiprintf_r+0x1b2> - 80063ce: 9b03 ldr r3, [sp, #12] - 80063d0: 3307 adds r3, #7 - 80063d2: f023 0307 bic.w r3, r3, #7 - 80063d6: 3308 adds r3, #8 - 80063d8: 9303 str r3, [sp, #12] - 80063da: 9b09 ldr r3, [sp, #36] ; 0x24 - 80063dc: 4433 add r3, r6 - 80063de: 9309 str r3, [sp, #36] ; 0x24 - 80063e0: e767 b.n 80062b2 <_svfiprintf_r+0x4e> - 80063e2: 460c mov r4, r1 - 80063e4: 2001 movs r0, #1 - 80063e6: fb0c 3202 mla r2, ip, r2, r3 - 80063ea: e7a5 b.n 8006338 <_svfiprintf_r+0xd4> - 80063ec: 2300 movs r3, #0 - 80063ee: f04f 0c0a mov.w ip, #10 - 80063f2: 4619 mov r1, r3 - 80063f4: 3401 adds r4, #1 - 80063f6: 9305 str r3, [sp, #20] - 80063f8: 4620 mov r0, r4 - 80063fa: f810 2b01 ldrb.w r2, [r0], #1 - 80063fe: 3a30 subs r2, #48 ; 0x30 - 8006400: 2a09 cmp r2, #9 - 8006402: d903 bls.n 800640c <_svfiprintf_r+0x1a8> - 8006404: 2b00 cmp r3, #0 - 8006406: d0c5 beq.n 8006394 <_svfiprintf_r+0x130> - 8006408: 9105 str r1, [sp, #20] - 800640a: e7c3 b.n 8006394 <_svfiprintf_r+0x130> - 800640c: 4604 mov r4, r0 - 800640e: 2301 movs r3, #1 - 8006410: fb0c 2101 mla r1, ip, r1, r2 - 8006414: e7f0 b.n 80063f8 <_svfiprintf_r+0x194> - 8006416: ab03 add r3, sp, #12 - 8006418: 9300 str r3, [sp, #0] - 800641a: 462a mov r2, r5 - 800641c: 4638 mov r0, r7 - 800641e: 4b0f ldr r3, [pc, #60] ; (800645c <_svfiprintf_r+0x1f8>) - 8006420: a904 add r1, sp, #16 - 8006422: f3af 8000 nop.w - 8006426: 1c42 adds r2, r0, #1 - 8006428: 4606 mov r6, r0 - 800642a: d1d6 bne.n 80063da <_svfiprintf_r+0x176> - 800642c: 89ab ldrh r3, [r5, #12] - 800642e: 065b lsls r3, r3, #25 - 8006430: f53f af2c bmi.w 800628c <_svfiprintf_r+0x28> - 8006434: 9809 ldr r0, [sp, #36] ; 0x24 - 8006436: b01d add sp, #116 ; 0x74 - 8006438: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800643c: ab03 add r3, sp, #12 - 800643e: 9300 str r3, [sp, #0] - 8006440: 462a mov r2, r5 - 8006442: 4638 mov r0, r7 - 8006444: 4b05 ldr r3, [pc, #20] ; (800645c <_svfiprintf_r+0x1f8>) - 8006446: a904 add r1, sp, #16 - 8006448: f000 f87c bl 8006544 <_printf_i> - 800644c: e7eb b.n 8006426 <_svfiprintf_r+0x1c2> - 800644e: bf00 nop - 8006450: 0800755c .word 0x0800755c - 8006454: 08007566 .word 0x08007566 - 8006458: 00000000 .word 0x00000000 - 800645c: 080061ad .word 0x080061ad - 8006460: 08007562 .word 0x08007562 +08006268 <_svfiprintf_r>: + 8006268: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 800626c: 4698 mov r8, r3 + 800626e: 898b ldrh r3, [r1, #12] + 8006270: 4607 mov r7, r0 + 8006272: 061b lsls r3, r3, #24 + 8006274: 460d mov r5, r1 + 8006276: 4614 mov r4, r2 + 8006278: b09d sub sp, #116 ; 0x74 + 800627a: d50e bpl.n 800629a <_svfiprintf_r+0x32> + 800627c: 690b ldr r3, [r1, #16] + 800627e: b963 cbnz r3, 800629a <_svfiprintf_r+0x32> + 8006280: 2140 movs r1, #64 ; 0x40 + 8006282: f000 fb09 bl 8006898 <_malloc_r> + 8006286: 6028 str r0, [r5, #0] + 8006288: 6128 str r0, [r5, #16] + 800628a: b920 cbnz r0, 8006296 <_svfiprintf_r+0x2e> + 800628c: 230c movs r3, #12 + 800628e: 603b str r3, [r7, #0] + 8006290: f04f 30ff mov.w r0, #4294967295 + 8006294: e0d1 b.n 800643a <_svfiprintf_r+0x1d2> + 8006296: 2340 movs r3, #64 ; 0x40 + 8006298: 616b str r3, [r5, #20] + 800629a: 2300 movs r3, #0 + 800629c: 9309 str r3, [sp, #36] ; 0x24 + 800629e: 2320 movs r3, #32 + 80062a0: f88d 3029 strb.w r3, [sp, #41] ; 0x29 + 80062a4: 2330 movs r3, #48 ; 0x30 + 80062a6: f04f 0901 mov.w r9, #1 + 80062aa: f8cd 800c str.w r8, [sp, #12] + 80062ae: f8df 81a4 ldr.w r8, [pc, #420] ; 8006454 <_svfiprintf_r+0x1ec> + 80062b2: f88d 302a strb.w r3, [sp, #42] ; 0x2a + 80062b6: 4623 mov r3, r4 + 80062b8: 469a mov sl, r3 + 80062ba: f813 2b01 ldrb.w r2, [r3], #1 + 80062be: b10a cbz r2, 80062c4 <_svfiprintf_r+0x5c> + 80062c0: 2a25 cmp r2, #37 ; 0x25 + 80062c2: d1f9 bne.n 80062b8 <_svfiprintf_r+0x50> + 80062c4: ebba 0b04 subs.w fp, sl, r4 + 80062c8: d00b beq.n 80062e2 <_svfiprintf_r+0x7a> + 80062ca: 465b mov r3, fp + 80062cc: 4622 mov r2, r4 + 80062ce: 4629 mov r1, r5 + 80062d0: 4638 mov r0, r7 + 80062d2: f7ff ff6d bl 80061b0 <__ssputs_r> + 80062d6: 3001 adds r0, #1 + 80062d8: f000 80aa beq.w 8006430 <_svfiprintf_r+0x1c8> + 80062dc: 9a09 ldr r2, [sp, #36] ; 0x24 + 80062de: 445a add r2, fp + 80062e0: 9209 str r2, [sp, #36] ; 0x24 + 80062e2: f89a 3000 ldrb.w r3, [sl] + 80062e6: 2b00 cmp r3, #0 + 80062e8: f000 80a2 beq.w 8006430 <_svfiprintf_r+0x1c8> + 80062ec: 2300 movs r3, #0 + 80062ee: f04f 32ff mov.w r2, #4294967295 + 80062f2: e9cd 2305 strd r2, r3, [sp, #20] + 80062f6: f10a 0a01 add.w sl, sl, #1 + 80062fa: 9304 str r3, [sp, #16] + 80062fc: 9307 str r3, [sp, #28] + 80062fe: f88d 3053 strb.w r3, [sp, #83] ; 0x53 + 8006302: 931a str r3, [sp, #104] ; 0x68 + 8006304: 4654 mov r4, sl + 8006306: 2205 movs r2, #5 + 8006308: f814 1b01 ldrb.w r1, [r4], #1 + 800630c: 4851 ldr r0, [pc, #324] ; (8006454 <_svfiprintf_r+0x1ec>) + 800630e: f000 fa41 bl 8006794 + 8006312: 9a04 ldr r2, [sp, #16] + 8006314: b9d8 cbnz r0, 800634e <_svfiprintf_r+0xe6> + 8006316: 06d0 lsls r0, r2, #27 + 8006318: bf44 itt mi + 800631a: 2320 movmi r3, #32 + 800631c: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 + 8006320: 0711 lsls r1, r2, #28 + 8006322: bf44 itt mi + 8006324: 232b movmi r3, #43 ; 0x2b + 8006326: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 + 800632a: f89a 3000 ldrb.w r3, [sl] + 800632e: 2b2a cmp r3, #42 ; 0x2a + 8006330: d015 beq.n 800635e <_svfiprintf_r+0xf6> + 8006332: 4654 mov r4, sl + 8006334: 2000 movs r0, #0 + 8006336: f04f 0c0a mov.w ip, #10 + 800633a: 9a07 ldr r2, [sp, #28] + 800633c: 4621 mov r1, r4 + 800633e: f811 3b01 ldrb.w r3, [r1], #1 + 8006342: 3b30 subs r3, #48 ; 0x30 + 8006344: 2b09 cmp r3, #9 + 8006346: d94e bls.n 80063e6 <_svfiprintf_r+0x17e> + 8006348: b1b0 cbz r0, 8006378 <_svfiprintf_r+0x110> + 800634a: 9207 str r2, [sp, #28] + 800634c: e014 b.n 8006378 <_svfiprintf_r+0x110> + 800634e: eba0 0308 sub.w r3, r0, r8 + 8006352: fa09 f303 lsl.w r3, r9, r3 + 8006356: 4313 orrs r3, r2 + 8006358: 46a2 mov sl, r4 + 800635a: 9304 str r3, [sp, #16] + 800635c: e7d2 b.n 8006304 <_svfiprintf_r+0x9c> + 800635e: 9b03 ldr r3, [sp, #12] + 8006360: 1d19 adds r1, r3, #4 + 8006362: 681b ldr r3, [r3, #0] + 8006364: 9103 str r1, [sp, #12] + 8006366: 2b00 cmp r3, #0 + 8006368: bfbb ittet lt + 800636a: 425b neglt r3, r3 + 800636c: f042 0202 orrlt.w r2, r2, #2 + 8006370: 9307 strge r3, [sp, #28] + 8006372: 9307 strlt r3, [sp, #28] + 8006374: bfb8 it lt + 8006376: 9204 strlt r2, [sp, #16] + 8006378: 7823 ldrb r3, [r4, #0] + 800637a: 2b2e cmp r3, #46 ; 0x2e + 800637c: d10c bne.n 8006398 <_svfiprintf_r+0x130> + 800637e: 7863 ldrb r3, [r4, #1] + 8006380: 2b2a cmp r3, #42 ; 0x2a + 8006382: d135 bne.n 80063f0 <_svfiprintf_r+0x188> + 8006384: 9b03 ldr r3, [sp, #12] + 8006386: 3402 adds r4, #2 + 8006388: 1d1a adds r2, r3, #4 + 800638a: 681b ldr r3, [r3, #0] + 800638c: 9203 str r2, [sp, #12] + 800638e: 2b00 cmp r3, #0 + 8006390: bfb8 it lt + 8006392: f04f 33ff movlt.w r3, #4294967295 + 8006396: 9305 str r3, [sp, #20] + 8006398: f8df a0c8 ldr.w sl, [pc, #200] ; 8006464 <_svfiprintf_r+0x1fc> + 800639c: 2203 movs r2, #3 + 800639e: 4650 mov r0, sl + 80063a0: 7821 ldrb r1, [r4, #0] + 80063a2: f000 f9f7 bl 8006794 + 80063a6: b140 cbz r0, 80063ba <_svfiprintf_r+0x152> + 80063a8: 2340 movs r3, #64 ; 0x40 + 80063aa: eba0 000a sub.w r0, r0, sl + 80063ae: fa03 f000 lsl.w r0, r3, r0 + 80063b2: 9b04 ldr r3, [sp, #16] + 80063b4: 3401 adds r4, #1 + 80063b6: 4303 orrs r3, r0 + 80063b8: 9304 str r3, [sp, #16] + 80063ba: f814 1b01 ldrb.w r1, [r4], #1 + 80063be: 2206 movs r2, #6 + 80063c0: 4825 ldr r0, [pc, #148] ; (8006458 <_svfiprintf_r+0x1f0>) + 80063c2: f88d 1028 strb.w r1, [sp, #40] ; 0x28 + 80063c6: f000 f9e5 bl 8006794 + 80063ca: 2800 cmp r0, #0 + 80063cc: d038 beq.n 8006440 <_svfiprintf_r+0x1d8> + 80063ce: 4b23 ldr r3, [pc, #140] ; (800645c <_svfiprintf_r+0x1f4>) + 80063d0: bb1b cbnz r3, 800641a <_svfiprintf_r+0x1b2> + 80063d2: 9b03 ldr r3, [sp, #12] + 80063d4: 3307 adds r3, #7 + 80063d6: f023 0307 bic.w r3, r3, #7 + 80063da: 3308 adds r3, #8 + 80063dc: 9303 str r3, [sp, #12] + 80063de: 9b09 ldr r3, [sp, #36] ; 0x24 + 80063e0: 4433 add r3, r6 + 80063e2: 9309 str r3, [sp, #36] ; 0x24 + 80063e4: e767 b.n 80062b6 <_svfiprintf_r+0x4e> + 80063e6: 460c mov r4, r1 + 80063e8: 2001 movs r0, #1 + 80063ea: fb0c 3202 mla r2, ip, r2, r3 + 80063ee: e7a5 b.n 800633c <_svfiprintf_r+0xd4> + 80063f0: 2300 movs r3, #0 + 80063f2: f04f 0c0a mov.w ip, #10 + 80063f6: 4619 mov r1, r3 + 80063f8: 3401 adds r4, #1 + 80063fa: 9305 str r3, [sp, #20] + 80063fc: 4620 mov r0, r4 + 80063fe: f810 2b01 ldrb.w r2, [r0], #1 + 8006402: 3a30 subs r2, #48 ; 0x30 + 8006404: 2a09 cmp r2, #9 + 8006406: d903 bls.n 8006410 <_svfiprintf_r+0x1a8> + 8006408: 2b00 cmp r3, #0 + 800640a: d0c5 beq.n 8006398 <_svfiprintf_r+0x130> + 800640c: 9105 str r1, [sp, #20] + 800640e: e7c3 b.n 8006398 <_svfiprintf_r+0x130> + 8006410: 4604 mov r4, r0 + 8006412: 2301 movs r3, #1 + 8006414: fb0c 2101 mla r1, ip, r1, r2 + 8006418: e7f0 b.n 80063fc <_svfiprintf_r+0x194> + 800641a: ab03 add r3, sp, #12 + 800641c: 9300 str r3, [sp, #0] + 800641e: 462a mov r2, r5 + 8006420: 4638 mov r0, r7 + 8006422: 4b0f ldr r3, [pc, #60] ; (8006460 <_svfiprintf_r+0x1f8>) + 8006424: a904 add r1, sp, #16 + 8006426: f3af 8000 nop.w + 800642a: 1c42 adds r2, r0, #1 + 800642c: 4606 mov r6, r0 + 800642e: d1d6 bne.n 80063de <_svfiprintf_r+0x176> + 8006430: 89ab ldrh r3, [r5, #12] + 8006432: 065b lsls r3, r3, #25 + 8006434: f53f af2c bmi.w 8006290 <_svfiprintf_r+0x28> + 8006438: 9809 ldr r0, [sp, #36] ; 0x24 + 800643a: b01d add sp, #116 ; 0x74 + 800643c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8006440: ab03 add r3, sp, #12 + 8006442: 9300 str r3, [sp, #0] + 8006444: 462a mov r2, r5 + 8006446: 4638 mov r0, r7 + 8006448: 4b05 ldr r3, [pc, #20] ; (8006460 <_svfiprintf_r+0x1f8>) + 800644a: a904 add r1, sp, #16 + 800644c: f000 f87c bl 8006548 <_printf_i> + 8006450: e7eb b.n 800642a <_svfiprintf_r+0x1c2> + 8006452: bf00 nop + 8006454: 08007564 .word 0x08007564 + 8006458: 0800756e .word 0x0800756e + 800645c: 00000000 .word 0x00000000 + 8006460: 080061b1 .word 0x080061b1 + 8006464: 0800756a .word 0x0800756a -08006464 <_printf_common>: - 8006464: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8006468: 4616 mov r6, r2 - 800646a: 4699 mov r9, r3 - 800646c: 688a ldr r2, [r1, #8] - 800646e: 690b ldr r3, [r1, #16] - 8006470: 4607 mov r7, r0 - 8006472: 4293 cmp r3, r2 - 8006474: bfb8 it lt - 8006476: 4613 movlt r3, r2 - 8006478: 6033 str r3, [r6, #0] - 800647a: f891 2043 ldrb.w r2, [r1, #67] ; 0x43 - 800647e: 460c mov r4, r1 - 8006480: f8dd 8020 ldr.w r8, [sp, #32] - 8006484: b10a cbz r2, 800648a <_printf_common+0x26> - 8006486: 3301 adds r3, #1 - 8006488: 6033 str r3, [r6, #0] - 800648a: 6823 ldr r3, [r4, #0] - 800648c: 0699 lsls r1, r3, #26 - 800648e: bf42 ittt mi - 8006490: 6833 ldrmi r3, [r6, #0] - 8006492: 3302 addmi r3, #2 - 8006494: 6033 strmi r3, [r6, #0] - 8006496: 6825 ldr r5, [r4, #0] - 8006498: f015 0506 ands.w r5, r5, #6 - 800649c: d106 bne.n 80064ac <_printf_common+0x48> - 800649e: f104 0a19 add.w sl, r4, #25 - 80064a2: 68e3 ldr r3, [r4, #12] - 80064a4: 6832 ldr r2, [r6, #0] - 80064a6: 1a9b subs r3, r3, r2 - 80064a8: 42ab cmp r3, r5 - 80064aa: dc28 bgt.n 80064fe <_printf_common+0x9a> - 80064ac: f894 2043 ldrb.w r2, [r4, #67] ; 0x43 - 80064b0: 1e13 subs r3, r2, #0 - 80064b2: 6822 ldr r2, [r4, #0] - 80064b4: bf18 it ne - 80064b6: 2301 movne r3, #1 - 80064b8: 0692 lsls r2, r2, #26 - 80064ba: d42d bmi.n 8006518 <_printf_common+0xb4> - 80064bc: 4649 mov r1, r9 - 80064be: 4638 mov r0, r7 - 80064c0: f104 0243 add.w r2, r4, #67 ; 0x43 - 80064c4: 47c0 blx r8 - 80064c6: 3001 adds r0, #1 - 80064c8: d020 beq.n 800650c <_printf_common+0xa8> - 80064ca: 6823 ldr r3, [r4, #0] - 80064cc: 68e5 ldr r5, [r4, #12] - 80064ce: f003 0306 and.w r3, r3, #6 - 80064d2: 2b04 cmp r3, #4 - 80064d4: bf18 it ne - 80064d6: 2500 movne r5, #0 - 80064d8: 6832 ldr r2, [r6, #0] - 80064da: f04f 0600 mov.w r6, #0 - 80064de: 68a3 ldr r3, [r4, #8] - 80064e0: bf08 it eq - 80064e2: 1aad subeq r5, r5, r2 - 80064e4: 6922 ldr r2, [r4, #16] - 80064e6: bf08 it eq - 80064e8: ea25 75e5 biceq.w r5, r5, r5, asr #31 - 80064ec: 4293 cmp r3, r2 - 80064ee: bfc4 itt gt - 80064f0: 1a9b subgt r3, r3, r2 - 80064f2: 18ed addgt r5, r5, r3 - 80064f4: 341a adds r4, #26 - 80064f6: 42b5 cmp r5, r6 - 80064f8: d11a bne.n 8006530 <_printf_common+0xcc> - 80064fa: 2000 movs r0, #0 - 80064fc: e008 b.n 8006510 <_printf_common+0xac> - 80064fe: 2301 movs r3, #1 - 8006500: 4652 mov r2, sl - 8006502: 4649 mov r1, r9 - 8006504: 4638 mov r0, r7 - 8006506: 47c0 blx r8 - 8006508: 3001 adds r0, #1 - 800650a: d103 bne.n 8006514 <_printf_common+0xb0> - 800650c: f04f 30ff mov.w r0, #4294967295 - 8006510: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8006514: 3501 adds r5, #1 - 8006516: e7c4 b.n 80064a2 <_printf_common+0x3e> - 8006518: 2030 movs r0, #48 ; 0x30 - 800651a: 18e1 adds r1, r4, r3 - 800651c: f881 0043 strb.w r0, [r1, #67] ; 0x43 - 8006520: 1c5a adds r2, r3, #1 - 8006522: f894 1045 ldrb.w r1, [r4, #69] ; 0x45 - 8006526: 4422 add r2, r4 - 8006528: 3302 adds r3, #2 - 800652a: f882 1043 strb.w r1, [r2, #67] ; 0x43 - 800652e: e7c5 b.n 80064bc <_printf_common+0x58> - 8006530: 2301 movs r3, #1 - 8006532: 4622 mov r2, r4 - 8006534: 4649 mov r1, r9 - 8006536: 4638 mov r0, r7 - 8006538: 47c0 blx r8 - 800653a: 3001 adds r0, #1 - 800653c: d0e6 beq.n 800650c <_printf_common+0xa8> - 800653e: 3601 adds r6, #1 - 8006540: e7d9 b.n 80064f6 <_printf_common+0x92> +08006468 <_printf_common>: + 8006468: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 800646c: 4616 mov r6, r2 + 800646e: 4699 mov r9, r3 + 8006470: 688a ldr r2, [r1, #8] + 8006472: 690b ldr r3, [r1, #16] + 8006474: 4607 mov r7, r0 + 8006476: 4293 cmp r3, r2 + 8006478: bfb8 it lt + 800647a: 4613 movlt r3, r2 + 800647c: 6033 str r3, [r6, #0] + 800647e: f891 2043 ldrb.w r2, [r1, #67] ; 0x43 + 8006482: 460c mov r4, r1 + 8006484: f8dd 8020 ldr.w r8, [sp, #32] + 8006488: b10a cbz r2, 800648e <_printf_common+0x26> + 800648a: 3301 adds r3, #1 + 800648c: 6033 str r3, [r6, #0] + 800648e: 6823 ldr r3, [r4, #0] + 8006490: 0699 lsls r1, r3, #26 + 8006492: bf42 ittt mi + 8006494: 6833 ldrmi r3, [r6, #0] + 8006496: 3302 addmi r3, #2 + 8006498: 6033 strmi r3, [r6, #0] + 800649a: 6825 ldr r5, [r4, #0] + 800649c: f015 0506 ands.w r5, r5, #6 + 80064a0: d106 bne.n 80064b0 <_printf_common+0x48> + 80064a2: f104 0a19 add.w sl, r4, #25 + 80064a6: 68e3 ldr r3, [r4, #12] + 80064a8: 6832 ldr r2, [r6, #0] + 80064aa: 1a9b subs r3, r3, r2 + 80064ac: 42ab cmp r3, r5 + 80064ae: dc28 bgt.n 8006502 <_printf_common+0x9a> + 80064b0: f894 2043 ldrb.w r2, [r4, #67] ; 0x43 + 80064b4: 1e13 subs r3, r2, #0 + 80064b6: 6822 ldr r2, [r4, #0] + 80064b8: bf18 it ne + 80064ba: 2301 movne r3, #1 + 80064bc: 0692 lsls r2, r2, #26 + 80064be: d42d bmi.n 800651c <_printf_common+0xb4> + 80064c0: 4649 mov r1, r9 + 80064c2: 4638 mov r0, r7 + 80064c4: f104 0243 add.w r2, r4, #67 ; 0x43 + 80064c8: 47c0 blx r8 + 80064ca: 3001 adds r0, #1 + 80064cc: d020 beq.n 8006510 <_printf_common+0xa8> + 80064ce: 6823 ldr r3, [r4, #0] + 80064d0: 68e5 ldr r5, [r4, #12] + 80064d2: f003 0306 and.w r3, r3, #6 + 80064d6: 2b04 cmp r3, #4 + 80064d8: bf18 it ne + 80064da: 2500 movne r5, #0 + 80064dc: 6832 ldr r2, [r6, #0] + 80064de: f04f 0600 mov.w r6, #0 + 80064e2: 68a3 ldr r3, [r4, #8] + 80064e4: bf08 it eq + 80064e6: 1aad subeq r5, r5, r2 + 80064e8: 6922 ldr r2, [r4, #16] + 80064ea: bf08 it eq + 80064ec: ea25 75e5 biceq.w r5, r5, r5, asr #31 + 80064f0: 4293 cmp r3, r2 + 80064f2: bfc4 itt gt + 80064f4: 1a9b subgt r3, r3, r2 + 80064f6: 18ed addgt r5, r5, r3 + 80064f8: 341a adds r4, #26 + 80064fa: 42b5 cmp r5, r6 + 80064fc: d11a bne.n 8006534 <_printf_common+0xcc> + 80064fe: 2000 movs r0, #0 + 8006500: e008 b.n 8006514 <_printf_common+0xac> + 8006502: 2301 movs r3, #1 + 8006504: 4652 mov r2, sl + 8006506: 4649 mov r1, r9 + 8006508: 4638 mov r0, r7 + 800650a: 47c0 blx r8 + 800650c: 3001 adds r0, #1 + 800650e: d103 bne.n 8006518 <_printf_common+0xb0> + 8006510: f04f 30ff mov.w r0, #4294967295 + 8006514: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8006518: 3501 adds r5, #1 + 800651a: e7c4 b.n 80064a6 <_printf_common+0x3e> + 800651c: 2030 movs r0, #48 ; 0x30 + 800651e: 18e1 adds r1, r4, r3 + 8006520: f881 0043 strb.w r0, [r1, #67] ; 0x43 + 8006524: 1c5a adds r2, r3, #1 + 8006526: f894 1045 ldrb.w r1, [r4, #69] ; 0x45 + 800652a: 4422 add r2, r4 + 800652c: 3302 adds r3, #2 + 800652e: f882 1043 strb.w r1, [r2, #67] ; 0x43 + 8006532: e7c5 b.n 80064c0 <_printf_common+0x58> + 8006534: 2301 movs r3, #1 + 8006536: 4622 mov r2, r4 + 8006538: 4649 mov r1, r9 + 800653a: 4638 mov r0, r7 + 800653c: 47c0 blx r8 + 800653e: 3001 adds r0, #1 + 8006540: d0e6 beq.n 8006510 <_printf_common+0xa8> + 8006542: 3601 adds r6, #1 + 8006544: e7d9 b.n 80064fa <_printf_common+0x92> ... -08006544 <_printf_i>: - 8006544: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - 8006548: 460c mov r4, r1 - 800654a: 7e27 ldrb r7, [r4, #24] - 800654c: 4691 mov r9, r2 - 800654e: 2f78 cmp r7, #120 ; 0x78 - 8006550: 4680 mov r8, r0 - 8006552: 469a mov sl, r3 - 8006554: 990c ldr r1, [sp, #48] ; 0x30 - 8006556: f104 0243 add.w r2, r4, #67 ; 0x43 - 800655a: d807 bhi.n 800656c <_printf_i+0x28> - 800655c: 2f62 cmp r7, #98 ; 0x62 - 800655e: d80a bhi.n 8006576 <_printf_i+0x32> - 8006560: 2f00 cmp r7, #0 - 8006562: f000 80d9 beq.w 8006718 <_printf_i+0x1d4> - 8006566: 2f58 cmp r7, #88 ; 0x58 - 8006568: f000 80a4 beq.w 80066b4 <_printf_i+0x170> - 800656c: f104 0642 add.w r6, r4, #66 ; 0x42 - 8006570: f884 7042 strb.w r7, [r4, #66] ; 0x42 - 8006574: e03a b.n 80065ec <_printf_i+0xa8> - 8006576: f1a7 0363 sub.w r3, r7, #99 ; 0x63 - 800657a: 2b15 cmp r3, #21 - 800657c: d8f6 bhi.n 800656c <_printf_i+0x28> - 800657e: a001 add r0, pc, #4 ; (adr r0, 8006584 <_printf_i+0x40>) - 8006580: f850 f023 ldr.w pc, [r0, r3, lsl #2] - 8006584: 080065dd .word 0x080065dd - 8006588: 080065f1 .word 0x080065f1 - 800658c: 0800656d .word 0x0800656d - 8006590: 0800656d .word 0x0800656d - 8006594: 0800656d .word 0x0800656d - 8006598: 0800656d .word 0x0800656d - 800659c: 080065f1 .word 0x080065f1 - 80065a0: 0800656d .word 0x0800656d - 80065a4: 0800656d .word 0x0800656d - 80065a8: 0800656d .word 0x0800656d - 80065ac: 0800656d .word 0x0800656d - 80065b0: 080066ff .word 0x080066ff - 80065b4: 08006621 .word 0x08006621 - 80065b8: 080066e1 .word 0x080066e1 - 80065bc: 0800656d .word 0x0800656d - 80065c0: 0800656d .word 0x0800656d - 80065c4: 08006721 .word 0x08006721 - 80065c8: 0800656d .word 0x0800656d - 80065cc: 08006621 .word 0x08006621 - 80065d0: 0800656d .word 0x0800656d - 80065d4: 0800656d .word 0x0800656d - 80065d8: 080066e9 .word 0x080066e9 - 80065dc: 680b ldr r3, [r1, #0] - 80065de: f104 0642 add.w r6, r4, #66 ; 0x42 - 80065e2: 1d1a adds r2, r3, #4 - 80065e4: 681b ldr r3, [r3, #0] - 80065e6: 600a str r2, [r1, #0] - 80065e8: f884 3042 strb.w r3, [r4, #66] ; 0x42 - 80065ec: 2301 movs r3, #1 - 80065ee: e0a4 b.n 800673a <_printf_i+0x1f6> - 80065f0: 6825 ldr r5, [r4, #0] - 80065f2: 6808 ldr r0, [r1, #0] - 80065f4: 062e lsls r6, r5, #24 - 80065f6: f100 0304 add.w r3, r0, #4 - 80065fa: d50a bpl.n 8006612 <_printf_i+0xce> - 80065fc: 6805 ldr r5, [r0, #0] - 80065fe: 600b str r3, [r1, #0] - 8006600: 2d00 cmp r5, #0 - 8006602: da03 bge.n 800660c <_printf_i+0xc8> - 8006604: 232d movs r3, #45 ; 0x2d - 8006606: 426d negs r5, r5 - 8006608: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 800660c: 230a movs r3, #10 - 800660e: 485e ldr r0, [pc, #376] ; (8006788 <_printf_i+0x244>) - 8006610: e019 b.n 8006646 <_printf_i+0x102> - 8006612: f015 0f40 tst.w r5, #64 ; 0x40 - 8006616: 6805 ldr r5, [r0, #0] - 8006618: 600b str r3, [r1, #0] - 800661a: bf18 it ne - 800661c: b22d sxthne r5, r5 - 800661e: e7ef b.n 8006600 <_printf_i+0xbc> - 8006620: 680b ldr r3, [r1, #0] - 8006622: 6825 ldr r5, [r4, #0] - 8006624: 1d18 adds r0, r3, #4 - 8006626: 6008 str r0, [r1, #0] - 8006628: 0628 lsls r0, r5, #24 - 800662a: d501 bpl.n 8006630 <_printf_i+0xec> - 800662c: 681d ldr r5, [r3, #0] - 800662e: e002 b.n 8006636 <_printf_i+0xf2> - 8006630: 0669 lsls r1, r5, #25 - 8006632: d5fb bpl.n 800662c <_printf_i+0xe8> - 8006634: 881d ldrh r5, [r3, #0] - 8006636: 2f6f cmp r7, #111 ; 0x6f - 8006638: bf0c ite eq - 800663a: 2308 moveq r3, #8 - 800663c: 230a movne r3, #10 - 800663e: 4852 ldr r0, [pc, #328] ; (8006788 <_printf_i+0x244>) - 8006640: 2100 movs r1, #0 - 8006642: f884 1043 strb.w r1, [r4, #67] ; 0x43 - 8006646: 6866 ldr r6, [r4, #4] - 8006648: 2e00 cmp r6, #0 - 800664a: bfa8 it ge - 800664c: 6821 ldrge r1, [r4, #0] - 800664e: 60a6 str r6, [r4, #8] - 8006650: bfa4 itt ge - 8006652: f021 0104 bicge.w r1, r1, #4 - 8006656: 6021 strge r1, [r4, #0] - 8006658: b90d cbnz r5, 800665e <_printf_i+0x11a> - 800665a: 2e00 cmp r6, #0 - 800665c: d04d beq.n 80066fa <_printf_i+0x1b6> - 800665e: 4616 mov r6, r2 - 8006660: fbb5 f1f3 udiv r1, r5, r3 - 8006664: fb03 5711 mls r7, r3, r1, r5 - 8006668: 5dc7 ldrb r7, [r0, r7] - 800666a: f806 7d01 strb.w r7, [r6, #-1]! - 800666e: 462f mov r7, r5 - 8006670: 42bb cmp r3, r7 - 8006672: 460d mov r5, r1 - 8006674: d9f4 bls.n 8006660 <_printf_i+0x11c> - 8006676: 2b08 cmp r3, #8 - 8006678: d10b bne.n 8006692 <_printf_i+0x14e> - 800667a: 6823 ldr r3, [r4, #0] - 800667c: 07df lsls r7, r3, #31 - 800667e: d508 bpl.n 8006692 <_printf_i+0x14e> - 8006680: 6923 ldr r3, [r4, #16] - 8006682: 6861 ldr r1, [r4, #4] - 8006684: 4299 cmp r1, r3 - 8006686: bfde ittt le - 8006688: 2330 movle r3, #48 ; 0x30 - 800668a: f806 3c01 strble.w r3, [r6, #-1] - 800668e: f106 36ff addle.w r6, r6, #4294967295 - 8006692: 1b92 subs r2, r2, r6 - 8006694: 6122 str r2, [r4, #16] - 8006696: 464b mov r3, r9 - 8006698: 4621 mov r1, r4 - 800669a: 4640 mov r0, r8 - 800669c: f8cd a000 str.w sl, [sp] - 80066a0: aa03 add r2, sp, #12 - 80066a2: f7ff fedf bl 8006464 <_printf_common> - 80066a6: 3001 adds r0, #1 - 80066a8: d14c bne.n 8006744 <_printf_i+0x200> - 80066aa: f04f 30ff mov.w r0, #4294967295 - 80066ae: b004 add sp, #16 - 80066b0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 80066b4: 4834 ldr r0, [pc, #208] ; (8006788 <_printf_i+0x244>) - 80066b6: f884 7045 strb.w r7, [r4, #69] ; 0x45 - 80066ba: 680e ldr r6, [r1, #0] - 80066bc: 6823 ldr r3, [r4, #0] - 80066be: f856 5b04 ldr.w r5, [r6], #4 - 80066c2: 061f lsls r7, r3, #24 - 80066c4: 600e str r6, [r1, #0] - 80066c6: d514 bpl.n 80066f2 <_printf_i+0x1ae> - 80066c8: 07d9 lsls r1, r3, #31 - 80066ca: bf44 itt mi - 80066cc: f043 0320 orrmi.w r3, r3, #32 - 80066d0: 6023 strmi r3, [r4, #0] - 80066d2: b91d cbnz r5, 80066dc <_printf_i+0x198> - 80066d4: 6823 ldr r3, [r4, #0] - 80066d6: f023 0320 bic.w r3, r3, #32 - 80066da: 6023 str r3, [r4, #0] - 80066dc: 2310 movs r3, #16 - 80066de: e7af b.n 8006640 <_printf_i+0xfc> - 80066e0: 6823 ldr r3, [r4, #0] - 80066e2: f043 0320 orr.w r3, r3, #32 - 80066e6: 6023 str r3, [r4, #0] - 80066e8: 2378 movs r3, #120 ; 0x78 - 80066ea: 4828 ldr r0, [pc, #160] ; (800678c <_printf_i+0x248>) - 80066ec: f884 3045 strb.w r3, [r4, #69] ; 0x45 - 80066f0: e7e3 b.n 80066ba <_printf_i+0x176> - 80066f2: 065e lsls r6, r3, #25 - 80066f4: bf48 it mi - 80066f6: b2ad uxthmi r5, r5 - 80066f8: e7e6 b.n 80066c8 <_printf_i+0x184> - 80066fa: 4616 mov r6, r2 - 80066fc: e7bb b.n 8006676 <_printf_i+0x132> - 80066fe: 680b ldr r3, [r1, #0] - 8006700: 6826 ldr r6, [r4, #0] - 8006702: 1d1d adds r5, r3, #4 - 8006704: 6960 ldr r0, [r4, #20] - 8006706: 600d str r5, [r1, #0] - 8006708: 0635 lsls r5, r6, #24 - 800670a: 681b ldr r3, [r3, #0] - 800670c: d501 bpl.n 8006712 <_printf_i+0x1ce> - 800670e: 6018 str r0, [r3, #0] - 8006710: e002 b.n 8006718 <_printf_i+0x1d4> - 8006712: 0671 lsls r1, r6, #25 - 8006714: d5fb bpl.n 800670e <_printf_i+0x1ca> - 8006716: 8018 strh r0, [r3, #0] - 8006718: 2300 movs r3, #0 - 800671a: 4616 mov r6, r2 - 800671c: 6123 str r3, [r4, #16] - 800671e: e7ba b.n 8006696 <_printf_i+0x152> - 8006720: 680b ldr r3, [r1, #0] - 8006722: 1d1a adds r2, r3, #4 - 8006724: 600a str r2, [r1, #0] - 8006726: 681e ldr r6, [r3, #0] - 8006728: 2100 movs r1, #0 - 800672a: 4630 mov r0, r6 - 800672c: 6862 ldr r2, [r4, #4] - 800672e: f000 f82f bl 8006790 - 8006732: b108 cbz r0, 8006738 <_printf_i+0x1f4> - 8006734: 1b80 subs r0, r0, r6 - 8006736: 6060 str r0, [r4, #4] - 8006738: 6863 ldr r3, [r4, #4] - 800673a: 6123 str r3, [r4, #16] - 800673c: 2300 movs r3, #0 - 800673e: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 8006742: e7a8 b.n 8006696 <_printf_i+0x152> - 8006744: 4632 mov r2, r6 - 8006746: 4649 mov r1, r9 - 8006748: 4640 mov r0, r8 - 800674a: 6923 ldr r3, [r4, #16] - 800674c: 47d0 blx sl - 800674e: 3001 adds r0, #1 - 8006750: d0ab beq.n 80066aa <_printf_i+0x166> - 8006752: 6823 ldr r3, [r4, #0] - 8006754: 079b lsls r3, r3, #30 - 8006756: d413 bmi.n 8006780 <_printf_i+0x23c> - 8006758: 68e0 ldr r0, [r4, #12] - 800675a: 9b03 ldr r3, [sp, #12] - 800675c: 4298 cmp r0, r3 - 800675e: bfb8 it lt - 8006760: 4618 movlt r0, r3 - 8006762: e7a4 b.n 80066ae <_printf_i+0x16a> - 8006764: 2301 movs r3, #1 - 8006766: 4632 mov r2, r6 - 8006768: 4649 mov r1, r9 - 800676a: 4640 mov r0, r8 - 800676c: 47d0 blx sl - 800676e: 3001 adds r0, #1 - 8006770: d09b beq.n 80066aa <_printf_i+0x166> - 8006772: 3501 adds r5, #1 - 8006774: 68e3 ldr r3, [r4, #12] - 8006776: 9903 ldr r1, [sp, #12] - 8006778: 1a5b subs r3, r3, r1 - 800677a: 42ab cmp r3, r5 - 800677c: dcf2 bgt.n 8006764 <_printf_i+0x220> - 800677e: e7eb b.n 8006758 <_printf_i+0x214> - 8006780: 2500 movs r5, #0 - 8006782: f104 0619 add.w r6, r4, #25 - 8006786: e7f5 b.n 8006774 <_printf_i+0x230> - 8006788: 0800756d .word 0x0800756d - 800678c: 0800757e .word 0x0800757e +08006548 <_printf_i>: + 8006548: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} + 800654c: 460c mov r4, r1 + 800654e: 7e27 ldrb r7, [r4, #24] + 8006550: 4691 mov r9, r2 + 8006552: 2f78 cmp r7, #120 ; 0x78 + 8006554: 4680 mov r8, r0 + 8006556: 469a mov sl, r3 + 8006558: 990c ldr r1, [sp, #48] ; 0x30 + 800655a: f104 0243 add.w r2, r4, #67 ; 0x43 + 800655e: d807 bhi.n 8006570 <_printf_i+0x28> + 8006560: 2f62 cmp r7, #98 ; 0x62 + 8006562: d80a bhi.n 800657a <_printf_i+0x32> + 8006564: 2f00 cmp r7, #0 + 8006566: f000 80d9 beq.w 800671c <_printf_i+0x1d4> + 800656a: 2f58 cmp r7, #88 ; 0x58 + 800656c: f000 80a4 beq.w 80066b8 <_printf_i+0x170> + 8006570: f104 0642 add.w r6, r4, #66 ; 0x42 + 8006574: f884 7042 strb.w r7, [r4, #66] ; 0x42 + 8006578: e03a b.n 80065f0 <_printf_i+0xa8> + 800657a: f1a7 0363 sub.w r3, r7, #99 ; 0x63 + 800657e: 2b15 cmp r3, #21 + 8006580: d8f6 bhi.n 8006570 <_printf_i+0x28> + 8006582: a001 add r0, pc, #4 ; (adr r0, 8006588 <_printf_i+0x40>) + 8006584: f850 f023 ldr.w pc, [r0, r3, lsl #2] + 8006588: 080065e1 .word 0x080065e1 + 800658c: 080065f5 .word 0x080065f5 + 8006590: 08006571 .word 0x08006571 + 8006594: 08006571 .word 0x08006571 + 8006598: 08006571 .word 0x08006571 + 800659c: 08006571 .word 0x08006571 + 80065a0: 080065f5 .word 0x080065f5 + 80065a4: 08006571 .word 0x08006571 + 80065a8: 08006571 .word 0x08006571 + 80065ac: 08006571 .word 0x08006571 + 80065b0: 08006571 .word 0x08006571 + 80065b4: 08006703 .word 0x08006703 + 80065b8: 08006625 .word 0x08006625 + 80065bc: 080066e5 .word 0x080066e5 + 80065c0: 08006571 .word 0x08006571 + 80065c4: 08006571 .word 0x08006571 + 80065c8: 08006725 .word 0x08006725 + 80065cc: 08006571 .word 0x08006571 + 80065d0: 08006625 .word 0x08006625 + 80065d4: 08006571 .word 0x08006571 + 80065d8: 08006571 .word 0x08006571 + 80065dc: 080066ed .word 0x080066ed + 80065e0: 680b ldr r3, [r1, #0] + 80065e2: f104 0642 add.w r6, r4, #66 ; 0x42 + 80065e6: 1d1a adds r2, r3, #4 + 80065e8: 681b ldr r3, [r3, #0] + 80065ea: 600a str r2, [r1, #0] + 80065ec: f884 3042 strb.w r3, [r4, #66] ; 0x42 + 80065f0: 2301 movs r3, #1 + 80065f2: e0a4 b.n 800673e <_printf_i+0x1f6> + 80065f4: 6825 ldr r5, [r4, #0] + 80065f6: 6808 ldr r0, [r1, #0] + 80065f8: 062e lsls r6, r5, #24 + 80065fa: f100 0304 add.w r3, r0, #4 + 80065fe: d50a bpl.n 8006616 <_printf_i+0xce> + 8006600: 6805 ldr r5, [r0, #0] + 8006602: 600b str r3, [r1, #0] + 8006604: 2d00 cmp r5, #0 + 8006606: da03 bge.n 8006610 <_printf_i+0xc8> + 8006608: 232d movs r3, #45 ; 0x2d + 800660a: 426d negs r5, r5 + 800660c: f884 3043 strb.w r3, [r4, #67] ; 0x43 + 8006610: 230a movs r3, #10 + 8006612: 485e ldr r0, [pc, #376] ; (800678c <_printf_i+0x244>) + 8006614: e019 b.n 800664a <_printf_i+0x102> + 8006616: f015 0f40 tst.w r5, #64 ; 0x40 + 800661a: 6805 ldr r5, [r0, #0] + 800661c: 600b str r3, [r1, #0] + 800661e: bf18 it ne + 8006620: b22d sxthne r5, r5 + 8006622: e7ef b.n 8006604 <_printf_i+0xbc> + 8006624: 680b ldr r3, [r1, #0] + 8006626: 6825 ldr r5, [r4, #0] + 8006628: 1d18 adds r0, r3, #4 + 800662a: 6008 str r0, [r1, #0] + 800662c: 0628 lsls r0, r5, #24 + 800662e: d501 bpl.n 8006634 <_printf_i+0xec> + 8006630: 681d ldr r5, [r3, #0] + 8006632: e002 b.n 800663a <_printf_i+0xf2> + 8006634: 0669 lsls r1, r5, #25 + 8006636: d5fb bpl.n 8006630 <_printf_i+0xe8> + 8006638: 881d ldrh r5, [r3, #0] + 800663a: 2f6f cmp r7, #111 ; 0x6f + 800663c: bf0c ite eq + 800663e: 2308 moveq r3, #8 + 8006640: 230a movne r3, #10 + 8006642: 4852 ldr r0, [pc, #328] ; (800678c <_printf_i+0x244>) + 8006644: 2100 movs r1, #0 + 8006646: f884 1043 strb.w r1, [r4, #67] ; 0x43 + 800664a: 6866 ldr r6, [r4, #4] + 800664c: 2e00 cmp r6, #0 + 800664e: bfa8 it ge + 8006650: 6821 ldrge r1, [r4, #0] + 8006652: 60a6 str r6, [r4, #8] + 8006654: bfa4 itt ge + 8006656: f021 0104 bicge.w r1, r1, #4 + 800665a: 6021 strge r1, [r4, #0] + 800665c: b90d cbnz r5, 8006662 <_printf_i+0x11a> + 800665e: 2e00 cmp r6, #0 + 8006660: d04d beq.n 80066fe <_printf_i+0x1b6> + 8006662: 4616 mov r6, r2 + 8006664: fbb5 f1f3 udiv r1, r5, r3 + 8006668: fb03 5711 mls r7, r3, r1, r5 + 800666c: 5dc7 ldrb r7, [r0, r7] + 800666e: f806 7d01 strb.w r7, [r6, #-1]! + 8006672: 462f mov r7, r5 + 8006674: 42bb cmp r3, r7 + 8006676: 460d mov r5, r1 + 8006678: d9f4 bls.n 8006664 <_printf_i+0x11c> + 800667a: 2b08 cmp r3, #8 + 800667c: d10b bne.n 8006696 <_printf_i+0x14e> + 800667e: 6823 ldr r3, [r4, #0] + 8006680: 07df lsls r7, r3, #31 + 8006682: d508 bpl.n 8006696 <_printf_i+0x14e> + 8006684: 6923 ldr r3, [r4, #16] + 8006686: 6861 ldr r1, [r4, #4] + 8006688: 4299 cmp r1, r3 + 800668a: bfde ittt le + 800668c: 2330 movle r3, #48 ; 0x30 + 800668e: f806 3c01 strble.w r3, [r6, #-1] + 8006692: f106 36ff addle.w r6, r6, #4294967295 + 8006696: 1b92 subs r2, r2, r6 + 8006698: 6122 str r2, [r4, #16] + 800669a: 464b mov r3, r9 + 800669c: 4621 mov r1, r4 + 800669e: 4640 mov r0, r8 + 80066a0: f8cd a000 str.w sl, [sp] + 80066a4: aa03 add r2, sp, #12 + 80066a6: f7ff fedf bl 8006468 <_printf_common> + 80066aa: 3001 adds r0, #1 + 80066ac: d14c bne.n 8006748 <_printf_i+0x200> + 80066ae: f04f 30ff mov.w r0, #4294967295 + 80066b2: b004 add sp, #16 + 80066b4: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 80066b8: 4834 ldr r0, [pc, #208] ; (800678c <_printf_i+0x244>) + 80066ba: f884 7045 strb.w r7, [r4, #69] ; 0x45 + 80066be: 680e ldr r6, [r1, #0] + 80066c0: 6823 ldr r3, [r4, #0] + 80066c2: f856 5b04 ldr.w r5, [r6], #4 + 80066c6: 061f lsls r7, r3, #24 + 80066c8: 600e str r6, [r1, #0] + 80066ca: d514 bpl.n 80066f6 <_printf_i+0x1ae> + 80066cc: 07d9 lsls r1, r3, #31 + 80066ce: bf44 itt mi + 80066d0: f043 0320 orrmi.w r3, r3, #32 + 80066d4: 6023 strmi r3, [r4, #0] + 80066d6: b91d cbnz r5, 80066e0 <_printf_i+0x198> + 80066d8: 6823 ldr r3, [r4, #0] + 80066da: f023 0320 bic.w r3, r3, #32 + 80066de: 6023 str r3, [r4, #0] + 80066e0: 2310 movs r3, #16 + 80066e2: e7af b.n 8006644 <_printf_i+0xfc> + 80066e4: 6823 ldr r3, [r4, #0] + 80066e6: f043 0320 orr.w r3, r3, #32 + 80066ea: 6023 str r3, [r4, #0] + 80066ec: 2378 movs r3, #120 ; 0x78 + 80066ee: 4828 ldr r0, [pc, #160] ; (8006790 <_printf_i+0x248>) + 80066f0: f884 3045 strb.w r3, [r4, #69] ; 0x45 + 80066f4: e7e3 b.n 80066be <_printf_i+0x176> + 80066f6: 065e lsls r6, r3, #25 + 80066f8: bf48 it mi + 80066fa: b2ad uxthmi r5, r5 + 80066fc: e7e6 b.n 80066cc <_printf_i+0x184> + 80066fe: 4616 mov r6, r2 + 8006700: e7bb b.n 800667a <_printf_i+0x132> + 8006702: 680b ldr r3, [r1, #0] + 8006704: 6826 ldr r6, [r4, #0] + 8006706: 1d1d adds r5, r3, #4 + 8006708: 6960 ldr r0, [r4, #20] + 800670a: 600d str r5, [r1, #0] + 800670c: 0635 lsls r5, r6, #24 + 800670e: 681b ldr r3, [r3, #0] + 8006710: d501 bpl.n 8006716 <_printf_i+0x1ce> + 8006712: 6018 str r0, [r3, #0] + 8006714: e002 b.n 800671c <_printf_i+0x1d4> + 8006716: 0671 lsls r1, r6, #25 + 8006718: d5fb bpl.n 8006712 <_printf_i+0x1ca> + 800671a: 8018 strh r0, [r3, #0] + 800671c: 2300 movs r3, #0 + 800671e: 4616 mov r6, r2 + 8006720: 6123 str r3, [r4, #16] + 8006722: e7ba b.n 800669a <_printf_i+0x152> + 8006724: 680b ldr r3, [r1, #0] + 8006726: 1d1a adds r2, r3, #4 + 8006728: 600a str r2, [r1, #0] + 800672a: 681e ldr r6, [r3, #0] + 800672c: 2100 movs r1, #0 + 800672e: 4630 mov r0, r6 + 8006730: 6862 ldr r2, [r4, #4] + 8006732: f000 f82f bl 8006794 + 8006736: b108 cbz r0, 800673c <_printf_i+0x1f4> + 8006738: 1b80 subs r0, r0, r6 + 800673a: 6060 str r0, [r4, #4] + 800673c: 6863 ldr r3, [r4, #4] + 800673e: 6123 str r3, [r4, #16] + 8006740: 2300 movs r3, #0 + 8006742: f884 3043 strb.w r3, [r4, #67] ; 0x43 + 8006746: e7a8 b.n 800669a <_printf_i+0x152> + 8006748: 4632 mov r2, r6 + 800674a: 4649 mov r1, r9 + 800674c: 4640 mov r0, r8 + 800674e: 6923 ldr r3, [r4, #16] + 8006750: 47d0 blx sl + 8006752: 3001 adds r0, #1 + 8006754: d0ab beq.n 80066ae <_printf_i+0x166> + 8006756: 6823 ldr r3, [r4, #0] + 8006758: 079b lsls r3, r3, #30 + 800675a: d413 bmi.n 8006784 <_printf_i+0x23c> + 800675c: 68e0 ldr r0, [r4, #12] + 800675e: 9b03 ldr r3, [sp, #12] + 8006760: 4298 cmp r0, r3 + 8006762: bfb8 it lt + 8006764: 4618 movlt r0, r3 + 8006766: e7a4 b.n 80066b2 <_printf_i+0x16a> + 8006768: 2301 movs r3, #1 + 800676a: 4632 mov r2, r6 + 800676c: 4649 mov r1, r9 + 800676e: 4640 mov r0, r8 + 8006770: 47d0 blx sl + 8006772: 3001 adds r0, #1 + 8006774: d09b beq.n 80066ae <_printf_i+0x166> + 8006776: 3501 adds r5, #1 + 8006778: 68e3 ldr r3, [r4, #12] + 800677a: 9903 ldr r1, [sp, #12] + 800677c: 1a5b subs r3, r3, r1 + 800677e: 42ab cmp r3, r5 + 8006780: dcf2 bgt.n 8006768 <_printf_i+0x220> + 8006782: e7eb b.n 800675c <_printf_i+0x214> + 8006784: 2500 movs r5, #0 + 8006786: f104 0619 add.w r6, r4, #25 + 800678a: e7f5 b.n 8006778 <_printf_i+0x230> + 800678c: 08007575 .word 0x08007575 + 8006790: 08007586 .word 0x08007586 -08006790 : - 8006790: 4603 mov r3, r0 - 8006792: b510 push {r4, lr} - 8006794: b2c9 uxtb r1, r1 - 8006796: 4402 add r2, r0 - 8006798: 4293 cmp r3, r2 - 800679a: 4618 mov r0, r3 - 800679c: d101 bne.n 80067a2 - 800679e: 2000 movs r0, #0 - 80067a0: e003 b.n 80067aa - 80067a2: 7804 ldrb r4, [r0, #0] - 80067a4: 3301 adds r3, #1 - 80067a6: 428c cmp r4, r1 - 80067a8: d1f6 bne.n 8006798 - 80067aa: bd10 pop {r4, pc} +08006794 : + 8006794: 4603 mov r3, r0 + 8006796: b510 push {r4, lr} + 8006798: b2c9 uxtb r1, r1 + 800679a: 4402 add r2, r0 + 800679c: 4293 cmp r3, r2 + 800679e: 4618 mov r0, r3 + 80067a0: d101 bne.n 80067a6 + 80067a2: 2000 movs r0, #0 + 80067a4: e003 b.n 80067ae + 80067a6: 7804 ldrb r4, [r0, #0] + 80067a8: 3301 adds r3, #1 + 80067aa: 428c cmp r4, r1 + 80067ac: d1f6 bne.n 800679c + 80067ae: bd10 pop {r4, pc} -080067ac : - 80067ac: 440a add r2, r1 - 80067ae: 4291 cmp r1, r2 - 80067b0: f100 33ff add.w r3, r0, #4294967295 - 80067b4: d100 bne.n 80067b8 - 80067b6: 4770 bx lr - 80067b8: b510 push {r4, lr} - 80067ba: f811 4b01 ldrb.w r4, [r1], #1 - 80067be: 4291 cmp r1, r2 - 80067c0: f803 4f01 strb.w r4, [r3, #1]! - 80067c4: d1f9 bne.n 80067ba - 80067c6: bd10 pop {r4, pc} +080067b0 : + 80067b0: 440a add r2, r1 + 80067b2: 4291 cmp r1, r2 + 80067b4: f100 33ff add.w r3, r0, #4294967295 + 80067b8: d100 bne.n 80067bc + 80067ba: 4770 bx lr + 80067bc: b510 push {r4, lr} + 80067be: f811 4b01 ldrb.w r4, [r1], #1 + 80067c2: 4291 cmp r1, r2 + 80067c4: f803 4f01 strb.w r4, [r3, #1]! + 80067c8: d1f9 bne.n 80067be + 80067ca: bd10 pop {r4, pc} -080067c8 : - 80067c8: 4288 cmp r0, r1 - 80067ca: b510 push {r4, lr} - 80067cc: eb01 0402 add.w r4, r1, r2 - 80067d0: d902 bls.n 80067d8 - 80067d2: 4284 cmp r4, r0 - 80067d4: 4623 mov r3, r4 - 80067d6: d807 bhi.n 80067e8 - 80067d8: 1e43 subs r3, r0, #1 - 80067da: 42a1 cmp r1, r4 - 80067dc: d008 beq.n 80067f0 - 80067de: f811 2b01 ldrb.w r2, [r1], #1 - 80067e2: f803 2f01 strb.w r2, [r3, #1]! - 80067e6: e7f8 b.n 80067da - 80067e8: 4601 mov r1, r0 - 80067ea: 4402 add r2, r0 - 80067ec: 428a cmp r2, r1 - 80067ee: d100 bne.n 80067f2 - 80067f0: bd10 pop {r4, pc} - 80067f2: f813 4d01 ldrb.w r4, [r3, #-1]! - 80067f6: f802 4d01 strb.w r4, [r2, #-1]! - 80067fa: e7f7 b.n 80067ec +080067cc : + 80067cc: 4288 cmp r0, r1 + 80067ce: b510 push {r4, lr} + 80067d0: eb01 0402 add.w r4, r1, r2 + 80067d4: d902 bls.n 80067dc + 80067d6: 4284 cmp r4, r0 + 80067d8: 4623 mov r3, r4 + 80067da: d807 bhi.n 80067ec + 80067dc: 1e43 subs r3, r0, #1 + 80067de: 42a1 cmp r1, r4 + 80067e0: d008 beq.n 80067f4 + 80067e2: f811 2b01 ldrb.w r2, [r1], #1 + 80067e6: f803 2f01 strb.w r2, [r3, #1]! + 80067ea: e7f8 b.n 80067de + 80067ec: 4601 mov r1, r0 + 80067ee: 4402 add r2, r0 + 80067f0: 428a cmp r2, r1 + 80067f2: d100 bne.n 80067f6 + 80067f4: bd10 pop {r4, pc} + 80067f6: f813 4d01 ldrb.w r4, [r3, #-1]! + 80067fa: f802 4d01 strb.w r4, [r2, #-1]! + 80067fe: e7f7 b.n 80067f0 -080067fc <_free_r>: - 80067fc: b538 push {r3, r4, r5, lr} - 80067fe: 4605 mov r5, r0 - 8006800: 2900 cmp r1, #0 - 8006802: d043 beq.n 800688c <_free_r+0x90> - 8006804: f851 3c04 ldr.w r3, [r1, #-4] - 8006808: 1f0c subs r4, r1, #4 - 800680a: 2b00 cmp r3, #0 - 800680c: bfb8 it lt - 800680e: 18e4 addlt r4, r4, r3 - 8006810: f000 f8d0 bl 80069b4 <__malloc_lock> - 8006814: 4a1e ldr r2, [pc, #120] ; (8006890 <_free_r+0x94>) - 8006816: 6813 ldr r3, [r2, #0] - 8006818: 4610 mov r0, r2 - 800681a: b933 cbnz r3, 800682a <_free_r+0x2e> - 800681c: 6063 str r3, [r4, #4] - 800681e: 6014 str r4, [r2, #0] - 8006820: 4628 mov r0, r5 - 8006822: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 8006826: f000 b8cb b.w 80069c0 <__malloc_unlock> - 800682a: 42a3 cmp r3, r4 - 800682c: d90a bls.n 8006844 <_free_r+0x48> - 800682e: 6821 ldr r1, [r4, #0] - 8006830: 1862 adds r2, r4, r1 - 8006832: 4293 cmp r3, r2 - 8006834: bf01 itttt eq - 8006836: 681a ldreq r2, [r3, #0] - 8006838: 685b ldreq r3, [r3, #4] - 800683a: 1852 addeq r2, r2, r1 - 800683c: 6022 streq r2, [r4, #0] - 800683e: 6063 str r3, [r4, #4] - 8006840: 6004 str r4, [r0, #0] - 8006842: e7ed b.n 8006820 <_free_r+0x24> - 8006844: 461a mov r2, r3 - 8006846: 685b ldr r3, [r3, #4] - 8006848: b10b cbz r3, 800684e <_free_r+0x52> - 800684a: 42a3 cmp r3, r4 - 800684c: d9fa bls.n 8006844 <_free_r+0x48> - 800684e: 6811 ldr r1, [r2, #0] - 8006850: 1850 adds r0, r2, r1 - 8006852: 42a0 cmp r0, r4 - 8006854: d10b bne.n 800686e <_free_r+0x72> - 8006856: 6820 ldr r0, [r4, #0] - 8006858: 4401 add r1, r0 - 800685a: 1850 adds r0, r2, r1 - 800685c: 4283 cmp r3, r0 - 800685e: 6011 str r1, [r2, #0] - 8006860: d1de bne.n 8006820 <_free_r+0x24> - 8006862: 6818 ldr r0, [r3, #0] - 8006864: 685b ldr r3, [r3, #4] - 8006866: 4401 add r1, r0 - 8006868: 6011 str r1, [r2, #0] - 800686a: 6053 str r3, [r2, #4] - 800686c: e7d8 b.n 8006820 <_free_r+0x24> - 800686e: d902 bls.n 8006876 <_free_r+0x7a> - 8006870: 230c movs r3, #12 - 8006872: 602b str r3, [r5, #0] - 8006874: e7d4 b.n 8006820 <_free_r+0x24> - 8006876: 6820 ldr r0, [r4, #0] - 8006878: 1821 adds r1, r4, r0 - 800687a: 428b cmp r3, r1 - 800687c: bf01 itttt eq - 800687e: 6819 ldreq r1, [r3, #0] - 8006880: 685b ldreq r3, [r3, #4] - 8006882: 1809 addeq r1, r1, r0 - 8006884: 6021 streq r1, [r4, #0] - 8006886: 6063 str r3, [r4, #4] - 8006888: 6054 str r4, [r2, #4] - 800688a: e7c9 b.n 8006820 <_free_r+0x24> - 800688c: bd38 pop {r3, r4, r5, pc} - 800688e: bf00 nop - 8006890: 200000dc .word 0x200000dc +08006800 <_free_r>: + 8006800: b538 push {r3, r4, r5, lr} + 8006802: 4605 mov r5, r0 + 8006804: 2900 cmp r1, #0 + 8006806: d043 beq.n 8006890 <_free_r+0x90> + 8006808: f851 3c04 ldr.w r3, [r1, #-4] + 800680c: 1f0c subs r4, r1, #4 + 800680e: 2b00 cmp r3, #0 + 8006810: bfb8 it lt + 8006812: 18e4 addlt r4, r4, r3 + 8006814: f000 f8d0 bl 80069b8 <__malloc_lock> + 8006818: 4a1e ldr r2, [pc, #120] ; (8006894 <_free_r+0x94>) + 800681a: 6813 ldr r3, [r2, #0] + 800681c: 4610 mov r0, r2 + 800681e: b933 cbnz r3, 800682e <_free_r+0x2e> + 8006820: 6063 str r3, [r4, #4] + 8006822: 6014 str r4, [r2, #0] + 8006824: 4628 mov r0, r5 + 8006826: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 800682a: f000 b8cb b.w 80069c4 <__malloc_unlock> + 800682e: 42a3 cmp r3, r4 + 8006830: d90a bls.n 8006848 <_free_r+0x48> + 8006832: 6821 ldr r1, [r4, #0] + 8006834: 1862 adds r2, r4, r1 + 8006836: 4293 cmp r3, r2 + 8006838: bf01 itttt eq + 800683a: 681a ldreq r2, [r3, #0] + 800683c: 685b ldreq r3, [r3, #4] + 800683e: 1852 addeq r2, r2, r1 + 8006840: 6022 streq r2, [r4, #0] + 8006842: 6063 str r3, [r4, #4] + 8006844: 6004 str r4, [r0, #0] + 8006846: e7ed b.n 8006824 <_free_r+0x24> + 8006848: 461a mov r2, r3 + 800684a: 685b ldr r3, [r3, #4] + 800684c: b10b cbz r3, 8006852 <_free_r+0x52> + 800684e: 42a3 cmp r3, r4 + 8006850: d9fa bls.n 8006848 <_free_r+0x48> + 8006852: 6811 ldr r1, [r2, #0] + 8006854: 1850 adds r0, r2, r1 + 8006856: 42a0 cmp r0, r4 + 8006858: d10b bne.n 8006872 <_free_r+0x72> + 800685a: 6820 ldr r0, [r4, #0] + 800685c: 4401 add r1, r0 + 800685e: 1850 adds r0, r2, r1 + 8006860: 4283 cmp r3, r0 + 8006862: 6011 str r1, [r2, #0] + 8006864: d1de bne.n 8006824 <_free_r+0x24> + 8006866: 6818 ldr r0, [r3, #0] + 8006868: 685b ldr r3, [r3, #4] + 800686a: 4401 add r1, r0 + 800686c: 6011 str r1, [r2, #0] + 800686e: 6053 str r3, [r2, #4] + 8006870: e7d8 b.n 8006824 <_free_r+0x24> + 8006872: d902 bls.n 800687a <_free_r+0x7a> + 8006874: 230c movs r3, #12 + 8006876: 602b str r3, [r5, #0] + 8006878: e7d4 b.n 8006824 <_free_r+0x24> + 800687a: 6820 ldr r0, [r4, #0] + 800687c: 1821 adds r1, r4, r0 + 800687e: 428b cmp r3, r1 + 8006880: bf01 itttt eq + 8006882: 6819 ldreq r1, [r3, #0] + 8006884: 685b ldreq r3, [r3, #4] + 8006886: 1809 addeq r1, r1, r0 + 8006888: 6021 streq r1, [r4, #0] + 800688a: 6063 str r3, [r4, #4] + 800688c: 6054 str r4, [r2, #4] + 800688e: e7c9 b.n 8006824 <_free_r+0x24> + 8006890: bd38 pop {r3, r4, r5, pc} + 8006892: bf00 nop + 8006894: 200000dc .word 0x200000dc -08006894 <_malloc_r>: - 8006894: b5f8 push {r3, r4, r5, r6, r7, lr} - 8006896: 1ccd adds r5, r1, #3 - 8006898: f025 0503 bic.w r5, r5, #3 - 800689c: 3508 adds r5, #8 - 800689e: 2d0c cmp r5, #12 - 80068a0: bf38 it cc - 80068a2: 250c movcc r5, #12 - 80068a4: 2d00 cmp r5, #0 - 80068a6: 4606 mov r6, r0 - 80068a8: db01 blt.n 80068ae <_malloc_r+0x1a> - 80068aa: 42a9 cmp r1, r5 - 80068ac: d903 bls.n 80068b6 <_malloc_r+0x22> - 80068ae: 230c movs r3, #12 - 80068b0: 6033 str r3, [r6, #0] - 80068b2: 2000 movs r0, #0 - 80068b4: bdf8 pop {r3, r4, r5, r6, r7, pc} - 80068b6: f000 f87d bl 80069b4 <__malloc_lock> - 80068ba: 4921 ldr r1, [pc, #132] ; (8006940 <_malloc_r+0xac>) - 80068bc: 680a ldr r2, [r1, #0] - 80068be: 4614 mov r4, r2 - 80068c0: b99c cbnz r4, 80068ea <_malloc_r+0x56> - 80068c2: 4f20 ldr r7, [pc, #128] ; (8006944 <_malloc_r+0xb0>) - 80068c4: 683b ldr r3, [r7, #0] - 80068c6: b923 cbnz r3, 80068d2 <_malloc_r+0x3e> - 80068c8: 4621 mov r1, r4 - 80068ca: 4630 mov r0, r6 - 80068cc: f000 f862 bl 8006994 <_sbrk_r> - 80068d0: 6038 str r0, [r7, #0] - 80068d2: 4629 mov r1, r5 - 80068d4: 4630 mov r0, r6 - 80068d6: f000 f85d bl 8006994 <_sbrk_r> - 80068da: 1c43 adds r3, r0, #1 - 80068dc: d123 bne.n 8006926 <_malloc_r+0x92> - 80068de: 230c movs r3, #12 - 80068e0: 4630 mov r0, r6 - 80068e2: 6033 str r3, [r6, #0] - 80068e4: f000 f86c bl 80069c0 <__malloc_unlock> - 80068e8: e7e3 b.n 80068b2 <_malloc_r+0x1e> - 80068ea: 6823 ldr r3, [r4, #0] - 80068ec: 1b5b subs r3, r3, r5 - 80068ee: d417 bmi.n 8006920 <_malloc_r+0x8c> - 80068f0: 2b0b cmp r3, #11 - 80068f2: d903 bls.n 80068fc <_malloc_r+0x68> - 80068f4: 6023 str r3, [r4, #0] - 80068f6: 441c add r4, r3 - 80068f8: 6025 str r5, [r4, #0] - 80068fa: e004 b.n 8006906 <_malloc_r+0x72> - 80068fc: 6863 ldr r3, [r4, #4] - 80068fe: 42a2 cmp r2, r4 - 8006900: bf0c ite eq - 8006902: 600b streq r3, [r1, #0] - 8006904: 6053 strne r3, [r2, #4] - 8006906: 4630 mov r0, r6 - 8006908: f000 f85a bl 80069c0 <__malloc_unlock> - 800690c: f104 000b add.w r0, r4, #11 - 8006910: 1d23 adds r3, r4, #4 - 8006912: f020 0007 bic.w r0, r0, #7 - 8006916: 1ac2 subs r2, r0, r3 - 8006918: d0cc beq.n 80068b4 <_malloc_r+0x20> - 800691a: 1a1b subs r3, r3, r0 - 800691c: 50a3 str r3, [r4, r2] - 800691e: e7c9 b.n 80068b4 <_malloc_r+0x20> - 8006920: 4622 mov r2, r4 - 8006922: 6864 ldr r4, [r4, #4] - 8006924: e7cc b.n 80068c0 <_malloc_r+0x2c> - 8006926: 1cc4 adds r4, r0, #3 - 8006928: f024 0403 bic.w r4, r4, #3 - 800692c: 42a0 cmp r0, r4 - 800692e: d0e3 beq.n 80068f8 <_malloc_r+0x64> - 8006930: 1a21 subs r1, r4, r0 - 8006932: 4630 mov r0, r6 - 8006934: f000 f82e bl 8006994 <_sbrk_r> - 8006938: 3001 adds r0, #1 - 800693a: d1dd bne.n 80068f8 <_malloc_r+0x64> - 800693c: e7cf b.n 80068de <_malloc_r+0x4a> - 800693e: bf00 nop - 8006940: 200000dc .word 0x200000dc - 8006944: 200000e0 .word 0x200000e0 +08006898 <_malloc_r>: + 8006898: b5f8 push {r3, r4, r5, r6, r7, lr} + 800689a: 1ccd adds r5, r1, #3 + 800689c: f025 0503 bic.w r5, r5, #3 + 80068a0: 3508 adds r5, #8 + 80068a2: 2d0c cmp r5, #12 + 80068a4: bf38 it cc + 80068a6: 250c movcc r5, #12 + 80068a8: 2d00 cmp r5, #0 + 80068aa: 4606 mov r6, r0 + 80068ac: db01 blt.n 80068b2 <_malloc_r+0x1a> + 80068ae: 42a9 cmp r1, r5 + 80068b0: d903 bls.n 80068ba <_malloc_r+0x22> + 80068b2: 230c movs r3, #12 + 80068b4: 6033 str r3, [r6, #0] + 80068b6: 2000 movs r0, #0 + 80068b8: bdf8 pop {r3, r4, r5, r6, r7, pc} + 80068ba: f000 f87d bl 80069b8 <__malloc_lock> + 80068be: 4921 ldr r1, [pc, #132] ; (8006944 <_malloc_r+0xac>) + 80068c0: 680a ldr r2, [r1, #0] + 80068c2: 4614 mov r4, r2 + 80068c4: b99c cbnz r4, 80068ee <_malloc_r+0x56> + 80068c6: 4f20 ldr r7, [pc, #128] ; (8006948 <_malloc_r+0xb0>) + 80068c8: 683b ldr r3, [r7, #0] + 80068ca: b923 cbnz r3, 80068d6 <_malloc_r+0x3e> + 80068cc: 4621 mov r1, r4 + 80068ce: 4630 mov r0, r6 + 80068d0: f000 f862 bl 8006998 <_sbrk_r> + 80068d4: 6038 str r0, [r7, #0] + 80068d6: 4629 mov r1, r5 + 80068d8: 4630 mov r0, r6 + 80068da: f000 f85d bl 8006998 <_sbrk_r> + 80068de: 1c43 adds r3, r0, #1 + 80068e0: d123 bne.n 800692a <_malloc_r+0x92> + 80068e2: 230c movs r3, #12 + 80068e4: 4630 mov r0, r6 + 80068e6: 6033 str r3, [r6, #0] + 80068e8: f000 f86c bl 80069c4 <__malloc_unlock> + 80068ec: e7e3 b.n 80068b6 <_malloc_r+0x1e> + 80068ee: 6823 ldr r3, [r4, #0] + 80068f0: 1b5b subs r3, r3, r5 + 80068f2: d417 bmi.n 8006924 <_malloc_r+0x8c> + 80068f4: 2b0b cmp r3, #11 + 80068f6: d903 bls.n 8006900 <_malloc_r+0x68> + 80068f8: 6023 str r3, [r4, #0] + 80068fa: 441c add r4, r3 + 80068fc: 6025 str r5, [r4, #0] + 80068fe: e004 b.n 800690a <_malloc_r+0x72> + 8006900: 6863 ldr r3, [r4, #4] + 8006902: 42a2 cmp r2, r4 + 8006904: bf0c ite eq + 8006906: 600b streq r3, [r1, #0] + 8006908: 6053 strne r3, [r2, #4] + 800690a: 4630 mov r0, r6 + 800690c: f000 f85a bl 80069c4 <__malloc_unlock> + 8006910: f104 000b add.w r0, r4, #11 + 8006914: 1d23 adds r3, r4, #4 + 8006916: f020 0007 bic.w r0, r0, #7 + 800691a: 1ac2 subs r2, r0, r3 + 800691c: d0cc beq.n 80068b8 <_malloc_r+0x20> + 800691e: 1a1b subs r3, r3, r0 + 8006920: 50a3 str r3, [r4, r2] + 8006922: e7c9 b.n 80068b8 <_malloc_r+0x20> + 8006924: 4622 mov r2, r4 + 8006926: 6864 ldr r4, [r4, #4] + 8006928: e7cc b.n 80068c4 <_malloc_r+0x2c> + 800692a: 1cc4 adds r4, r0, #3 + 800692c: f024 0403 bic.w r4, r4, #3 + 8006930: 42a0 cmp r0, r4 + 8006932: d0e3 beq.n 80068fc <_malloc_r+0x64> + 8006934: 1a21 subs r1, r4, r0 + 8006936: 4630 mov r0, r6 + 8006938: f000 f82e bl 8006998 <_sbrk_r> + 800693c: 3001 adds r0, #1 + 800693e: d1dd bne.n 80068fc <_malloc_r+0x64> + 8006940: e7cf b.n 80068e2 <_malloc_r+0x4a> + 8006942: bf00 nop + 8006944: 200000dc .word 0x200000dc + 8006948: 200000e0 .word 0x200000e0 -08006948 <_realloc_r>: - 8006948: b5f8 push {r3, r4, r5, r6, r7, lr} - 800694a: 4607 mov r7, r0 - 800694c: 4614 mov r4, r2 - 800694e: 460e mov r6, r1 - 8006950: b921 cbnz r1, 800695c <_realloc_r+0x14> - 8006952: 4611 mov r1, r2 - 8006954: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} - 8006958: f7ff bf9c b.w 8006894 <_malloc_r> - 800695c: b922 cbnz r2, 8006968 <_realloc_r+0x20> - 800695e: f7ff ff4d bl 80067fc <_free_r> - 8006962: 4625 mov r5, r4 - 8006964: 4628 mov r0, r5 - 8006966: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8006968: f000 f830 bl 80069cc <_malloc_usable_size_r> - 800696c: 42a0 cmp r0, r4 - 800696e: d20f bcs.n 8006990 <_realloc_r+0x48> - 8006970: 4621 mov r1, r4 - 8006972: 4638 mov r0, r7 - 8006974: f7ff ff8e bl 8006894 <_malloc_r> - 8006978: 4605 mov r5, r0 - 800697a: 2800 cmp r0, #0 - 800697c: d0f2 beq.n 8006964 <_realloc_r+0x1c> - 800697e: 4631 mov r1, r6 - 8006980: 4622 mov r2, r4 - 8006982: f7ff ff13 bl 80067ac - 8006986: 4631 mov r1, r6 - 8006988: 4638 mov r0, r7 - 800698a: f7ff ff37 bl 80067fc <_free_r> - 800698e: e7e9 b.n 8006964 <_realloc_r+0x1c> - 8006990: 4635 mov r5, r6 - 8006992: e7e7 b.n 8006964 <_realloc_r+0x1c> +0800694c <_realloc_r>: + 800694c: b5f8 push {r3, r4, r5, r6, r7, lr} + 800694e: 4607 mov r7, r0 + 8006950: 4614 mov r4, r2 + 8006952: 460e mov r6, r1 + 8006954: b921 cbnz r1, 8006960 <_realloc_r+0x14> + 8006956: 4611 mov r1, r2 + 8006958: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} + 800695c: f7ff bf9c b.w 8006898 <_malloc_r> + 8006960: b922 cbnz r2, 800696c <_realloc_r+0x20> + 8006962: f7ff ff4d bl 8006800 <_free_r> + 8006966: 4625 mov r5, r4 + 8006968: 4628 mov r0, r5 + 800696a: bdf8 pop {r3, r4, r5, r6, r7, pc} + 800696c: f000 f830 bl 80069d0 <_malloc_usable_size_r> + 8006970: 42a0 cmp r0, r4 + 8006972: d20f bcs.n 8006994 <_realloc_r+0x48> + 8006974: 4621 mov r1, r4 + 8006976: 4638 mov r0, r7 + 8006978: f7ff ff8e bl 8006898 <_malloc_r> + 800697c: 4605 mov r5, r0 + 800697e: 2800 cmp r0, #0 + 8006980: d0f2 beq.n 8006968 <_realloc_r+0x1c> + 8006982: 4631 mov r1, r6 + 8006984: 4622 mov r2, r4 + 8006986: f7ff ff13 bl 80067b0 + 800698a: 4631 mov r1, r6 + 800698c: 4638 mov r0, r7 + 800698e: f7ff ff37 bl 8006800 <_free_r> + 8006992: e7e9 b.n 8006968 <_realloc_r+0x1c> + 8006994: 4635 mov r5, r6 + 8006996: e7e7 b.n 8006968 <_realloc_r+0x1c> -08006994 <_sbrk_r>: - 8006994: b538 push {r3, r4, r5, lr} - 8006996: 2300 movs r3, #0 - 8006998: 4d05 ldr r5, [pc, #20] ; (80069b0 <_sbrk_r+0x1c>) - 800699a: 4604 mov r4, r0 - 800699c: 4608 mov r0, r1 - 800699e: 602b str r3, [r5, #0] - 80069a0: f7f9 fece bl 8000740 <_sbrk> - 80069a4: 1c43 adds r3, r0, #1 - 80069a6: d102 bne.n 80069ae <_sbrk_r+0x1a> - 80069a8: 682b ldr r3, [r5, #0] - 80069aa: b103 cbz r3, 80069ae <_sbrk_r+0x1a> - 80069ac: 6023 str r3, [r4, #0] - 80069ae: bd38 pop {r3, r4, r5, pc} - 80069b0: 20000854 .word 0x20000854 +08006998 <_sbrk_r>: + 8006998: b538 push {r3, r4, r5, lr} + 800699a: 2300 movs r3, #0 + 800699c: 4d05 ldr r5, [pc, #20] ; (80069b4 <_sbrk_r+0x1c>) + 800699e: 4604 mov r4, r0 + 80069a0: 4608 mov r0, r1 + 80069a2: 602b str r3, [r5, #0] + 80069a4: f7f9 fecc bl 8000740 <_sbrk> + 80069a8: 1c43 adds r3, r0, #1 + 80069aa: d102 bne.n 80069b2 <_sbrk_r+0x1a> + 80069ac: 682b ldr r3, [r5, #0] + 80069ae: b103 cbz r3, 80069b2 <_sbrk_r+0x1a> + 80069b0: 6023 str r3, [r4, #0] + 80069b2: bd38 pop {r3, r4, r5, pc} + 80069b4: 20000854 .word 0x20000854 -080069b4 <__malloc_lock>: - 80069b4: 4801 ldr r0, [pc, #4] ; (80069bc <__malloc_lock+0x8>) - 80069b6: f000 b811 b.w 80069dc <__retarget_lock_acquire_recursive> - 80069ba: bf00 nop - 80069bc: 2000085c .word 0x2000085c +080069b8 <__malloc_lock>: + 80069b8: 4801 ldr r0, [pc, #4] ; (80069c0 <__malloc_lock+0x8>) + 80069ba: f000 b811 b.w 80069e0 <__retarget_lock_acquire_recursive> + 80069be: bf00 nop + 80069c0: 2000085c .word 0x2000085c -080069c0 <__malloc_unlock>: - 80069c0: 4801 ldr r0, [pc, #4] ; (80069c8 <__malloc_unlock+0x8>) - 80069c2: f000 b80c b.w 80069de <__retarget_lock_release_recursive> - 80069c6: bf00 nop - 80069c8: 2000085c .word 0x2000085c +080069c4 <__malloc_unlock>: + 80069c4: 4801 ldr r0, [pc, #4] ; (80069cc <__malloc_unlock+0x8>) + 80069c6: f000 b80c b.w 80069e2 <__retarget_lock_release_recursive> + 80069ca: bf00 nop + 80069cc: 2000085c .word 0x2000085c -080069cc <_malloc_usable_size_r>: - 80069cc: f851 3c04 ldr.w r3, [r1, #-4] - 80069d0: 1f18 subs r0, r3, #4 - 80069d2: 2b00 cmp r3, #0 - 80069d4: bfbc itt lt - 80069d6: 580b ldrlt r3, [r1, r0] - 80069d8: 18c0 addlt r0, r0, r3 - 80069da: 4770 bx lr - -080069dc <__retarget_lock_acquire_recursive>: - 80069dc: 4770 bx lr - -080069de <__retarget_lock_release_recursive>: +080069d0 <_malloc_usable_size_r>: + 80069d0: f851 3c04 ldr.w r3, [r1, #-4] + 80069d4: 1f18 subs r0, r3, #4 + 80069d6: 2b00 cmp r3, #0 + 80069d8: bfbc itt lt + 80069da: 580b ldrlt r3, [r1, r0] + 80069dc: 18c0 addlt r0, r0, r3 80069de: 4770 bx lr -080069e0 <_init>: - 80069e0: b5f8 push {r3, r4, r5, r6, r7, lr} - 80069e2: bf00 nop - 80069e4: bcf8 pop {r3, r4, r5, r6, r7} - 80069e6: bc08 pop {r3} - 80069e8: 469e mov lr, r3 - 80069ea: 4770 bx lr +080069e0 <__retarget_lock_acquire_recursive>: + 80069e0: 4770 bx lr -080069ec <_fini>: - 80069ec: b5f8 push {r3, r4, r5, r6, r7, lr} - 80069ee: bf00 nop - 80069f0: bcf8 pop {r3, r4, r5, r6, r7} - 80069f2: bc08 pop {r3} - 80069f4: 469e mov lr, r3 - 80069f6: 4770 bx lr +080069e2 <__retarget_lock_release_recursive>: + 80069e2: 4770 bx lr + +080069e4 <_init>: + 80069e4: b5f8 push {r3, r4, r5, r6, r7, lr} + 80069e6: bf00 nop + 80069e8: bcf8 pop {r3, r4, r5, r6, r7} + 80069ea: bc08 pop {r3} + 80069ec: 469e mov lr, r3 + 80069ee: 4770 bx lr + +080069f0 <_fini>: + 80069f0: b5f8 push {r3, r4, r5, r6, r7, lr} + 80069f2: bf00 nop + 80069f4: bcf8 pop {r3, r4, r5, r6, r7} + 80069f6: bc08 pop {r3} + 80069f8: 469e mov lr, r3 + 80069fa: 4770 bx lr diff --git a/103ze/Debug/103ze_code.map b/103ze/Debug/103ze_code.map index eaf70c8..aadb8d8 100644 --- a/103ze/Debug/103ze_code.map +++ b/103ze/Debug/103ze_code.map @@ -3511,7 +3511,7 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x0000000008000000 g_pfnVectors 0x00000000080001e4 . = ALIGN (0x4) -.text 0x00000000080001e4 0x6814 +.text 0x00000000080001e4 0x6818 0x00000000080001e4 . = ALIGN (0x4) *(.text) .text 0x00000000080001e4 0x40 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o @@ -3837,242 +3837,243 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x0000000008004778 0x1e Middlewares/Third_Party/FatFs/src/ff_gen_drv.o 0x0000000008004778 FATFS_LinkDriver *fill* 0x0000000008004796 0x2 - .text.my_main 0x0000000008004798 0x1f4 mycode/c.o + .text.my_main 0x0000000008004798 0x1f8 mycode/c.o 0x0000000008004798 my_main .text.W25QXX_Read - 0x000000000800498c 0x6c mycode/falsh.o - 0x000000000800498c W25QXX_Read - .text.SELECT 0x00000000080049f8 0x18 mycode/fatfs_sd.o + 0x0000000008004990 0x6c mycode/falsh.o + 0x0000000008004990 W25QXX_Read + .text.SELECT 0x00000000080049fc 0x18 mycode/fatfs_sd.o .text.DESELECT - 0x0000000008004a10 0x18 mycode/fatfs_sd.o + 0x0000000008004a14 0x18 mycode/fatfs_sd.o .text.SPI_TxByte - 0x0000000008004a28 0x34 mycode/fatfs_sd.o + 0x0000000008004a2c 0x34 mycode/fatfs_sd.o .text.SPI_RxByte - 0x0000000008004a5c 0x3c mycode/fatfs_sd.o + 0x0000000008004a60 0x3c mycode/fatfs_sd.o .text.SPI_RxBytePtr - 0x0000000008004a98 0x1c mycode/fatfs_sd.o + 0x0000000008004a9c 0x1c mycode/fatfs_sd.o .text.SD_ReadyWait - 0x0000000008004ab4 0x40 mycode/fatfs_sd.o + 0x0000000008004ab8 0x40 mycode/fatfs_sd.o .text.SD_PowerOn - 0x0000000008004af4 0x98 mycode/fatfs_sd.o + 0x0000000008004af8 0x98 mycode/fatfs_sd.o .text.SD_PowerOff - 0x0000000008004b8c 0x18 mycode/fatfs_sd.o + 0x0000000008004b90 0x18 mycode/fatfs_sd.o .text.SD_CheckPower - 0x0000000008004ba4 0x14 mycode/fatfs_sd.o + 0x0000000008004ba8 0x14 mycode/fatfs_sd.o .text.SD_RxDataBlock - 0x0000000008004bb8 0x78 mycode/fatfs_sd.o + 0x0000000008004bbc 0x78 mycode/fatfs_sd.o .text.SD_TxDataBlock - 0x0000000008004c30 0xa8 mycode/fatfs_sd.o + 0x0000000008004c34 0xa8 mycode/fatfs_sd.o .text.SD_SendCmd - 0x0000000008004cd8 0xa4 mycode/fatfs_sd.o + 0x0000000008004cdc 0xa4 mycode/fatfs_sd.o .text.SD_disk_initialize - 0x0000000008004d7c 0x1e8 mycode/fatfs_sd.o - 0x0000000008004d7c SD_disk_initialize + 0x0000000008004d80 0x1e8 mycode/fatfs_sd.o + 0x0000000008004d80 SD_disk_initialize .text.SD_disk_status - 0x0000000008004f64 0x28 mycode/fatfs_sd.o - 0x0000000008004f64 SD_disk_status + 0x0000000008004f68 0x28 mycode/fatfs_sd.o + 0x0000000008004f68 SD_disk_status .text.SD_disk_read - 0x0000000008004f8c 0xd4 mycode/fatfs_sd.o - 0x0000000008004f8c SD_disk_read + 0x0000000008004f90 0xd4 mycode/fatfs_sd.o + 0x0000000008004f90 SD_disk_read .text.SD_disk_write - 0x0000000008005060 0x108 mycode/fatfs_sd.o - 0x0000000008005060 SD_disk_write + 0x0000000008005064 0x108 mycode/fatfs_sd.o + 0x0000000008005064 SD_disk_write .text.SD_disk_ioctl - 0x0000000008005168 0x264 mycode/fatfs_sd.o - 0x0000000008005168 SD_disk_ioctl + 0x000000000800516c 0x264 mycode/fatfs_sd.o + 0x000000000800516c SD_disk_ioctl .text.LCD_WR_REG - 0x00000000080053cc 0x1c mycode/lcd.o - 0x00000000080053cc LCD_WR_REG + 0x00000000080053d0 0x1c mycode/lcd.o + 0x00000000080053d0 LCD_WR_REG .text.LCD_WR_DATA - 0x00000000080053e8 0x20 mycode/lcd.o - 0x00000000080053e8 LCD_WR_DATA + 0x00000000080053ec 0x20 mycode/lcd.o + 0x00000000080053ec LCD_WR_DATA .text.LCD_WriteReg - 0x0000000008005408 0x2c mycode/lcd.o - 0x0000000008005408 LCD_WriteReg + 0x000000000800540c 0x2c mycode/lcd.o + 0x000000000800540c LCD_WriteReg .text.LCD_ReadReg - 0x0000000008005434 0x28 mycode/lcd.o - 0x0000000008005434 LCD_ReadReg + 0x0000000008005438 0x28 mycode/lcd.o + 0x0000000008005438 LCD_ReadReg .text.LCD_Scan_Dir - 0x000000000800545c 0x2dc mycode/lcd.o - 0x000000000800545c LCD_Scan_Dir + 0x0000000008005460 0x2dc mycode/lcd.o + 0x0000000008005460 LCD_Scan_Dir .text.LCD_Display_Dir - 0x0000000008005738 0x18c mycode/lcd.o - 0x0000000008005738 LCD_Display_Dir + 0x000000000800573c 0x18c mycode/lcd.o + 0x000000000800573c LCD_Display_Dir .text.LCDx_Init - 0x00000000080058c4 0x1ec mycode/lcd.o - 0x00000000080058c4 LCDx_Init + 0x00000000080058c8 0x1ec mycode/lcd.o + 0x00000000080058c8 LCDx_Init .text.LCD_SetCursor - 0x0000000008005ab0 0x120 mycode/lcd.o - 0x0000000008005ab0 LCD_SetCursor + 0x0000000008005ab4 0x120 mycode/lcd.o + 0x0000000008005ab4 LCD_SetCursor .text.LCD_set_dot - 0x0000000008005bd0 0x40 mycode/lcd.o - 0x0000000008005bd0 LCD_set_dot + 0x0000000008005bd4 0x40 mycode/lcd.o + 0x0000000008005bd4 LCD_set_dot .text.LCD_Clear - 0x0000000008005c10 0xa4 mycode/lcd.o - 0x0000000008005c10 LCD_Clear + 0x0000000008005c14 0xa4 mycode/lcd.o + 0x0000000008005c14 LCD_Clear .text.font_init - 0x0000000008005cb4 0x5c mycode/text.o - 0x0000000008005cb4 font_init + 0x0000000008005cb8 0x5c mycode/text.o + 0x0000000008005cb8 font_init .text.Get_HzMat - 0x0000000008005d10 0x10c mycode/text.o - 0x0000000008005d10 Get_HzMat + 0x0000000008005d14 0x10c mycode/text.o + 0x0000000008005d14 Get_HzMat .text.Show_Font - 0x0000000008005e1c 0x110 mycode/text.o - 0x0000000008005e1c Show_Font + 0x0000000008005e20 0x110 mycode/text.o + 0x0000000008005e20 Show_Font .text.LCD_ShowChar - 0x0000000008005f2c 0xf8 mycode/text.o - 0x0000000008005f2c LCD_ShowChar + 0x0000000008005f30 0xf8 mycode/text.o + 0x0000000008005f30 LCD_ShowChar .text.LCD_ShowString - 0x0000000008006024 0xe4 mycode/text.o - 0x0000000008006024 LCD_ShowString - .text.__errno 0x0000000008006108 0xc c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) - 0x0000000008006108 __errno + 0x0000000008006028 0xe4 mycode/text.o + 0x0000000008006028 LCD_ShowString + .text.__errno 0x000000000800610c 0xc c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) + 0x000000000800610c __errno .text.__libc_init_array - 0x0000000008006114 0x48 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) - 0x0000000008006114 __libc_init_array - .text.memset 0x000000000800615c 0x10 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) - 0x000000000800615c memset - .text.sprintf 0x000000000800616c 0x40 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) - 0x000000000800616c siprintf - 0x000000000800616c sprintf + 0x0000000008006118 0x48 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) + 0x0000000008006118 __libc_init_array + .text.memset 0x0000000008006160 0x10 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) + 0x0000000008006160 memset + .text.sprintf 0x0000000008006170 0x40 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) + 0x0000000008006170 siprintf + 0x0000000008006170 sprintf .text.__ssputs_r - 0x00000000080061ac 0xb6 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) - 0x00000000080061ac __ssputs_r - *fill* 0x0000000008006262 0x2 + 0x00000000080061b0 0xb6 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + 0x00000000080061b0 __ssputs_r + *fill* 0x0000000008006266 0x2 .text._svfprintf_r - 0x0000000008006264 0x200 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) - 0x0000000008006264 _svfiprintf_r - 0x0000000008006264 _svfprintf_r + 0x0000000008006268 0x200 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + 0x0000000008006268 _svfiprintf_r + 0x0000000008006268 _svfprintf_r .text._printf_common - 0x0000000008006464 0xde c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) - 0x0000000008006464 _printf_common - *fill* 0x0000000008006542 0x2 + 0x0000000008006468 0xde c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + 0x0000000008006468 _printf_common + *fill* 0x0000000008006546 0x2 .text._printf_i - 0x0000000008006544 0x24c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) - 0x0000000008006544 _printf_i - .text.memchr 0x0000000008006790 0x1c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) - 0x0000000008006790 memchr - .text.memcpy 0x00000000080067ac 0x1c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) - 0x00000000080067ac memcpy - .text.memmove 0x00000000080067c8 0x34 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) - 0x00000000080067c8 memmove - .text._free_r 0x00000000080067fc 0x98 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) - 0x00000000080067fc _free_r + 0x0000000008006548 0x24c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + 0x0000000008006548 _printf_i + .text.memchr 0x0000000008006794 0x1c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) + 0x0000000008006794 memchr + .text.memcpy 0x00000000080067b0 0x1c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) + 0x00000000080067b0 memcpy + .text.memmove 0x00000000080067cc 0x34 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) + 0x00000000080067cc memmove + .text._free_r 0x0000000008006800 0x98 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) + 0x0000000008006800 _free_r .text._malloc_r - 0x0000000008006894 0xb4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) - 0x0000000008006894 _malloc_r + 0x0000000008006898 0xb4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) + 0x0000000008006898 _malloc_r .text._realloc_r - 0x0000000008006948 0x4c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) - 0x0000000008006948 _realloc_r - .text._sbrk_r 0x0000000008006994 0x20 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) - 0x0000000008006994 _sbrk_r + 0x000000000800694c 0x4c c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) + 0x000000000800694c _realloc_r + .text._sbrk_r 0x0000000008006998 0x20 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) + 0x0000000008006998 _sbrk_r .text.__malloc_lock - 0x00000000080069b4 0xc c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) - 0x00000000080069b4 __malloc_lock + 0x00000000080069b8 0xc c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) + 0x00000000080069b8 __malloc_lock .text.__malloc_unlock - 0x00000000080069c0 0xc c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) - 0x00000000080069c0 __malloc_unlock + 0x00000000080069c4 0xc c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) + 0x00000000080069c4 __malloc_unlock .text._malloc_usable_size_r - 0x00000000080069cc 0x10 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) - 0x00000000080069cc _malloc_usable_size_r + 0x00000000080069d0 0x10 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) + 0x00000000080069d0 _malloc_usable_size_r .text.__retarget_lock_acquire_recursive - 0x00000000080069dc 0x2 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) - 0x00000000080069dc __retarget_lock_acquire_recursive + 0x00000000080069e0 0x2 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + 0x00000000080069e0 __retarget_lock_acquire_recursive .text.__retarget_lock_release_recursive - 0x00000000080069de 0x2 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) - 0x00000000080069de __retarget_lock_release_recursive + 0x00000000080069e2 0x2 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + 0x00000000080069e2 __retarget_lock_release_recursive *(.glue_7) - .glue_7 0x00000000080069e0 0x0 linker stubs + .glue_7 0x00000000080069e4 0x0 linker stubs *(.glue_7t) - .glue_7t 0x00000000080069e0 0x0 linker stubs + .glue_7t 0x00000000080069e4 0x0 linker stubs *(.eh_frame) - .eh_frame 0x00000000080069e0 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + .eh_frame 0x00000000080069e4 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o *(.init) - .init 0x00000000080069e0 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o - 0x00000000080069e0 _init - .init 0x00000000080069e4 0x8 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + .init 0x00000000080069e4 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x00000000080069e4 _init + .init 0x00000000080069e8 0x8 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o *(.fini) - .fini 0x00000000080069ec 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o - 0x00000000080069ec _fini - .fini 0x00000000080069f0 0x8 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o - 0x00000000080069f8 . = ALIGN (0x4) - 0x00000000080069f8 _etext = . + .fini 0x00000000080069f0 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x00000000080069f0 _fini + .fini 0x00000000080069f4 0x8 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + 0x00000000080069fc . = ALIGN (0x4) + 0x00000000080069fc _etext = . -.vfp11_veneer 0x00000000080069f8 0x0 - .vfp11_veneer 0x00000000080069f8 0x0 linker stubs +.vfp11_veneer 0x00000000080069fc 0x0 + .vfp11_veneer 0x00000000080069fc 0x0 linker stubs -.v4_bx 0x00000000080069f8 0x0 - .v4_bx 0x00000000080069f8 0x0 linker stubs +.v4_bx 0x00000000080069fc 0x0 + .v4_bx 0x00000000080069fc 0x0 linker stubs -.iplt 0x00000000080069f8 0x0 - .iplt 0x00000000080069f8 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o +.iplt 0x00000000080069fc 0x0 + .iplt 0x00000000080069fc 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o -.rodata 0x00000000080069f8 0xb98 - 0x00000000080069f8 . = ALIGN (0x4) +.rodata 0x00000000080069fc 0xb9c + 0x00000000080069fc . = ALIGN (0x4) *(.rodata) - .rodata 0x00000000080069f8 0x10 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .rodata 0x0000000008006a08 0x44 Middlewares/Third_Party/FatFs/src/ff.o - .rodata 0x0000000008006a4c 0x1c mycode/c.o + .rodata 0x00000000080069fc 0x10 Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .rodata 0x0000000008006a0c 0x44 Middlewares/Third_Party/FatFs/src/ff.o + .rodata 0x0000000008006a50 0x1f mycode/c.o *(.rodata*) + *fill* 0x0000000008006a6f 0x1 .rodata.AHBPrescTable - 0x0000000008006a68 0x10 Core/Src/system_stm32f1xx.o - 0x0000000008006a68 AHBPrescTable - .rodata.ExCvt 0x0000000008006a78 0x80 Middlewares/Third_Party/FatFs/src/ff.o + 0x0000000008006a70 0x10 Core/Src/system_stm32f1xx.o + 0x0000000008006a70 AHBPrescTable + .rodata.ExCvt 0x0000000008006a80 0x80 Middlewares/Third_Party/FatFs/src/ff.o .rodata.asc2_1206 - 0x0000000008006af8 0x474 mycode/text.o - 0x0000000008006af8 asc2_1206 + 0x0000000008006b00 0x474 mycode/text.o + 0x0000000008006b00 asc2_1206 .rodata.asc2_1608 - 0x0000000008006f6c 0x5f0 mycode/text.o - 0x0000000008006f6c asc2_1608 + 0x0000000008006f74 0x5f0 mycode/text.o + 0x0000000008006f74 asc2_1608 .rodata._svfprintf_r.str1.1 - 0x000000000800755c 0x11 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + 0x0000000008007564 0x11 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) .rodata._printf_i.str1.1 - 0x000000000800756d 0x22 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) - 0x0000000008007590 . = ALIGN (0x4) - *fill* 0x000000000800758f 0x1 + 0x0000000008007575 0x22 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + 0x0000000008007598 . = ALIGN (0x4) + *fill* 0x0000000008007597 0x1 -.rel.dyn 0x0000000008007590 0x0 - .rel.iplt 0x0000000008007590 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o +.rel.dyn 0x0000000008007598 0x0 + .rel.iplt 0x0000000008007598 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o -.ARM.extab 0x0000000008007590 0x0 - 0x0000000008007590 . = ALIGN (0x4) +.ARM.extab 0x0000000008007598 0x0 + 0x0000000008007598 . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x0000000008007590 . = ALIGN (0x4) + 0x0000000008007598 . = ALIGN (0x4) -.ARM 0x0000000008007590 0x0 - 0x0000000008007590 . = ALIGN (0x4) - 0x0000000008007590 __exidx_start = . +.ARM 0x0000000008007598 0x0 + 0x0000000008007598 . = ALIGN (0x4) + 0x0000000008007598 __exidx_start = . *(.ARM.exidx*) - 0x0000000008007590 __exidx_end = . - 0x0000000008007590 . = ALIGN (0x4) + 0x0000000008007598 __exidx_end = . + 0x0000000008007598 . = ALIGN (0x4) -.preinit_array 0x0000000008007590 0x0 - 0x0000000008007590 . = ALIGN (0x4) - 0x0000000008007590 PROVIDE (__preinit_array_start = .) +.preinit_array 0x0000000008007598 0x0 + 0x0000000008007598 . = ALIGN (0x4) + 0x0000000008007598 PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x0000000008007590 PROVIDE (__preinit_array_end = .) - 0x0000000008007590 . = ALIGN (0x4) + 0x0000000008007598 PROVIDE (__preinit_array_end = .) + 0x0000000008007598 . = ALIGN (0x4) -.init_array 0x0000000008007590 0x4 - 0x0000000008007590 . = ALIGN (0x4) - 0x0000000008007590 PROVIDE (__init_array_start = .) +.init_array 0x0000000008007598 0x4 + 0x0000000008007598 . = ALIGN (0x4) + 0x0000000008007598 PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x0000000008007590 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o - 0x0000000008007594 PROVIDE (__init_array_end = .) - 0x0000000008007594 . = ALIGN (0x4) + .init_array 0x0000000008007598 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + 0x000000000800759c PROVIDE (__init_array_end = .) + 0x000000000800759c . = ALIGN (0x4) -.fini_array 0x0000000008007594 0x4 - 0x0000000008007594 . = ALIGN (0x4) +.fini_array 0x000000000800759c 0x4 + 0x000000000800759c . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x0000000008007594 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + .fini_array 0x000000000800759c 0x4 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x0000000008007598 . = ALIGN (0x4) - 0x0000000008007598 _sidata = LOADADDR (.data) + 0x00000000080075a0 . = ALIGN (0x4) + 0x00000000080075a0 _sidata = LOADADDR (.data) -.data 0x0000000020000000 0x88 load address 0x0000000008007598 +.data 0x0000000020000000 0x88 load address 0x00000000080075a0 0x0000000020000000 . = ALIGN (0x4) 0x0000000020000000 _sdata = . *(.data) @@ -4103,11 +4104,11 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x0000000020000088 . = ALIGN (0x4) 0x0000000020000088 _edata = . -.igot.plt 0x0000000020000088 0x0 load address 0x0000000008007620 +.igot.plt 0x0000000020000088 0x0 load address 0x0000000008007628 .igot.plt 0x0000000020000088 0x0 c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o 0x0000000020000088 . = ALIGN (0x4) -.bss 0x0000000020000088 0x7dc load address 0x0000000008007620 +.bss 0x0000000020000088 0x7dc load address 0x0000000008007628 0x0000000020000088 _sbss = . 0x0000000020000088 __bss_start__ = _sbss *(.bss) @@ -4172,7 +4173,7 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x0000000020000864 __bss_end__ = _ebss ._user_heap_stack - 0x0000000020000864 0x1004 load address 0x0000000008007620 + 0x0000000020000864 0x1004 load address 0x0000000008007628 0x0000000020000868 . = ALIGN (0x8) *fill* 0x0000000020000864 0x4 [!provide] PROVIDE (end = .) @@ -4285,7 +4286,7 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libm.a LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a -.debug_info 0x0000000000000000 0xede2 +.debug_info 0x0000000000000000 0xee26 .debug_info 0x0000000000000000 0x117c Core/Src/main.o .debug_info 0x000000000000117c 0xbe6 Core/Src/stm32f1xx_hal_msp.o .debug_info 0x0000000000001d62 0x222 Core/Src/stm32f1xx_it.o @@ -4304,13 +4305,13 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .debug_info 0x00000000000091ee 0x4fe Middlewares/Third_Party/FatFs/src/diskio.o .debug_info 0x00000000000096ec 0x2333 Middlewares/Third_Party/FatFs/src/ff.o .debug_info 0x000000000000ba1f 0x495 Middlewares/Third_Party/FatFs/src/ff_gen_drv.o - .debug_info 0x000000000000beb4 0x83e mycode/c.o - .debug_info 0x000000000000c6f2 0x73b mycode/falsh.o - .debug_info 0x000000000000ce2d 0xc68 mycode/fatfs_sd.o - .debug_info 0x000000000000da95 0x8a2 mycode/lcd.o - .debug_info 0x000000000000e337 0xaab mycode/text.o + .debug_info 0x000000000000beb4 0x882 mycode/c.o + .debug_info 0x000000000000c736 0x73b mycode/falsh.o + .debug_info 0x000000000000ce71 0xc68 mycode/fatfs_sd.o + .debug_info 0x000000000000dad9 0x8a2 mycode/lcd.o + .debug_info 0x000000000000e37b 0xaab mycode/text.o -.debug_abbrev 0x0000000000000000 0x2d03 +.debug_abbrev 0x0000000000000000 0x2d05 .debug_abbrev 0x0000000000000000 0x292 Core/Src/main.o .debug_abbrev 0x0000000000000292 0x20b Core/Src/stm32f1xx_hal_msp.o .debug_abbrev 0x000000000000049d 0xd2 Core/Src/stm32f1xx_it.o @@ -4329,11 +4330,11 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .debug_abbrev 0x0000000000001bc2 0x18b Middlewares/Third_Party/FatFs/src/diskio.o .debug_abbrev 0x0000000000001d4d 0x2bf Middlewares/Third_Party/FatFs/src/ff.o .debug_abbrev 0x000000000000200c 0x1bc Middlewares/Third_Party/FatFs/src/ff_gen_drv.o - .debug_abbrev 0x00000000000021c8 0x217 mycode/c.o - .debug_abbrev 0x00000000000023df 0x185 mycode/falsh.o - .debug_abbrev 0x0000000000002564 0x2c5 mycode/fatfs_sd.o - .debug_abbrev 0x0000000000002829 0x29c mycode/lcd.o - .debug_abbrev 0x0000000000002ac5 0x23e mycode/text.o + .debug_abbrev 0x00000000000021c8 0x219 mycode/c.o + .debug_abbrev 0x00000000000023e1 0x185 mycode/falsh.o + .debug_abbrev 0x0000000000002566 0x2c5 mycode/fatfs_sd.o + .debug_abbrev 0x000000000000282b 0x29c mycode/lcd.o + .debug_abbrev 0x0000000000002ac7 0x23e mycode/text.o .debug_aranges 0x0000000000000000 0xc18 .debug_aranges @@ -4408,7 +4409,7 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .debug_ranges 0x00000000000009d8 0xa8 mycode/lcd.o .debug_ranges 0x0000000000000a80 0x30 mycode/text.o -.debug_macro 0x0000000000000000 0x1ac05 +.debug_macro 0x0000000000000000 0x1ac17 .debug_macro 0x0000000000000000 0x20e Core/Src/main.o .debug_macro 0x000000000000020e 0xa9c Core/Src/main.o .debug_macro 0x0000000000000caa 0x21b Core/Src/main.o @@ -4476,17 +4477,17 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .debug_macro 0x0000000000019475 0x43e Middlewares/Third_Party/FatFs/src/ff.o .debug_macro 0x00000000000198b3 0x58 Middlewares/Third_Party/FatFs/src/ff.o .debug_macro 0x000000000001990b 0x1f7 Middlewares/Third_Party/FatFs/src/ff_gen_drv.o - .debug_macro 0x0000000000019b02 0x24b mycode/c.o - .debug_macro 0x0000000000019d4d 0x38a mycode/c.o - .debug_macro 0x000000000001a0d7 0x10 mycode/c.o - .debug_macro 0x000000000001a0e7 0x1d1 mycode/falsh.o - .debug_macro 0x000000000001a2b8 0x206 mycode/fatfs_sd.o - .debug_macro 0x000000000001a4be 0x1d0 mycode/lcd.o - .debug_macro 0x000000000001a68e 0x384 mycode/lcd.o - .debug_macro 0x000000000001aa12 0x1e3 mycode/text.o - .debug_macro 0x000000000001abf5 0x10 mycode/text.o + .debug_macro 0x0000000000019b02 0x25d mycode/c.o + .debug_macro 0x0000000000019d5f 0x38a mycode/c.o + .debug_macro 0x000000000001a0e9 0x10 mycode/c.o + .debug_macro 0x000000000001a0f9 0x1d1 mycode/falsh.o + .debug_macro 0x000000000001a2ca 0x206 mycode/fatfs_sd.o + .debug_macro 0x000000000001a4d0 0x1d0 mycode/lcd.o + .debug_macro 0x000000000001a6a0 0x384 mycode/lcd.o + .debug_macro 0x000000000001aa24 0x1e3 mycode/text.o + .debug_macro 0x000000000001ac07 0x10 mycode/text.o -.debug_line 0x0000000000000000 0x10388 +.debug_line 0x0000000000000000 0x1037c .debug_line 0x0000000000000000 0x88e Core/Src/main.o .debug_line 0x000000000000088e 0x77c Core/Src/stm32f1xx_hal_msp.o .debug_line 0x000000000000100a 0x73c Core/Src/stm32f1xx_it.o @@ -4505,13 +4506,13 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .debug_line 0x0000000000009095 0x786 Middlewares/Third_Party/FatFs/src/diskio.o .debug_line 0x000000000000981b 0x2f22 Middlewares/Third_Party/FatFs/src/ff.o .debug_line 0x000000000000c73d 0x7a3 Middlewares/Third_Party/FatFs/src/ff_gen_drv.o - .debug_line 0x000000000000cee0 0x7f6 mycode/c.o - .debug_line 0x000000000000d6d6 0x69c mycode/falsh.o - .debug_line 0x000000000000dd72 0xd7c mycode/fatfs_sd.o - .debug_line 0x000000000000eaee 0xfac mycode/lcd.o - .debug_line 0x000000000000fa9a 0x8ee mycode/text.o + .debug_line 0x000000000000cee0 0x7ea mycode/c.o + .debug_line 0x000000000000d6ca 0x69c mycode/falsh.o + .debug_line 0x000000000000dd66 0xd7c mycode/fatfs_sd.o + .debug_line 0x000000000000eae2 0xfac mycode/lcd.o + .debug_line 0x000000000000fa8e 0x8ee mycode/text.o -.debug_str 0x0000000000000000 0x94106 +.debug_str 0x0000000000000000 0x9415d .debug_str 0x0000000000000000 0x8cf81 Core/Src/main.o 0x8d4a2 (size before relaxing) .debug_str 0x000000000008cf81 0xc5 Core/Src/stm32f1xx_hal_msp.o @@ -4548,15 +4549,15 @@ LOAD c:/st/stm32cubeide_1.6.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x8d979 (size before relaxing) .debug_str 0x00000000000934f0 0xa2 Middlewares/Third_Party/FatFs/src/ff_gen_drv.o 0x8cbdd (size before relaxing) - .debug_str 0x0000000000093592 0x7a7 mycode/c.o - 0x8d4fe (size before relaxing) - .debug_str 0x0000000000093d39 0x5a mycode/falsh.o + .debug_str 0x0000000000093592 0x7fe mycode/c.o + 0x8d55f (size before relaxing) + .debug_str 0x0000000000093d90 0x5a mycode/falsh.o 0x8c750 (size before relaxing) - .debug_str 0x0000000000093d93 0x17b mycode/fatfs_sd.o + .debug_str 0x0000000000093dea 0x17b mycode/fatfs_sd.o 0x8cb85 (size before relaxing) - .debug_str 0x0000000000093f0e 0x18c mycode/lcd.o + .debug_str 0x0000000000093f65 0x18c mycode/lcd.o 0x8cb12 (size before relaxing) - .debug_str 0x000000000009409a 0x6c mycode/text.o + .debug_str 0x00000000000940f1 0x6c mycode/text.o 0x8ce3f (size before relaxing) .comment 0x0000000000000000 0x53 diff --git a/103ze/Debug/mycode/c.o b/103ze/Debug/mycode/c.o index cb2420a4ece78a7f06f00070f569bc7b4d057b26..7d1ad130c678ba6864f6d4718b8dde2fd963f450 100644 GIT binary patch delta 101010 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

VLhuixezpltRIr-zCSot#^pXzb!B z8xa03XCw`gx;dltS1j&vUZ%`i7dpT(JPXf3&Jrul zUPGKYJJ7db&XScdj&PC}!}TG@I1Mq%iOWWx9&w(_hBn5rKY;M#oNhYzf6UpMf)Ep& zPcOn{lCxkVSf)5zgb4qH^UV{)o#s3vg>8njtO1QjxkGFSTka9M>v)XIt)l$Xj=PK2 zW_xZlZ6zGIcGN{j?(#JV;l$lXH@}>@Zn0=|;pWeS=E~JB0;wDKqqPX(&ed`tJh%lP z;#oYo#zNSSdtpSZm+;z0ZC3BPM<%A1de|m@%?yIy{ zO65L7-{eK^A^J-Om$*fGXqUNedqADW71DvOHJ$rg0$MY;y=g#Xa;p}AEsJ~kSBPxx z4M%i1hx_Muc(hz@^jWxE;XY0E{5)Jvjy79j@eOh)(YQAA#uN zYR`fDE_ZV$T)MfxQ%2Lnt))F$FZVhfINsxa@e(}yxS@Z;rJoza1N=UhLFc3oxMP&x z4{-G~X%2FKk(DHZ*v?b2xaXKIhc=1#cF61rn0b3Dou03dqd2Un^F5!Jf zH=j#+VS0!%-XeE!UgbqZqchidpU(lVoOhl+!|S|58=+NLdAC-;r;@keFnUqN+el@C zYToa(>#pIg(m=bxOQ)5qmiKHfT