📄 guidev_measure.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_measure.o --depend=.\Obj\guidev_measure.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_Measure.c]
THUMB
AREA ||i.GUI_MEASDEV_ClearRect||, CODE, READONLY, ALIGN=1
GUI_MEASDEV_ClearRect PROC
;;;309 */
;;;310 void GUI_MEASDEV_ClearRect(GUI_MEASDEV_Handle hMemDev) {
000000 b510 PUSH {r4,lr}
;;;311 if (hMemDev) {
000002 2800 CMP r0,#0
000004 d008 BEQ |L1.24|
;;;312 GUI_MEASDEV* pDevData;
;;;313 GUI_LOCK();
;;;314 pDevData = (GUI_MEASDEV*)GUI_ALLOC_h2p(hMemDev);
000006 f7fffffe BL GUI_ALLOC_h2p
;;;315 pDevData->rUsed.x0 = GUI_XMAX;
00000a f64071ff MOV r1,#0xfff
00000e 8001 STRH r1,[r0,#0]
;;;316 pDevData->rUsed.y0 = GUI_YMAX;
000010 8041 STRH r1,[r0,#2]
;;;317 pDevData->rUsed.x1 = GUI_XMIN;
000012 4249 RSBS r1,r1,#0
000014 8081 STRH r1,[r0,#4]
;;;318 pDevData->rUsed.y1 = GUI_YMIN;
000016 80c1 STRH r1,[r0,#6]
|L1.24|
;;;319 GUI_UNLOCK();
;;;320 }
;;;321 }
000018 bd10 POP {r4,pc}
;;;322
ENDP
AREA ||i.GUI_MEASDEV_Create||, CODE, READONLY, ALIGN=2
GUI_MEASDEV_Create PROC
;;;326 */
;;;327 GUI_MEASDEV_Handle GUI_MEASDEV_Create(void) {
000000 b510 PUSH {r4,lr}
;;;328 int MemSize;
;;;329 GUI_MEASDEV_Handle hMemDev;
;;;330 MemSize = sizeof(GUI_MEASDEV);
;;;331 hMemDev = GUI_ALLOC_AllocZero(MemSize);
000002 2014 MOVS r0,#0x14
000004 f7fffffe BL GUI_ALLOC_AllocZero
000008 0004 MOVS r4,r0
;;;332 if (hMemDev) {
00000a d00d BEQ |L2.40|
;;;333 GUI_MEASDEV* pDevData;
;;;334 GUI_LOCK();
;;;335 pDevData = (GUI_MEASDEV*)GUI_ALLOC_h2p(hMemDev);
00000c 4620 MOV r0,r4
00000e f7fffffe BL GUI_ALLOC_h2p
;;;336 pDevData->pfColor2Index = GUI_Context.pDeviceAPI->pfColor2Index;
000012 4a06 LDR r2,|L2.44|
000014 4601 MOV r1,r0 ;335
000016 6c90 LDR r0,[r2,#0x48] ; GUI_Context
000018 6803 LDR r3,[r0,#0]
;;;337 pDevData->pfIndex2Color = GUI_Context.pDeviceAPI->pfIndex2Color;
00001a 608b STR r3,[r1,#8]
00001c 6c90 LDR r0,[r2,#0x48] ; GUI_Context
00001e 6842 LDR r2,[r0,#4]
;;;338 GUI_MEASDEV_ClearRect(hMemDev);
000020 4620 MOV r0,r4
000022 60ca STR r2,[r1,#0xc]
000024 f7fffffe BL GUI_MEASDEV_ClearRect
|L2.40|
;;;339 GUI_UNLOCK();
;;;340 } else {
;;;341 GUI_DEBUG_WARN("GUI_MEASDEV_Create: Alloc failed");
;;;342 }
;;;343 return hMemDev;
000028 4620 MOV r0,r4
;;;344 }
00002a bd10 POP {r4,pc}
;;;345
ENDP
|L2.44|
DCD GUI_Context
AREA ||i.GUI_MEASDEV_Delete||, CODE, READONLY, ALIGN=2
GUI_MEASDEV_Delete PROC
;;;297 */
;;;298 void GUI_MEASDEV_Delete(GUI_MEASDEV_Handle hMemDev) {
000000 b510 PUSH {r4,lr}
000002 0004 MOVS r4,r0
;;;299 /* Make sure memory device is not used */
;;;300 if ((GUI_Context.hDevData = hMemDev) != 0) {
000004 4805 LDR r0,|L3.28|
000006 f8a0404c STRH r4,[r0,#0x4c]
00000a d001 BEQ |L3.16|
;;;301 GUI_SelectLCD();
00000c f7fffffe BL GUI_SelectLCD
|L3.16|
;;;302 }
;;;303 GUI_ALLOC_Free(hMemDev);
000010 4620 MOV r0,r4
000012 e8bd4010 POP {r4,lr}
000016 f7ffbffe B.W GUI_ALLOC_Free
;;;304 }
;;;305
ENDP
00001a 0000 DCW 0x0000
|L3.28|
DCD GUI_Context
AREA ||i.GUI_MEASDEV_GetRect||, CODE, READONLY, ALIGN=1
GUI_MEASDEV_GetRect PROC
;;;367 */
;;;368 void GUI_MEASDEV_GetRect(GUI_MEASDEV_Handle hMem, GUI_RECT* pRect) {
000000 b510 PUSH {r4,lr}
000002 460c MOV r4,r1
;;;369 if (hMem) {
000004 2800 CMP r0,#0
000006 d00b BEQ |L4.32|
;;;370 GUI_MEASDEV* pDev;
;;;371 GUI_LOCK();
;;;372 pDev = (GUI_MEASDEV*)GUI_ALLOC_h2p(hMem);
000008 f7fffffe BL GUI_ALLOC_h2p
;;;373 if (pRect) {
00000c 2c00 CMP r4,#0
00000e d007 BEQ |L4.32|
;;;374 pRect->x0 = pDev->rUsed.x0;
000010 8801 LDRH r1,[r0,#0]
000012 8021 STRH r1,[r4,#0]
;;;375 pRect->y0 = pDev->rUsed.y0;
000014 8841 LDRH r1,[r0,#2]
000016 8061 STRH r1,[r4,#2]
;;;376 pRect->x1 = pDev->rUsed.x1;
000018 8881 LDRH r1,[r0,#4]
00001a 80a1 STRH r1,[r4,#4]
;;;377 pRect->y1 = pDev->rUsed.y1;
00001c 88c0 LDRH r0,[r0,#6]
00001e 80e0 STRH r0,[r4,#6]
|L4.32|
;;;378 }
;;;379 GUI_UNLOCK();
;;;380 }
;;;381 }
000020 bd10 POP {r4,pc}
;;;382
ENDP
AREA ||i.GUI_MEASDEV_Select||, CODE, READONLY, ALIGN=2
GUI_MEASDEV_Select PROC
;;;349 */
;;;350 void GUI_MEASDEV_Select(GUI_MEASDEV_Handle hMem) {
000000 b510 PUSH {r4,lr}
000002 0004 MOVS r4,r0
;;;351 if (hMem == 0) {
000004 d103 BNE |L5.14|
;;;352 GUI_SelectLCD();
000006 e8bd4010 POP {r4,lr}
00000a f7ffbffe B.W GUI_SelectLCD
|L5.14|
;;;353 } else {
;;;354 #if GUI_WINSUPPORT
;;;355 WM_Deactivate();
00000e f7fffffe BL WM_Deactivate
;;;356 #endif
;;;357 GUI_Context.hDevData = hMem;
000012 4805 LDR r0,|L5.40|
;;;358 GUI_Context.pDeviceAPI = &_APIList;
000014 4905 LDR r1,|L5.44|
000016 f8a0404c STRH r4,[r0,#0x4c] ;357
;;;359 GUI_Context.pClipRect_HL = NULL;
00001a 6481 STR r1,[r0,#0x48] ; GUI_Context
00001c 2100 MOVS r1,#0
;;;360 LCD_SetClipRectMax();
00001e 6101 STR r1,[r0,#0x10] ; GUI_Context
000020 e8bd4010 POP {r4,lr}
000024 f7ffbffe B.W LCD_SetClipRectMax
;;;361 }
;;;362 }
;;;363
ENDP
|L5.40|
DCD GUI_Context
|L5.44|
DCD ||.constdata||
AREA ||i._CalcPolyRect||, CODE, READONLY, ALIGN=2
_CalcPolyRect PROC
;;;205 */
;;;206 static void _CalcPolyRect(GUI_RECT *pr, const GUI_POINT* paPoint, int NumPoints) {
000000 b5f0 PUSH {r4-r7,lr}
;;;207 int i;
;;;208 int xMin, xMax, yMin, yMax;
;;;209 xMin = GUI_XMAX;
000002 f64076ff MOV r6,#0xfff
;;;210 yMin = GUI_YMAX;
;;;211 xMax = GUI_XMIN;
000006 f1c60c00 RSB r12,r6,#0
00000a 4637 MOV r7,r6 ;210
;;;212 yMax = GUI_YMIN;
00000c 46e6 MOV lr,r12
;;;213 for (i = 0; i <NumPoints; i++) {
00000e 2500 MOVS r5,#0
000010 e012 B |L6.56|
;;;214 int x = paPoint->x;
000012 bf00 NOP
|L6.20|
000014 f9b13000 LDRSH r3,[r1,#0]
;;;215 int y = paPoint->y;
000018 f9b14002 LDRSH r4,[r1,#2]
;;;216 if (xMin > x)
00001c 429e CMP r6,r3
00001e dd00 BLE |L6.34|
;;;217 xMin = x;
000020 461e MOV r6,r3
|L6.34|
;;;218 if (xMax < x)
000022 459c CMP r12,r3
000024 da00 BGE |L6.40|
;;;219 xMax = x;
000026 469c MOV r12,r3
|L6.40|
;;;220 if (yMin > y)
000028 42a7 CMP r7,r4
00002a dd00 BLE |L6.46|
;;;221 yMin = y;
00002c 4627 MOV r7,r4
|L6.46|
;;;222 if (yMax < y)
00002e 45a6 CMP lr,r4
000030 da00 BGE |L6.52|
;;;223 yMax = y;
000032 46a6 MOV lr,r4
|L6.52|
;;;224 paPoint++;
000034 1d09 ADDS r1,r1,#4
000036 1c6d ADDS r5,r5,#1 ;213
|L6.56|
000038 4295 CMP r5,r2 ;213
00003a dbeb BLT |L6.20|
;;;225 }
;;;226 pr->x0 = xMin;
00003c 8006 STRH r6,[r0,#0]
;;;227 pr->x1 = xMax;
00003e f8a0c004 STRH r12,[r0,#4]
;;;228 pr->y0 = yMin;
000042 8047 STRH r7,[r0,#2]
;;;229 pr->y1 = yMax;
000044 f8a0e006 STRH lr,[r0,#6]
;;;230 }
000048 bdf0 POP {r4-r7,pc}
;;;231
ENDP
AREA ||i._Color2Index||, CODE, READONLY, ALIGN=2
_Color2Index PROC
;;;178 */
;;;179 static unsigned int _Color2Index(LCD_COLOR Color) {
000000 b510 PUSH {r4,lr}
000002 4604 MOV r4,r0
;;;180 GUI_MEASDEV* pDev = GUI_MEASDEV_H2P(GUI_Context.hDevData);
000004 4804 LDR r0,|L7.24|
000006 f9b0004c LDRSH r0,[r0,#0x4c] ; GUI_Context
00000a f7fffffe BL GUI_ALLOC_h2p
;;;181 return pDev->pfColor2Index(Color);
00000e 6881 LDR r1,[r0,#8]
000010 4620 MOV r0,r4
000012 e8bd4010 POP {r4,lr}
000016 4708 BX r1
;;;182 }
;;;183
ENDP
|L7.24|
DCD GUI_Context
AREA ||i._DrawBitmap||, CODE, READONLY, ALIGN=1
_DrawBitmap PROC
;;;101 */
;;;102 static void _DrawBitmap(int x0, int y0, int xsize, int ysize,
000000 440b ADD r3,r3,r1
;;;103 int BitsPerPixel, int BytesPerLine,
;;;104 const U8 GUI_UNI_PTR * pData, int Diff,
;;;105 const LCD_PIXELINDEX* pTrans)
;;;106 {
;;;107 GUI_USE_PARA(BitsPerPixel);
;;;108 GUI_USE_PARA(BytesPerLine);
;;;109 GUI_USE_PARA(pData);
;;;110 GUI_USE_PARA(Diff);
;;;111 GUI_USE_PARA(pTrans);
;;;112 _MarkRect(x0, y0, x0 + xsize - 1, y0 + ysize - 1);
000002 1e5b SUBS r3,r3,#1
000004 4402 ADD r2,r2,r0
000006 1e52 SUBS r2,r2,#1
000008 f7ffbffe B.W _MarkRect
;;;113 }
;;;114
ENDP
AREA ||i._DrawHLine||, CODE, READONLY, ALIGN=1
_DrawHLine PROC
;;;118 */
;;;119 static void _DrawHLine(int x0, int y, int x1) {
000000 460b MOV r3,r1
;;;120 _MarkRect(x0, y, x1, y);
000002 f7ffbffe B.W _MarkRect
;;;121 }
;;;122
ENDP
AREA ||i._DrawVLine||, CODE, READONLY, ALIGN=1
_DrawVLine PROC
;;;126 */
;;;127 static void _DrawVLine(int x , int y0, int y1) {
000000 4613 MOV r3,r2
;;;128 _MarkRect(x, y0, x, y1);
000002 4602 MOV r2,r0
000004 f7ffbffe B.W _MarkRect
;;;129 }
;;;130
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -