📄 guidev_auto.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\guidev_auto.o --depend=.\Obj\guidev_auto.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\MemDev\GUIDEV_Auto.c]
THUMB
AREA ||i.GUI_MEMDEV_CreateAuto||, CODE, READONLY, ALIGN=1
GUI_MEMDEV_CreateAuto PROC
;;;39 */
;;;40 int GUI_MEMDEV_CreateAuto(GUI_AUTODEV* pAutoDev) {
000000 2101 MOVS r1,#1
;;;41 pAutoDev->FirstCall = 1;
000002 7401 STRB r1,[r0,#0x10]
;;;42 return 0;
000004 2000 MOVS r0,#0
;;;43 }
000006 4770 BX lr
;;;44
ENDP
AREA ||i.GUI_MEMDEV_DeleteAuto||, CODE, READONLY, ALIGN=1
GUI_MEMDEV_DeleteAuto PROC
;;;48 */
;;;49 void GUI_MEMDEV_DeleteAuto(GUI_AUTODEV* pAutoDev) {
000000 4770 BX lr
;;;50 GUI_USE_PARA(pAutoDev);
;;;51 }
;;;52
ENDP
AREA ||i.GUI_MEMDEV_DrawAuto||, CODE, READONLY, ALIGN=1
GUI_MEMDEV_DrawAuto PROC
;;;56 */
;;;57 int GUI_MEMDEV_DrawAuto(GUI_AUTODEV* pAutoDev, GUI_AUTODEV_INFO* pAutoDevInfo, GUI_CALLBACK_VOID_P* pfDraw, void* pData) {
000000 e92d4ffe PUSH {r1-r11,lr}
000004 4605 MOV r5,r0
000006 460c MOV r4,r1
000008 4616 MOV r6,r2
00000a 469b MOV r11,r3
;;;58 GUI_RECT rTemp;
;;;59 GUI_HMEM hMem = GUI_MEASDEV_Create();
00000c f7fffffe BL GUI_MEASDEV_Create
000010 0007 MOVS r7,r0
;;;60 if (!hMem) {
000012 d041 BEQ |L3.152|
;;;61 return 1;
;;;62 }
;;;63 GUI_MEASDEV_Select(hMem);
000014 4638 MOV r0,r7
000016 f7fffffe BL GUI_MEASDEV_Select
;;;64 /* Measure area to draw */
;;;65 if (pAutoDev->FirstCall) {
00001a 7c29 LDRB r1,[r5,#0x10]
00001c f04f0a00 MOV r10,#0 ;59
000020 f04f0901 MOV r9,#1 ;61
;;;66 /* Measure complete area */
;;;67 pAutoDevInfo->DrawFixed = 1;
;;;68 pfDraw(pData);
;;;69 GUI_MEASDEV_GetRect(hMem, &pAutoDev->rView);
;;;70 /* Measure variable area only */
;;;71 GUI_MEASDEV_ClearRect(hMem);
;;;72 pAutoDevInfo->DrawFixed = 0;
;;;73 pfDraw(pData);
;;;74 GUI_MEASDEV_GetRect(hMem, &pAutoDev->rPrev);
000024 f1050808 ADD r8,r5,#8
000028 b199 CBZ r1,|L3.82|
00002a f8849000 STRB r9,[r4,#0] ;67
00002e 4658 MOV r0,r11 ;68
000030 47b0 BLX r6 ;68
000032 4629 MOV r1,r5 ;69
000034 4638 MOV r0,r7 ;69
000036 f7fffffe BL GUI_MEASDEV_GetRect
00003a 4638 MOV r0,r7 ;71
00003c f7fffffe BL GUI_MEASDEV_ClearRect
000040 f884a000 STRB r10,[r4,#0] ;72
000044 4658 MOV r0,r11 ;73
000046 47b0 BLX r6 ;73
000048 4641 MOV r1,r8 ;73
00004a 4638 MOV r0,r7
00004c f7fffffe BL GUI_MEASDEV_GetRect
000050 e014 B |L3.124|
|L3.82|
;;;75 } else {
;;;76 /* Measure variable area only */
;;;77 pfDraw(pData);
000052 4658 MOV r0,r11
000054 47b0 BLX r6
;;;78 GUI_MEASDEV_GetRect(hMem, &pAutoDev->rView);
000056 4629 MOV r1,r5
000058 4638 MOV r0,r7
00005a f7fffffe BL GUI_MEASDEV_GetRect
;;;79 rTemp = pAutoDev->rView;
00005e 2208 MOVS r2,#8
000060 4629 MOV r1,r5
000062 a801 ADD r0,sp,#4
000064 f7fffffe BL __aeabi_memcpy
000068 4642 MOV r2,r8
;;;80 GUI_MergeRect(&pAutoDev->rView, &pAutoDev->rView, &pAutoDev->rPrev);
00006a 4629 MOV r1,r5
00006c 4628 MOV r0,r5
00006e f7fffffe BL GUI_MergeRect
;;;81 pAutoDev->rPrev = rTemp;
000072 2208 MOVS r2,#8
000074 a901 ADD r1,sp,#4
000076 4640 MOV r0,r8
000078 f7fffffe BL __aeabi_memcpy
|L3.124|
;;;82 }
;;;83 GUI_MEASDEV_Delete(hMem);
00007c 4638 MOV r0,r7
00007e f7fffffe BL GUI_MEASDEV_Delete
;;;84 /* Do the actual drawing */
;;;85 pAutoDevInfo->DrawFixed = 1;
000082 f8849000 STRB r9,[r4,#0]
;;;86 if (GUI_MEMDEV_Draw(&pAutoDev->rView, pfDraw, pData, 0, GUI_MEMDEV_NOTRANS)) {
000086 2301 MOVS r3,#1
000088 9300 STR r3,[sp,#0]
00008a 2300 MOVS r3,#0
00008c 465a MOV r2,r11
00008e 4631 MOV r1,r6
000090 4628 MOV r0,r5
000092 f7fffffe BL GUI_MEMDEV_Draw
000096 b110 CBZ r0,|L3.158|
|L3.152|
;;;87 return 1;
000098 2001 MOVS r0,#1
|L3.154|
;;;88 }
;;;89 pAutoDevInfo->DrawFixed = 0;
;;;90 pAutoDev->FirstCall = 0;
;;;91 return 0;
;;;92 }
00009a e8bd8ffe POP {r1-r11,pc}
|L3.158|
00009e f884a000 STRB r10,[r4,#0] ;89
0000a2 f885a010 STRB r10,[r5,#0x10] ;90
0000a6 2000 MOVS r0,#0 ;91
0000a8 e7f7 B |L3.154|
;;;93
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -