📄 menu.txt
字号:
; 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 + -