📄 memdev_autodev.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\memdev_autodev.o --depend=.\Obj\memdev_autodev.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 -D__MICROLIB ..\..\source\memdev_autodev.c]
THUMB
AREA ||i._Draw||, CODE, READONLY, ALIGN=2
_Draw PROC
;;;193 */
;;;194 static void _Draw(void * p) {
000000 b510 PUSH {r4,lr}
;;;195 PARAM * pParam = (PARAM *)p;
000002 4604 MOV r4,r0
;;;196 /* Fixed background */
;;;197 if (pParam->AutoDevInfo.DrawFixed) {
000004 7800 LDRB r0,[r0,#0]
000006 b158 CBZ r0,|L1.32|
;;;198 GUI_ClearRect (60, 80 + bmScaleR140.YSize, 60 + bmScaleR140.XSize - 1, 180);
000008 23b4 MOVS r3,#0xb4
00000a f240f240 MOV r2,#0x103
00000e 2199 MOVS r1,#0x99
000010 203c MOVS r0,#0x3c
000012 f7fff7ff BL GUI_ClearRect
;;;199 GUI_DrawBitmap(&bmScaleR140, 60, 80);
000016 2250 MOVS r2,#0x50
000018 213c MOVS r1,#0x3c
00001a 4811 LDR r0,|L1.96|
00001c f7fff7ff BL GUI_DrawBitmap
|L1.32|
;;;200 }
;;;201 /* Moving needle */
;;;202 GUI_SetColor(GUI_WHITE);
000020 f06ff06f MVN r0,#0xff000000
000024 f7fff7ff BL GUI_SetColor
;;;203 GUI_AA_FillPolygon(pParam->aPoints, countof(_aNeedle), MAG * 160, MAG * 220);
000028 f44ff44f MOV r3,#0x370
00002c f44ff44f MOV r2,#0x280
000030 2105 MOVS r1,#5
000032 1ca0 ADDS r0,r4,#2
000034 f7fff7ff BL GUI_AA_FillPolygon
;;;204 /* Fixed foreground */
;;;205 if (pParam->AutoDevInfo.DrawFixed) {
000038 7820 LDRB r0,[r4,#0]
00003a 2800 CMP r0,#0
00003c d00f BEQ |L1.94|
;;;206 GUI_SetTextMode(GUI_TM_TRANS);
00003e 2002 MOVS r0,#2
000040 f7fff7ff BL GUI_SetTextMode
;;;207 GUI_SetColor(GUI_RED);
000044 20ff MOVS r0,#0xff
000046 f7fff7ff BL GUI_SetColor
;;;208 GUI_SetFont(&GUI_Font24B_ASCII);
00004a 4806 LDR r0,|L1.100|
00004c f7fff7ff BL GUI_SetFont
;;;209 GUI_DispStringHCenterAt("RPM / 1000", 160, 140);
000050 228c MOVS r2,#0x8c
000052 e8bde8bd POP {r4,lr}
000056 21a0 MOVS r1,#0xa0
000058 a003 ADR r0,|L1.104|
00005a f7fff7ff B.W GUI_DispStringHCenterAt
|L1.94|
;;;210 }
;;;211 }
00005e bd10 POP {r4,pc}
;;;212
ENDP
|L1.96|
000060 00000000 DCD ||.constdata||
|L1.100|
000064 00000000 DCD GUI_Font24B_ASCII
|L1.104|
000068 52504d20 DCB "RPM "
00006c 2f203130 DCB "/ 10"
000070 30300000 DCB "00\0\0"
AREA ||i._DemoScale||, CODE, READONLY, ALIGN=2
_DemoScale PROC
;;;216 */
;;;217 static void _DemoScale(void) {
000000 e92de92d PUSH {r4-r10,lr}
000004 b08e SUB sp,sp,#0x38
;;;218 int Cnt;
;;;219 int tDiff, t0;
;;;220 PARAM Param; /* Parameters for drawing routine */
;;;221 GUI_AUTODEV AutoDev; /* Object for banding memory device */
;;;222 /* Show message */
;;;223 GUI_SetBkColor(GUI_BLACK);
000006 2000 MOVS r0,#0
000008 f7fff7ff BL GUI_SetBkColor
;;;224 GUI_Clear();
00000c f7fff7ff BL GUI_Clear
;;;225 GUI_SetColor(GUI_WHITE);
000010 f06ff06f MVN r10,#0xff000000
000014 4650 MOV r0,r10
000016 f7fff7ff BL GUI_SetColor
;;;226 GUI_SetFont(&GUI_Font24_ASCII);
00001a 4837 LDR r0,|L2.248|
00001c f7fff7ff BL GUI_SetFont
;;;227 GUI_DispStringHCenterAt("MEMDEV_AutoDev - Sample", 160, 5);
000020 2205 MOVS r2,#5
000022 21a0 MOVS r1,#0xa0
000024 a035 ADR r0,|L2.252|
000026 f7fff7ff BL GUI_DispStringHCenterAt
;;;228 GUI_SetFont(&GUI_Font8x16);
00002a 483a LDR r0,|L2.276|
00002c f7fff7ff BL GUI_SetFont
;;;229 GUI_DispStringHCenterAt("Scale using GUI_AUTODEV-object", 160, 50);
000030 2232 MOVS r2,#0x32
000032 21a0 MOVS r1,#0xa0
000034 a038 ADR r0,|L2.280|
000036 f7fff7ff BL GUI_DispStringHCenterAt
;;;230 /* Enable high resolution for antialiasing */
;;;231 GUI_AA_EnableHiRes();
00003a f7fff7ff BL GUI_AA_EnableHiRes
;;;232 GUI_AA_SetFactor(MAG);
00003e 2004 MOVS r0,#4
000040 f7fff7ff BL GUI_AA_SetFactor
000044 f645f645 MOV r7,#0x5dc0
|L2.72|
;;;233 while (1) {
;;;234 t0 = GUI_GetTime();
000048 f7fff7ff BL GUI_GetTime
00004c 4680 MOV r8,r0
;;;235 /* Create GUI_AUTODEV-object */
;;;236 GUI_MEMDEV_CreateAuto(&AutoDev);
00004e 4668 MOV r0,sp
000050 f7fff7ff BL GUI_MEMDEV_CreateAuto
;;;237 /* Show needle for a fixed time */
;;;238 for (Cnt = 0; (tDiff = GUI_GetTime() - t0) < 24000; Cnt++) {
000054 2500 MOVS r5,#0
000056 ae05 ADD r6,sp,#0x14
000058 f8dff8df LDR r9,|L2.312|
00005c e013 B |L2.134|
|L2.94|
;;;239 /* Get value to display an calculate polygon for needle */
;;;240 Param.Angle = _GetAngle(tDiff)* DEG2RAD;
00005e 4620 MOV r0,r4
000060 f7fff7ff BL _GetAngle
000064 4649 MOV r1,r9
000066 f7fff7ff BL __aeabi_fmul
00006a 4603 MOV r3,r0
;;;241 GUI_RotatePolygon(Param.aPoints, _aNeedle, countof(_aNeedle), Param.Angle);
00006c 900d STR r0,[sp,#0x34]
00006e 2205 MOVS r2,#5
000070 4932 LDR r1,|L2.316|
000072 1cb0 ADDS r0,r6,#2
000074 f7fff7ff BL GUI_RotatePolygon
;;;242 GUI_MEMDEV_DrawAuto(&AutoDev, &Param.AutoDevInfo, &_Draw, &Param);
000078 ab05 ADD r3,sp,#0x14
00007a 4a31 LDR r2,|L2.320|
00007c a905 ADD r1,sp,#0x14
00007e 4668 MOV r0,sp
000080 f7fff7ff BL GUI_MEMDEV_DrawAuto
000084 1c6d ADDS r5,r5,#1 ;238
|L2.134|
000086 f7fff7ff BL GUI_GetTime
00008a eba0eba0 SUB r4,r0,r8 ;238
00008e 42bc CMP r4,r7 ;238
000090 dbe5 BLT |L2.94|
;;;243 }
;;;244 /* Display milliseconds / picture */
;;;245 GUI_SetColor(GUI_WHITE);
000092 4650 MOV r0,r10
000094 f7fff7ff BL GUI_SetColor
;;;246 GUI_SetFont(&GUI_Font8x16);
000098 481e LDR r0,|L2.276|
00009a f7fff7ff BL GUI_SetFont
;;;247 GUI_DispStringHCenterAt("Milliseconds / picture:", 160, 200);
00009e 22c8 MOVS r2,#0xc8
0000a0 21a0 MOVS r1,#0xa0
0000a2 a028 ADR r0,|L2.324|
0000a4 f7fff7ff BL GUI_DispStringHCenterAt
;;;248 GUI_SetTextAlign(GUI_TA_CENTER);
0000a8 2002 MOVS r0,#2
0000aa f7fff7ff BL GUI_SetTextAlign
;;;249 GUI_SetTextMode(GUI_TM_NORMAL);
0000ae 2000 MOVS r0,#0
0000b0 f7fff7ff BL GUI_SetTextMode
;;;250 GUI_DispNextLine();
0000b4 f7fff7ff BL GUI_DispNextLine
;;;251 GUI_GotoX(160);
0000b8 20a0 MOVS r0,#0xa0
0000ba f7fff7ff BL GUI_GotoX
;;;252 GUI_DispFloatMin((float)tDiff / (float)Cnt, 2);
0000be 4628 MOV r0,r5
0000c0 f7fff7ff BL __aeabi_i2f
0000c4 4605 MOV r5,r0
0000c6 4620 MOV r0,r4
0000c8 f7fff7ff BL __aeabi_i2f
0000cc 4629 MOV r1,r5
0000ce f7fff7ff BL __aeabi_fdiv
0000d2 2102 MOVS r1,#2
0000d4 f7fff7ff BL GUI_DispFloatMin
;;;253 /* Delete GUI_AUTODEV-object */
;;;254 GUI_MEMDEV_DeleteAuto(&AutoDev);
0000d8 4668 MOV r0,sp
0000da f7fff7ff BL GUI_MEMDEV_DeleteAuto
;;;255 GUI_Delay(3000);
0000de f640f640 MOV r0,#0xbb8
0000e2 f7fff7ff BL GUI_Delay
;;;256 GUI_ClearRect(0, 70, 319, 239);
0000e6 23ef MOVS r3,#0xef
0000e8 f240f240 MOV r2,#0x13f
0000ec 2146 MOVS r1,#0x46
0000ee 2000 MOVS r0,#0
0000f0 f7fff7ff BL GUI_ClearRect
0000f4 e7a8 B |L2.72|
;;;257 }
;;;258 }
;;;259
ENDP
0000f6 0000 DCW 0x0000
|L2.248|
0000f8 00000000 DCD GUI_Font24_ASCII
|L2.252|
0000fc 4d454d44 DCB "MEMD"
000100 45565f41 DCB "EV_A"
000104 75746f44 DCB "utoD"
000108 6576202d DCB "ev -"
00010c 2053616d DCB " Sam"
000110 706c6500 DCB "ple\0"
|L2.276|
000114 00000000 DCD GUI_Font8x16
|L2.280|
000118 5363616c DCB "Scal"
00011c 65207573 DCB "e us"
000120 696e6720 DCB "ing "
000124 4755495f DCB "GUI_"
000128 4155544f DCB "AUTO"
00012c 4445562d DCB "DEV-"
000130 6f626a65 DCB "obje"
000134 63740000 DCB "ct\0\0"
|L2.312|
000138 3c8efa35 DCD 0x3c8efa35
|L2.316|
00013c 00000014 DCD ||.constdata||+0x14
|L2.320|
000140 00000000 DCD _Draw
|L2.324|
000144 4d696c6c DCB "Mill"
000148 69736563 DCB "isec"
00014c 6f6e6473 DCB "onds"
000150 202f2070 DCB " / p"
000154 69637475 DCB "ictu"
000158 72653a00 DCB "re:\0"
AREA ||i.MainTask||, CODE, READONLY, ALIGN=2
MainTask PROC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -