📄 menux.txt
字号:
DisplayMenu PROC
;;;216 *******************************************************************************/
;;;217 void DisplayMenu(void)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;218 {
;;;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 f7fffffe BL LCD_SetBackColor
;;;224 /* Set the Text Color */
;;;225 LCD_SetTextColor(White);
00000c f64f77ff MOV r7,#0xffff
000010 4638 MOV r0,r7
000012 f7fffffe BL LCD_SetTextColor
;;;226
;;;227 /* Clear the LCD Screen */
;;;228 LCD_Clear(White);
000016 4638 MOV r0,r7
000018 f7fffffe BL LCD_Clear
;;;229
;;;230 LCD_DisplayStringLine(Line, psCurrentMenu->pszTitle);
00001c 4e18 LDR r6,|L5.128|
00001e 6930 LDR r0,[r6,#0x10] ; psCurrentMenu
000020 6801 LDR r1,[r0,#0]
000022 2000 MOVS r0,#0
000024 f7fffffe 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 f7fffffe BL LCD_SetBackColor
;;;235
;;;236 /* Set the Text Color */
;;;237 LCD_SetTextColor(Blue);
000030 201f MOVS r0,#0x1f
000032 f7fffffe BL LCD_SetTextColor
;;;238
;;;239 while(!(index >= (psCurrentMenu->nItems)))
000036 e008 B |L5.74|
|L5.56|
;;;240 {
;;;241 psMenuItem2 = &(psCurrentMenu->psItems[index]);
000038 6840 LDR r0,[r0,#4]
00003a eb001004 ADD r0,r0,r4,LSL #4
;;;242 LCD_DisplayStringLine(Line, psMenuItem2->pszTitle);
00003e 6801 LDR r1,[r0,#0]
000040 b2e8 UXTB r0,r5
000042 f7fffffe BL LCD_DisplayStringLine
;;;243 index++;
000046 1c64 ADDS r4,r4,#1
;;;244 Line += 24;
000048 3518 ADDS r5,r5,#0x18
|L5.74|
00004a 6930 LDR r0,[r6,#0x10] ;239 ; psCurrentMenu
00004c 7a01 LDRB r1,[r0,#8] ;239
00004e 42a1 CMP r1,r4 ;239
000050 d8f2 BHI |L5.56|
;;;245 }
;;;246 /* Set the Back Color */
;;;247 LCD_SetBackColor(Green);
000052 f44f60fc MOV r0,#0x7e0
000056 f7fffffe BL LCD_SetBackColor
;;;248
;;;249 /* Set the Text Color */
;;;250 LCD_SetTextColor(White);
00005a 4638 MOV r0,r7
00005c f7fffffe BL LCD_SetTextColor
;;;251
;;;252 /* Get the current menu */
;;;253 psMenuItem = &(psCurrentMenu->psItems[MenuItemIndex]);
000060 6930 LDR r0,[r6,#0x10] ; psCurrentMenu
000062 6841 LDR r1,[r0,#4]
000064 7830 LDRB r0,[r6,#0] ; MenuItemIndex
000066 eb011100 ADD r1,r1,r0,LSL #4
;;;254
;;;255 LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00006a 60b1 STR r1,[r6,#8] ; psMenuItem
00006c 6809 LDR r1,[r1,#0]
00006e e8bd41f0 POP {r4-r8,lr}
000072 1c40 ADDS r0,r0,#1
000074 eb000040 ADD r0,r0,r0,LSL #1
000078 06c0 LSLS r0,r0,#27
00007a 0e00 LSRS r0,r0,#24
00007c f7ffbffe B.W LCD_DisplayStringLine
;;;256 }
;;;257
ENDP
|L5.128|
DCD ||.data||
AREA ||i.DownFunc||, CODE, READONLY, ALIGN=2
DownFunc PROC
;;;322 *******************************************************************************/
;;;323 void DownFunc(void)
000000 b570 PUSH {r4-r6,lr}
;;;324 {
;;;325 /* Set the Back Color */
;;;326 LCD_SetBackColor(White);
000002 f64f75ff MOV r5,#0xffff
000006 4628 MOV r0,r5
000008 f7fffffe BL LCD_SetBackColor
;;;327 /* Set the Text Color */
;;;328 LCD_SetTextColor(Blue);
00000c 201f MOVS r0,#0x1f
00000e f7fffffe BL LCD_SetTextColor
;;;329 psMenuItem = &psCurrentMenu->psItems[MenuItemIndex];
000012 4c1a LDR r4,|L6.124|
000014 6920 LDR r0,[r4,#0x10] ; psCurrentMenu
000016 6841 LDR r1,[r0,#4]
000018 7820 LDRB r0,[r4,#0] ; MenuItemIndex
00001a eb011100 ADD r1,r1,r0,LSL #4
;;;330 LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00001e 1c40 ADDS r0,r0,#1
000020 eb000040 ADD r0,r0,r0,LSL #1
000024 60a1 STR r1,[r4,#8] ; psMenuItem
000026 06c0 LSLS r0,r0,#27
000028 6809 LDR r1,[r1,#0]
00002a 0e00 LSRS r0,r0,#24
00002c f7fffffe BL LCD_DisplayStringLine
;;;331
;;;332 /* Test on the MenuItemIndex value before incrementing it */
;;;333 if(MenuItemIndex >= ((psCurrentMenu->nItems)-1))
000030 6920 LDR r0,[r4,#0x10] ; psCurrentMenu
000032 7a01 LDRB r1,[r0,#8]
000034 7820 LDRB r0,[r4,#0] ; MenuItemIndex
000036 1e49 SUBS r1,r1,#1
000038 4281 CMP r1,r0
00003a dc01 BGT |L6.64|
;;;334 {
;;;335 MenuItemIndex = 0;
00003c 2000 MOVS r0,#0
00003e e000 B |L6.66|
|L6.64|
;;;336 }
;;;337 else
;;;338 {
;;;339 MenuItemIndex++;
000040 1c40 ADDS r0,r0,#1
|L6.66|
000042 7020 STRB r0,[r4,#0]
;;;340 }
;;;341 /* Set the Back Color */
;;;342 LCD_SetBackColor(Green);
000044 f44f60fc MOV r0,#0x7e0
000048 f7fffffe BL LCD_SetBackColor
;;;343 /* Set the Text Color */
;;;344 LCD_SetTextColor(White);
00004c 4628 MOV r0,r5
00004e f7fffffe BL LCD_SetTextColor
;;;345 /* Get the current menu */
;;;346 psMenuItem = &(psCurrentMenu->psItems[MenuItemIndex]);
000052 6920 LDR r0,[r4,#0x10] ; psCurrentMenu
000054 6841 LDR r1,[r0,#4]
000056 7820 LDRB r0,[r4,#0] ; MenuItemIndex
000058 eb011100 ADD r1,r1,r0,LSL #4
;;;347 LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00005c 1c40 ADDS r0,r0,#1
00005e eb000040 ADD r0,r0,r0,LSL #1
000062 60a1 STR r1,[r4,#8] ; psMenuItem
000064 06c0 LSLS r0,r0,#27
000066 6809 LDR r1,[r1,#0]
000068 0e00 LSRS r0,r0,#24
00006a f7fffffe BL LCD_DisplayStringLine
;;;348 ItemNumb[nMenuLevel] = MenuItemIndex;
00006e 4903 LDR r1,|L6.124|
000070 7862 LDRB r2,[r4,#1] ; nMenuLevel
000072 7820 LDRB r0,[r4,#0] ; MenuItemIndex
000074 1c89 ADDS r1,r1,#2
000076 5488 STRB r0,[r1,r2]
;;;349 }
000078 bd70 POP {r4-r6,pc}
;;;350
ENDP
00007a 0000 DCW 0x0000
|L6.124|
DCD ||.data||
AREA ||i.IdleFunc||, CODE, READONLY, ALIGN=1
IdleFunc PROC
;;;453 *******************************************************************************/
;;;454 void IdleFunc(void)
000000 4770 BX lr
;;;455 {
;;;456 /* Nothing to execute: return */
;;;457 return;
;;;458 }
;;;459
ENDP
AREA ||i.LCD_NORDisplay||, CODE, READONLY, ALIGN=2
LCD_NORDisplay PROC
;;;838 *******************************************************************************/
;;;839 void LCD_NORDisplay(u32 address)
000000 e92d4ff1 PUSH {r0,r4-r11,lr}
;;;840 {
000004 4c1b LDR r4,|L8.116|
000006 b082 SUB sp,sp,#8
;;;841 u32 GPIOD_CRL = GPIOD->CRL, GPIOD_CRH = GPIOD->CRH;
000008 6826 LDR r6,[r4,#0]
00000a 6867 LDR r7,[r4,#4]
;;;842 u32 GPIOE_CRL = GPIOE->CRL, GPIOE_CRH = GPIOE->CRH;
00000c f8d48400 LDR r8,[r4,#0x400]
000010 f8d4b404 LDR r11,[r4,#0x404]
;;;843 u32 GPIOF_CRL = GPIOF->CRL, GPIOF_CRH = GPIOF->CRH;
000014 f8d40800 LDR r0,[r4,#0x800]
000018 9001 STR r0,[sp,#4]
00001a f8d40804 LDR r0,[r4,#0x804]
;;;844 u32 GPIOG_CRL = GPIOG->CRL, GPIOG_CRH = GPIOG->CRH;
00001e 4d16 LDR r5,|L8.120|
000020 9000 STR r0,[sp,#0]
000022 f8d59000 LDR r9,[r5,#0]
000026 f8d5a004 LDR r10,[r5,#4]
;;;845
;;;846 /* Write/read to/from FSMC SRAM memory *************************************/
;;;847 /* Enable the FSMC Clock */
;;;848 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
00002a 2101 MOVS r1,#1
00002c 0208 LSLS r0,r1,#8
00002e f7fffffe BL RCC_AHBPeriphClockCmd
;;;849
;;;850 /* Configure FSMC Bank1 NOR/SRAM2 */
;;;851 FSMC_NOR_Init();
000032 f7fffffe BL FSMC_NOR_Init
;;;852
;;;853 /* Read NOR memory ID */
;;;854 FSMC_NOR_ReadID(&NOR_ID);
000036 4811 LDR r0,|L8.124|
000038 f7fffffe BL FSMC_NOR_ReadID
;;;855
;;;856 FSMC_NOR_ReturnToReadMode();
00003c f7fffffe BL FSMC_NOR_ReturnToReadMode
;;;857
;;;858
;;;859 /* Slide n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -