📄 menu.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\menu.o --depend=.\Obj\menu.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\SRAM -I"D:\Program Files\MDK KEIL\ARM\INC\ST\STM32F10x" -D__MICROLIB --omf_browse=.\Obj\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 f5a1f5a1 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 f500f500 ADD r4,r0,#0x100
000012 f842f842 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
;;;217 void DisplayMenu(void)
;;;218 {
000000 e92de92d PUSH {r4-r8,lr}
;;;219 u32 Line = 0, index = 0;
000004 2400 MOVS r4,#0
;;;220 tMenuItem psMenuItem2;
;;;221
;;;222 /* Set the Back Color */
;;;223 LCD_SetBackColor(Blue);
000006 201f MOVS r0,#0x1f
000008 f7fff7ff BL LCD_SetBackColor
;;;224 /* Set the Text Color */
;;;225 LCD_SetTextColor(White);
00000c f64ff64f MOV r7,#0xffff
000010 4638 MOV r0,r7
000012 f7fff7ff BL LCD_SetTextColor
;;;226
;;;227 /* Clear the LCD Screen */
;;;228 LCD_Clear(White);
000016 4638 MOV r0,r7
000018 f7fff7ff BL LCD_Clear
;;;229
;;;230 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 f7fff7ff BL LCD_DisplayStringLine
;;;231 Line += 24;
000028 2518 MOVS r5,#0x18
;;;232
;;;233 /* Set the Back Color */
;;;234 LCD_SetBackColor(White);
00002a 4638 MOV r0,r7
00002c f7fff7ff BL LCD_SetBackColor
;;;235
;;;236 /* Set the Text Color */
;;;237 LCD_SetTextColor(Blue);
000030 201f MOVS r0,#0x1f
000032 f7fff7ff BL LCD_SetTextColor
;;;238
;;;239 while(!(index >= (psCurrentMenu->nItems)))
000036 e008 B |L2.74|
|L2.56|
;;;240 {
;;;241 psMenuItem2 = &(psCurrentMenu->psItems[index]);
000038 6840 LDR r0,[r0,#4]
00003a eb00eb00 ADD r0,r0,r4,LSL #4
;;;242 LCD_DisplayStringLine(Line, psMenuItem2->pszTitle);
00003e 6801 LDR r1,[r0,#0]
000040 b2e8 UXTB r0,r5
000042 f7fff7ff BL LCD_DisplayStringLine
;;;243 index++;
000046 1c64 ADDS r4,r4,#1
;;;244 Line += 24;
000048 3518 ADDS r5,r5,#0x18
|L2.74|
00004a 69b0 LDR r0,[r6,#0x18] ;239 ; psCurrentMenu
00004c 7a01 LDRB r1,[r0,#8] ;239
00004e 42a1 CMP r1,r4 ;239
000050 d8f2 BHI |L2.56|
;;;245 }
;;;246 /* Set the Back Color */
;;;247 LCD_SetBackColor(Green);
000052 f44ff44f MOV r0,#0x7e0
000056 f7fff7ff BL LCD_SetBackColor
;;;248
;;;249 /* Set the Text Color */
;;;250 LCD_SetTextColor(White);
00005a 4638 MOV r0,r7
00005c f7fff7ff BL LCD_SetTextColor
;;;251
;;;252 /* Get the current menu */
;;;253 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 eb00eb00 ADD r0,r0,r2,LSL #4
;;;254
;;;255 LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00006a 6130 STR r0,[r6,#0x10] ; psMenuItem
00006c 6801 LDR r1,[r0,#0]
00006e e8bde8bd 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 f7fff7ff B.W LCD_DisplayStringLine
;;;256 }
;;;257
ENDP
00007e 0000 DCW 0x0000
|L2.128|
000080 00000000 DCD ||.data||
AREA ||i.SelFunc||, CODE, READONLY, ALIGN=2
SelFunc PROC
;;;265 void SelFunc(void)
;;;266 {
000000 b510 PUSH {r4,lr}
;;;267 psCurrentMenuItem = psMenuItem;
000002 4c0c LDR r4,|L3.52|
000004 6920 LDR r0,[r4,#0x10] ; psMenuItem
;;;268
;;;269 if(psMenuItem->psSubMenu != '\0')
000006 6160 STR r0,[r4,#0x14] ; psCurrentMenuItem
000008 68c0 LDR r0,[r0,#0xc]
00000a b170 CBZ r0,|L3.42|
;;;270 {
;;;271 /* Update the current Item by the submenu */
;;;272 MenuItemIndex = 0;
00000c 2100 MOVS r1,#0
00000e 7021 STRB r1,[r4,#0] ; MenuItemIndex
;;;273 psCurrentMenu = psMenuItem->psSubMenu;
;;;274 psMenuItem = &(psCurrentMenu->psItems)[MenuItemIndex];
000010 61a0 STR r0,[r4,#0x18] ; psCurrentMenu
000012 6840 LDR r0,[r0,#4]
;;;275 DisplayMenu();
000014 6120 STR r0,[r4,#0x10] ; psMenuItem
000016 f7fff7ff BL DisplayMenu
;;;276 nMenuLevel++;
00001a 7860 LDRB r0,[r4,#1] ; nMenuLevel
;;;277 psPrevMenu[nMenuLevel] = psCurrentMenu;
00001c 4a06 LDR r2,|L3.56|
00001e 1c40 ADDS r0,r0,#1 ;276
000020 b2c0 UXTB r0,r0 ;276
000022 7060 STRB r0,[r4,#1] ;276 ; nMenuLevel
000024 69a1 LDR r1,[r4,#0x18] ; psCurrentMenu
000026 f842f842 STR r1,[r2,r0,LSL #2]
|L3.42|
;;;278 }
;;;279 psCurrentMenuItem->pfMenuFunc();
00002a 6960 LDR r0,[r4,#0x14] ; psCurrentMenuItem
00002c 6840 LDR r0,[r0,#4]
00002e e8bde8bd POP {r4,lr}
000032 4700 BX r0
;;;280 }
;;;281
ENDP
|L3.52|
000034 00000000 DCD ||.data||
|L3.56|
000038 00000000 DCD ||.bss||
AREA ||i.UpFunc||, CODE, READONLY, ALIGN=2
UpFunc PROC
;;;290 void UpFunc(void)
;;;291 {
000000 b570 PUSH {r4-r6,lr}
;;;292 /* Set the Back Color */
;;;293 LCD_SetBackColor(White);
000002 f64ff64f MOV r6,#0xffff
000006 4630 MOV r0,r6
000008 f7fff7ff BL LCD_SetBackColor
;;;294 /* Set the Text Color */
;;;295 LCD_SetTextColor(Blue);
00000c 201f MOVS r0,#0x1f
00000e f7fff7ff BL LCD_SetTextColor
;;;296 psMenuItem = &psCurrentMenu->psItems[MenuItemIndex];
000012 4c16 LDR r4,|L4.108|
;;;297 LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
000014 2518 MOVS r5,#0x18
000016 69a0 LDR r0,[r4,#0x18] ;296 ; psCurrentMenu
000018 6841 LDR r1,[r0,#4] ;296
00001a 7820 LDRB r0,[r4,#0] ;296 ; MenuItemIndex
00001c eb01eb01 ADD r1,r1,r0,LSL #4 ;296
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 f7fff7ff BL LCD_DisplayStringLine
;;;298
;;;299 if(MenuItemIndex > 0)
00002e 7820 LDRB r0,[r4,#0] ; MenuItemIndex
000030 b908 CBNZ r0,|L4.54|
;;;300 {
;;;301 MenuItemIndex--;
;;;302 }
;;;303 else
;;;304 {
;;;305 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 ;301
000038 7020 STRB r0,[r4,#0] ;301 ; MenuItemIndex
;;;306 }
;;;307 /* Set the Back Color */
;;;308 LCD_SetBackColor(Green);
00003a f44ff44f MOV r0,#0x7e0
00003e f7fff7ff BL LCD_SetBackColor
;;;309 /* Set the Text Color */
;;;310 LCD_SetTextColor(White);
000042 4630 MOV r0,r6
000044 f7fff7ff BL LCD_SetTextColor
;;;311 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 eb01eb01 ADD r1,r1,r0,LSL #4
;;;312 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 f7fff7ff BL LCD_DisplayStringLine
;;;313 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]
;;;314 }
00006a bd70 POP {r4-r6,pc}
;;;315
ENDP
|L4.108|
00006c 00000000 DCD ||.data||
AREA ||i.DownFunc||, CODE, READONLY, ALIGN=2
DownFunc PROC
;;;324 void DownFunc(void)
;;;325 {
000000 b570 PUSH {r4-r6,lr}
;;;326 /* Set the Back Color */
;;;327 LCD_SetBackColor(White);
000002 f64ff64f MOV r6,#0xffff
000006 4630 MOV r0,r6
000008 f7fff7ff BL LCD_SetBackColor
;;;328 /* Set the Text Color */
;;;329 LCD_SetTextColor(Blue);
00000c 201f MOVS r0,#0x1f
00000e f7fff7ff BL LCD_SetTextColor
;;;330 psMenuItem = &psCurrentMenu->psItems[MenuItemIndex];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -