⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memdev_banding.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 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_banding.o --depend=.\Obj\memdev_banding.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_banding.c]
                          THUMB

                          AREA ||i._DrawIt||, CODE, READONLY, ALIGN=2

                  _DrawIt PROC
;;;62     */
;;;63     static void _DrawIt(void * pData) {
000000  b510              PUSH     {r4,lr}
;;;64       tDrawItContext * pDrawItContext = (tDrawItContext *)pData;
000002  4604              MOV      r4,r0
;;;65       GUI_Clear();
000004  f7fff7ff          BL       GUI_Clear
;;;66       GUI_SetFont(&GUI_Font8x8);
000008  4816              LDR      r0,|L1.100|
00000a  f7fff7ff          BL       GUI_SetFont
;;;67       GUI_SetTextMode(GUI_TM_TRANS);
00000e  2002              MOVS     r0,#2
000010  f7fff7ff          BL       GUI_SetTextMode
;;;68       /* draw background */
;;;69       GUI_SetColor(GUI_GREEN);
000014  f44ff44f          MOV      r0,#0xff00
000018  f7fff7ff          BL       GUI_SetColor
;;;70       GUI_FillRect(pDrawItContext->XPos_Text, 
00001c  68e1              LDR      r1,[r4,#0xc]
00001e  68a0              LDR      r0,[r4,#8]
000020  1f4b              SUBS     r3,r1,#5
000022  f100f100          ADD      r2,r0,#0x64
000026  3919              SUBS     r1,r1,#0x19
000028  f7fff7ff          BL       GUI_FillRect
;;;71                    pDrawItContext->YPos_Text - 25,
;;;72                    pDrawItContext->XPos_Text + 100,
;;;73                    pDrawItContext->YPos_Text - 5);
;;;74       /* draw polygon */
;;;75       GUI_SetColor(GUI_BLUE);
00002c  f44ff44f          MOV      r0,#0xff0000
000030  f7fff7ff          BL       GUI_SetColor
;;;76       GUI_FillPolygon(pDrawItContext->aPointsDest, SIZE_OF_ARRAY(aPoints), 160, 120);
000034  2378              MOVS     r3,#0x78
000036  22a0              MOVS     r2,#0xa0
000038  2108              MOVS     r1,#8
00003a  f104f104          ADD      r0,r4,#0x10
00003e  f7fff7ff          BL       GUI_FillPolygon
;;;77       /* draw foreground */
;;;78       GUI_SetColor(GUI_RED);
000042  20ff              MOVS     r0,#0xff
000044  f7fff7ff          BL       GUI_SetColor
;;;79       GUI_FillRect(220 - pDrawItContext->XPos_Text, 
000048  68e1              LDR      r1,[r4,#0xc]
00004a  68a0              LDR      r0,[r4,#8]
00004c  f101f101          ADD      r3,r1,#0x19
000050  f5c0f5c0          RSB      r2,r0,#0x140
000054  e8bde8bd          POP      {r4,lr}
000058  1d49              ADDS     r1,r1,#5
00005a  f1c0f1c0          RSB      r0,r0,#0xdc
00005e  f7fff7ff          B.W      GUI_FillRect
;;;80                    pDrawItContext->YPos_Text + 5,
;;;81                    220 - pDrawItContext->XPos_Text + 100,
;;;82                    pDrawItContext->YPos_Text + 25);
;;;83     }
;;;84     
                          ENDP

000062  0000              DCW      0x0000
                  |L1.100|
000064  00000000          DCD      GUI_Font8x8

                          AREA ||i._DemoBandingMemdev||, CODE, READONLY, ALIGN=2

                  _DemoBandingMemdev PROC
;;;88     */
;;;89     static void _DemoBandingMemdev(void) {
000000  e92de92d          PUSH     {r4-r9,lr}
;;;90       tDrawItContext DrawItContext;
;;;91       int i, swap=0;
000004  2500              MOVS     r5,#0
000006  b08f              SUB      sp,sp,#0x3c           ;89
;;;92       GUI_SetBkColor(GUI_BLACK);
000008  4628              MOV      r0,r5
00000a  f7fff7ff          BL       GUI_SetBkColor
;;;93       GUI_Clear();
00000e  f7fff7ff          BL       GUI_Clear
;;;94       GUI_SetColor(GUI_WHITE);
000012  f06ff06f          MVN      r0,#0xff000000
000016  f7fff7ff          BL       GUI_SetColor
;;;95       GUI_SetFont(&GUI_Font24_ASCII);
00001a  4823              LDR      r0,|L2.168|
00001c  f7fff7ff          BL       GUI_SetFont
;;;96       GUI_DispStringHCenterAt("MEMDEV_Banding - Sample", 160, 5);
000020  2205              MOVS     r2,#5
000022  21a0              MOVS     r1,#0xa0
000024  a021              ADR      r0,|L2.172|
000026  f7fff7ff          BL       GUI_DispStringHCenterAt
;;;97       GUI_SetFont(&GUI_Font8x9);
00002a  4826              LDR      r0,|L2.196|
00002c  f7fff7ff          BL       GUI_SetFont
;;;98       GUI_DispStringHCenterAt("Banding memory device\nwithout flickering", 160, 40);
000030  2228              MOVS     r2,#0x28
000032  21a0              MOVS     r1,#0xa0
000034  a024              ADR      r0,|L2.200|
000036  f7fff7ff          BL       GUI_DispStringHCenterAt
;;;99       DrawItContext.XPos_Poly = 160;
00003a  20a0              MOVS     r0,#0xa0
;;;100      DrawItContext.YPos_Poly = 120;
00003c  9003              STR      r0,[sp,#0xc]
00003e  2078              MOVS     r0,#0x78
;;;101      DrawItContext.YPos_Text = 116;
000040  9004              STR      r0,[sp,#0x10]
000042  2074              MOVS     r0,#0x74
000044  f8dff8df          LDR      r8,|L2.260|
000048  a62a              ADR      r6,|L2.244|
00004a  a72c              ADR      r7,|L2.252|
00004c  f10df10d          ADD      r9,sp,#0x1c
000050  9006              STR      r0,[sp,#0x18]
                  |L2.82|
;;;102      while (1) {
;;;103        swap = ~swap;
000052  43ed              MVNS     r5,r5
;;;104        for (i = 0; i < 220; i++) {
000054  2400              MOVS     r4,#0
                  |L2.86|
;;;105          float angle = i * 3.1415926 / 55;
000056  4620              MOV      r0,r4
000058  f7fff7ff          BL       __aeabi_i2d
00005c  e9d6e9d6          LDRD     r2,r3,[r6,#0]
000060  f7fff7ff          BL       __aeabi_dmul
000064  e9d7e9d7          LDRD     r2,r3,[r7,#0]
000068  f7fff7ff          BL       __aeabi_ddiv
00006c  f7fff7ff          BL       __aeabi_d2f
;;;106          DrawItContext.XPos_Text = (swap) ? i : 220 - i;
000070  4621              MOV      r1,r4
000072  b90d              CBNZ     r5,|L2.120|
000074  f1c4f1c4          RSB      r1,r4,#0xdc
                  |L2.120|
;;;107          /* Rotate the polygon */
;;;108          GUI_RotatePolygon(DrawItContext.aPointsDest, aPoints, 
000078  9105              STR      r1,[sp,#0x14]
00007a  4922              LDR      r1,|L2.260|
00007c  4603              MOV      r3,r0
00007e  2208              MOVS     r2,#8
000080  3108              ADDS     r1,r1,#8
000082  4648              MOV      r0,r9
000084  f7fff7ff          BL       GUI_RotatePolygon
;;;109                            SIZE_OF_ARRAY(aPoints), angle);
;;;110          #if USE_BANDING_MEMDEV
;;;111          {
;;;112            GUI_RECT Rect = {0, 70, 320,170};
000088  e9d8e9d8          LDRD     r0,r1,[r8,#0]
;;;113            /* Use banding memory device for drawing */
;;;114            GUI_MEMDEV_Draw(&Rect, &_DrawIt, &DrawItContext, 0, 0);
00008c  2300              MOVS     r3,#0
00008e  e9cde9cd          STRD     r3,r0,[sp,#0]
000092  9102              STR      r1,[sp,#8]
000094  aa03              ADD      r2,sp,#0xc
000096  491c              LDR      r1,|L2.264|
000098  a801              ADD      r0,sp,#4
00009a  f7fff7ff          BL       GUI_MEMDEV_Draw
00009e  1c64              ADDS     r4,r4,#1              ;104
0000a0  2cdc              CMP      r4,#0xdc              ;104
0000a2  dbd8              BLT      |L2.86|
0000a4  e7d5              B        |L2.82|
;;;115          }
;;;116          #else
;;;117            /* Simple drawing without using memory devices */
;;;118            _DrawIt((void *)&DrawItContext);
;;;119          #endif
;;;120          #ifdef WIN32
;;;121            GUI_Delay(20); /* Use a short delay only in the simulation */
;;;122          #endif
;;;123        }
;;;124      }
;;;125    }
;;;126    
                          ENDP

0000a6  0000              DCW      0x0000
                  |L2.168|
0000a8  00000000          DCD      GUI_Font24_ASCII
                  |L2.172|
0000ac  4d454d44          DCB      "MEMD"
0000b0  45565f42          DCB      "EV_B"
0000b4  616e6469          DCB      "andi"
0000b8  6e67202d          DCB      "ng -"
0000bc  2053616d          DCB      " Sam"
0000c0  706c6500          DCB      "ple\0"
                  |L2.196|
0000c4  00000000          DCD      GUI_Font8x9
                  |L2.200|
0000c8  42616e64          DCB      "Band"
0000cc  696e6720          DCB      "ing "
0000d0  6d656d6f          DCB      "memo"
0000d4  72792064          DCB      "ry d"
0000d8  65766963          DCB      "evic"
0000dc  650a7769          DCB      "e\n\167\151"
0000e0  74686f75          DCB      "thou"
0000e4  7420666c          DCB      "t fl"
0000e8  69636b65          DCB      "icke"
0000ec  72696e67          DCB      "ring"
0000f0  00000000          DCB      "\0\0\0\0"
                  |L2.244|
0000f4  4d12d84a
0000f8  400921fb          DCFD     0x400921fb4d12d84a ; 3.1415926000000001
                  |L2.252|
0000fc  00000000
000100  404b8000          DCFD     0x404b800000000000 ; 55
                  |L2.260|
000104  00000000          DCD      ||.constdata||
                  |L2.264|
000108  00000000          DCD      _DrawIt

                          AREA ||i.MainTask||, CODE, READONLY, ALIGN=1

                  MainTask PROC
;;;135    
;;;136    void MainTask(void) {
000000  b510              PUSH     {r4,lr}
;;;137      GUI_Init();
000002  f7fff7ff          BL       GUI_Init
;;;138      _DemoBandingMemdev();
000006  e8bde8bd          POP      {r4,lr}
00000a  f7fff7ff          B.W      _DemoBandingMemdev
;;;139    }
;;;140    
                          ENDP


                          AREA ||.constdata||, DATA, READONLY, ALIGN=2

000000  00000046          DCW      0x0000,0x0046
000004  014000aa          DCW      0x0140,0x00aa
                  aPoints
000008  ffce0000          DCW      0xffce,0x0000
00000c  fff6000a          DCW      0xfff6,0x000a
000010  00000032          DCW      0x0000,0x0032
000014  000a000a          DCW      0x000a,0x000a
000018  00320000          DCW      0x0032,0x0000
00001c  000afff6          DCW      0x000a,0xfff6
000020  0000ffce          DCW      0x0000,0xffce
000024  fff6fff6          DCW      0xfff6,0xfff6

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -