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

📄 menu.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Int_Flash\menu.o --depend=.\Int_Flash\menu.d --device=DARMSTM --apcs=interwork -O3 -I..\include -I..\..\..\..\..\INC\ST\STM32F10x\USB -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB --omf_browse=.\Int_Flash\menu.crf ..\source\menu.c]
                          THUMB

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

                  Menu_Init PROC
000000  4906              LDR      r1,|L1.28|
000002  b510              PUSH     {r4,lr}
000004  f5a170d0          SUB      r0,r1,#0x1a0
000008  6181              STR      r1,[r0,#0x18]  ; psCurrentMenu
00000a  4a05              LDR      r2,|L1.32|
00000c  7843              LDRB     r3,[r0,#1]  ; nMenuLevel
00000e  f5007480          ADD      r4,r0,#0x100
000012  f8421023          STR      r1,[r2,r3,LSL #2]
000016  6104              STR      r4,[r0,#0x10]  ; psMenuItem
000018  bd10              POP      {r4,pc}
                          ENDP

00001a  0000              DCW      0x0000
                  |L1.28|
00001c  000001a0          DCD      ||.data||+0x1a0
                  |L1.32|
000020  00000000          DCD      ||.bss||

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

                  DisplayMenu PROC
;;;311    void DisplayMenu(void)
;;;312    {
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;313      u32 Line = 0, index = 0;
000004  2400              MOVS     r4,#0
;;;314      tMenuItem psMenuItem2;
;;;315    
;;;316      /* Set the Back Color */
;;;317      LCD_SetBackColor(Blue);
000006  201f              MOVS     r0,#0x1f
000008  f7fffffe          BL       LCD_SetBackColor
;;;318      /* Set the Text Color */
;;;319      LCD_SetTextColor(White);
00000c  f64f77ff          MOV      r7,#0xffff
000010  4638              MOV      r0,r7
000012  f7fffffe          BL       LCD_SetTextColor
;;;320    
;;;321      /* Clear the LCD Screen */
;;;322      LCD_Clear(White);
000016  4638              MOV      r0,r7
000018  f7fffffe          BL       LCD_Clear
;;;323    
;;;324      LCD_DisplayStringLine(Line, psCurrentMenu->pszTitle);
00001c  4e18              LDR      r6,|L2.128|
00001e  69b0              LDR      r0,[r6,#0x18]  ; psCurrentMenu
000020  6801              LDR      r1,[r0,#0]
000022  2000              MOVS     r0,#0
000024  f7fffffe          BL       LCD_DisplayStringLine
;;;325      Line += 24;
000028  2518              MOVS     r5,#0x18
;;;326    
;;;327      /* Set the Back Color */
;;;328      LCD_SetBackColor(White);
00002a  4638              MOV      r0,r7
00002c  f7fffffe          BL       LCD_SetBackColor
;;;329    
;;;330      /* Set the Text Color */
;;;331      LCD_SetTextColor(Blue);
000030  201f              MOVS     r0,#0x1f
000032  f7fffffe          BL       LCD_SetTextColor
;;;332    
;;;333      while(!(index >= (psCurrentMenu->nItems)))
000036  e008              B        |L2.74|
                  |L2.56|
;;;334      {
;;;335        psMenuItem2 = &(psCurrentMenu->psItems[index]);
000038  6840              LDR      r0,[r0,#4]
00003a  eb001004          ADD      r0,r0,r4,LSL #4
;;;336        LCD_DisplayStringLine(Line, psMenuItem2->pszTitle);
00003e  6801              LDR      r1,[r0,#0]
000040  b2e8              UXTB     r0,r5
000042  f7fffffe          BL       LCD_DisplayStringLine
;;;337        index++;
000046  1c64              ADDS     r4,r4,#1
;;;338        Line += 24;
000048  3518              ADDS     r5,r5,#0x18
                  |L2.74|
00004a  69b0              LDR      r0,[r6,#0x18]         ;333  ; psCurrentMenu
00004c  7a01              LDRB     r1,[r0,#8]            ;333
00004e  42a1              CMP      r1,r4                 ;333
000050  d8f2              BHI      |L2.56|
;;;339      }
;;;340      /* Set the Back Color */
;;;341      LCD_SetBackColor(Green);
000052  f44f60fc          MOV      r0,#0x7e0
000056  f7fffffe          BL       LCD_SetBackColor
;;;342    
;;;343      /* Set the Text Color */
;;;344      LCD_SetTextColor(White);
00005a  4638              MOV      r0,r7
00005c  f7fffffe          BL       LCD_SetTextColor
;;;345    
;;;346      /* Get the current menu */
;;;347      psMenuItem = &(psCurrentMenu->psItems[MenuItemIndex]);
000060  69b0              LDR      r0,[r6,#0x18]  ; psCurrentMenu
000062  7832              LDRB     r2,[r6,#0]  ; MenuItemIndex
000064  6840              LDR      r0,[r0,#4]
000066  eb001002          ADD      r0,r0,r2,LSL #4
;;;348    
;;;349      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00006a  6130              STR      r0,[r6,#0x10]  ; psMenuItem
00006c  6801              LDR      r1,[r0,#0]
00006e  e8bd41f0          POP      {r4-r8,lr}
000072  1c52              ADDS     r2,r2,#1
000074  2018              MOVS     r0,#0x18
000076  4342              MULS     r2,r0,r2
000078  b2d0              UXTB     r0,r2
00007a  f7ffbffe          B.W      LCD_DisplayStringLine
;;;350    }
;;;351    
                          ENDP

00007e  0000              DCW      0x0000
                  |L2.128|
000080  00000000          DCD      ||.data||

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

                  SelFunc PROC
;;;359    void SelFunc(void)
;;;360    {
000000  b510              PUSH     {r4,lr}
;;;361      psCurrentMenuItem = psMenuItem;
000002  4c0c              LDR      r4,|L3.52|
000004  6920              LDR      r0,[r4,#0x10]  ; psMenuItem
;;;362    
;;;363      if(psMenuItem->psSubMenu != '\0')
000006  6160              STR      r0,[r4,#0x14]  ; psCurrentMenuItem
000008  68c0              LDR      r0,[r0,#0xc]
00000a  b170              CBZ      r0,|L3.42|
;;;364      {
;;;365        /* Update the current Item by the submenu */
;;;366        MenuItemIndex = 0;
00000c  2100              MOVS     r1,#0
00000e  7021              STRB     r1,[r4,#0]  ; MenuItemIndex
;;;367        psCurrentMenu = psMenuItem->psSubMenu;
;;;368        psMenuItem = &(psCurrentMenu->psItems)[MenuItemIndex];
000010  61a0              STR      r0,[r4,#0x18]  ; psCurrentMenu
000012  6840              LDR      r0,[r0,#4]
;;;369        DisplayMenu();
000014  6120              STR      r0,[r4,#0x10]  ; psMenuItem
000016  f7fffffe          BL       DisplayMenu
;;;370        nMenuLevel++;
00001a  7860              LDRB     r0,[r4,#1]  ; nMenuLevel
;;;371        psPrevMenu[nMenuLevel] = psCurrentMenu;
00001c  4a06              LDR      r2,|L3.56|
00001e  1c40              ADDS     r0,r0,#1              ;370
000020  b2c0              UXTB     r0,r0                 ;370
000022  7060              STRB     r0,[r4,#1]            ;370  ; nMenuLevel
000024  69a1              LDR      r1,[r4,#0x18]  ; psCurrentMenu
000026  f8421020          STR      r1,[r2,r0,LSL #2]
                  |L3.42|
;;;372      } 
;;;373      psCurrentMenuItem->pfMenuFunc();
00002a  6960              LDR      r0,[r4,#0x14]  ; psCurrentMenuItem
00002c  6840              LDR      r0,[r0,#4]
00002e  e8bd4010          POP      {r4,lr}
000032  4700              BX       r0
;;;374    }
;;;375    
                          ENDP

                  |L3.52|
000034  00000000          DCD      ||.data||
                  |L3.56|
000038  00000000          DCD      ||.bss||

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

                  UpFunc PROC
;;;384    void UpFunc(void)
;;;385    {
000000  b570              PUSH     {r4-r6,lr}
;;;386      /* Set the Back Color */
;;;387      LCD_SetBackColor(White);
000002  f64f76ff          MOV      r6,#0xffff
000006  4630              MOV      r0,r6
000008  f7fffffe          BL       LCD_SetBackColor
;;;388      /* Set the Text Color */
;;;389      LCD_SetTextColor(Blue);
00000c  201f              MOVS     r0,#0x1f
00000e  f7fffffe          BL       LCD_SetTextColor
;;;390      psMenuItem = &psCurrentMenu->psItems[MenuItemIndex];
000012  4c16              LDR      r4,|L4.108|
;;;391      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
000014  2518              MOVS     r5,#0x18
000016  69a0              LDR      r0,[r4,#0x18]         ;390  ; psCurrentMenu
000018  6841              LDR      r1,[r0,#4]            ;390
00001a  7820              LDRB     r0,[r4,#0]            ;390  ; MenuItemIndex
00001c  eb011100          ADD      r1,r1,r0,LSL #4       ;390
000020  1c40              ADDS     r0,r0,#1
000022  6121              STR      r1,[r4,#0x10]  ; psMenuItem
000024  4368              MULS     r0,r5,r0
000026  6809              LDR      r1,[r1,#0]
000028  b2c0              UXTB     r0,r0
00002a  f7fffffe          BL       LCD_DisplayStringLine
;;;392    
;;;393      if(MenuItemIndex > 0)
00002e  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
000030  b908              CBNZ     r0,|L4.54|
;;;394      {
;;;395        MenuItemIndex--;
;;;396      }
;;;397      else
;;;398      {
;;;399        MenuItemIndex = psCurrentMenu->nItems - 1;
000032  69a0              LDR      r0,[r4,#0x18]  ; psCurrentMenu
000034  7a00              LDRB     r0,[r0,#8]
                  |L4.54|
000036  1e40              SUBS     r0,r0,#1              ;395
000038  7020              STRB     r0,[r4,#0]            ;395  ; MenuItemIndex
;;;400      }
;;;401      /* Set the Back Color */
;;;402      LCD_SetBackColor(Green);
00003a  f44f60fc          MOV      r0,#0x7e0
00003e  f7fffffe          BL       LCD_SetBackColor
;;;403      /* Set the Text Color */
;;;404      LCD_SetTextColor(White);
000042  4630              MOV      r0,r6
000044  f7fffffe          BL       LCD_SetTextColor
;;;405      psMenuItem = &psCurrentMenu->psItems[MenuItemIndex];
000048  69a0              LDR      r0,[r4,#0x18]  ; psCurrentMenu
00004a  6841              LDR      r1,[r0,#4]
00004c  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
00004e  eb011100          ADD      r1,r1,r0,LSL #4
;;;406      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
000052  1c40              ADDS     r0,r0,#1
000054  6121              STR      r1,[r4,#0x10]  ; psMenuItem
000056  4368              MULS     r0,r5,r0
000058  6809              LDR      r1,[r1,#0]
00005a  b2c0              UXTB     r0,r0
00005c  f7fffffe          BL       LCD_DisplayStringLine
;;;407      ItemNumb[nMenuLevel] = MenuItemIndex;
000060  4902              LDR      r1,|L4.108|
000062  7862              LDRB     r2,[r4,#1]  ; nMenuLevel
000064  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
000066  310c              ADDS     r1,r1,#0xc
000068  5488              STRB     r0,[r1,r2]
;;;408    }
00006a  bd70              POP      {r4-r6,pc}
;;;409    
                          ENDP

                  |L4.108|
00006c  00000000          DCD      ||.data||

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

                  DownFunc PROC
;;;418    void DownFunc(void)
;;;419    {
000000  b570              PUSH     {r4-r6,lr}
;;;420      /* Set the Back Color */
;;;421      LCD_SetBackColor(White);
000002  f64f76ff          MOV      r6,#0xffff
000006  4630              MOV      r0,r6
000008  f7fffffe          BL       LCD_SetBackColor

⌨️ 快捷键说明

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