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

📄 menu.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 2 页
字号:
000012  4c18              LDR      r4,|L5.116|
;;;331      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
000014  2518              MOVS     r5,#0x18
000016  69a0              LDR      r0,[r4,#0x18]         ;330  ; psCurrentMenu
000018  6841              LDR      r1,[r0,#4]            ;330
00001a  7820              LDRB     r0,[r4,#0]            ;330  ; MenuItemIndex
00001c  eb01eb01          ADD      r1,r1,r0,LSL #4       ;330
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
;;;332          
;;;333      /* Test on the MenuItemIndex value before incrementing it */
;;;334      if(MenuItemIndex >= ((psCurrentMenu->nItems)-1))
00002e  69a0              LDR      r0,[r4,#0x18]  ; psCurrentMenu
000030  7a01              LDRB     r1,[r0,#8]
000032  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
000034  1e49              SUBS     r1,r1,#1
000036  4281              CMP      r1,r0
000038  dc01              BGT      |L5.62|
;;;335      {
;;;336        MenuItemIndex = 0;
00003a  2000              MOVS     r0,#0
00003c  e000              B        |L5.64|
                  |L5.62|
;;;337      }
;;;338      else
;;;339      {
;;;340        MenuItemIndex++;
00003e  1c40              ADDS     r0,r0,#1
                  |L5.64|
000040  7020              STRB     r0,[r4,#0]  ; MenuItemIndex
;;;341      }
;;;342      /* Set the Back Color */
;;;343      LCD_SetBackColor(Green);
000042  f44ff44f          MOV      r0,#0x7e0
000046  f7fff7ff          BL       LCD_SetBackColor
;;;344      /* Set the Text Color */
;;;345      LCD_SetTextColor(White);
00004a  4630              MOV      r0,r6
00004c  f7fff7ff          BL       LCD_SetTextColor
;;;346      /* Get the current menu */
;;;347      psMenuItem = &(psCurrentMenu->psItems[MenuItemIndex]);
000050  69a0              LDR      r0,[r4,#0x18]  ; psCurrentMenu
000052  6841              LDR      r1,[r0,#4]
000054  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
000056  eb01eb01          ADD      r1,r1,r0,LSL #4
;;;348      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00005a  1c40              ADDS     r0,r0,#1
00005c  6121              STR      r1,[r4,#0x10]  ; psMenuItem
00005e  4368              MULS     r0,r5,r0
000060  6809              LDR      r1,[r1,#0]
000062  b2c0              UXTB     r0,r0
000064  f7fff7ff          BL       LCD_DisplayStringLine
;;;349      ItemNumb[nMenuLevel] = MenuItemIndex;
000068  4902              LDR      r1,|L5.116|
00006a  7862              LDRB     r2,[r4,#1]  ; nMenuLevel
00006c  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
00006e  310c              ADDS     r1,r1,#0xc
000070  5488              STRB     r0,[r1,r2]
;;;350    }
000072  bd70              POP      {r4-r6,pc}
;;;351    
                          ENDP

                  |L5.116|
000074  00000000          DCD      ||.data||

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

                  ReadKey PROC
;;;391    u8 ReadKey(void)
;;;392    {
000000  b570              PUSH     {r4-r6,lr}
;;;393      /* "right" key is pressed */
;;;394      if(!GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_13))
000002  4c2d              LDR      r4,|L6.184|
000004  f44ff44f          MOV      r5,#0x2000
000008  4629              MOV      r1,r5
00000a  4620              MOV      r0,r4
00000c  f7fff7ff          BL       GPIO_ReadInputDataBit
000010  b938              CBNZ     r0,|L6.34|
                  |L6.18|
;;;395      {
;;;396        while(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_13) == Bit_RESET)
000012  4629              MOV      r1,r5
000014  4620              MOV      r0,r4
000016  f7fff7ff          BL       GPIO_ReadInputDataBit
00001a  2800              CMP      r0,#0
00001c  d0f9              BEQ      |L6.18|
;;;397        {
;;;398        } 
;;;399        return RIGHT; 
00001e  2002              MOVS     r0,#2
;;;400      }	
;;;401      /* "left" key is pressed */
;;;402      if(!GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_14))
;;;403      {
;;;404        while(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_14) == Bit_RESET)
;;;405        {
;;;406        }
;;;407        return LEFT; 
;;;408      }
;;;409      /* "up" key is pressed */
;;;410      if(!GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_15))
;;;411      {
;;;412        while(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_15) == Bit_RESET)
;;;413        {
;;;414        }
;;;415        return UP; 
;;;416      }
;;;417      /* "down" key is pressed */
;;;418      if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3))
;;;419      {
;;;420        while(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3) == Bit_RESET)
;;;421        {
;;;422        } 
;;;423        return DOWN; 
;;;424      }
;;;425      /* "sel" key is pressed */
;;;426      if(!GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_7))
;;;427      {
;;;428        while(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_7) == Bit_RESET)
;;;429        {
;;;430        } 
;;;431        return SEL; 
;;;432      }
;;;433      /* "KEY" key is pressed */
;;;434      if(!GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_8))
;;;435      {
;;;436        while(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_8) == Bit_RESET)
;;;437        {
;;;438        } 
;;;439        return KEY; 
;;;440      }
;;;441      /* No key is pressed */
;;;442      else 
;;;443      {
;;;444        return NOKEY;
;;;445      }
;;;446    }
000020  bd70              POP      {r4-r6,pc}
                  |L6.34|
000022  f44ff44f          MOV      r5,#0x4000            ;402
000026  4629              MOV      r1,r5                 ;402
000028  4620              MOV      r0,r4                 ;402
00002a  f7fff7ff          BL       GPIO_ReadInputDataBit
00002e  b938              CBNZ     r0,|L6.64|
                  |L6.48|
000030  4629              MOV      r1,r5                 ;404
000032  4620              MOV      r0,r4                 ;404
000034  f7fff7ff          BL       GPIO_ReadInputDataBit
000038  2800              CMP      r0,#0                 ;404
00003a  d0f9              BEQ      |L6.48|
00003c  2003              MOVS     r0,#3                 ;407
00003e  bd70              POP      {r4-r6,pc}
                  |L6.64|
000040  f44ff44f          MOV      r5,#0x8000            ;410
000044  4629              MOV      r1,r5                 ;410
000046  4620              MOV      r0,r4                 ;410
000048  f7fff7ff          BL       GPIO_ReadInputDataBit
00004c  b938              CBNZ     r0,|L6.94|
                  |L6.78|
00004e  4629              MOV      r1,r5                 ;412
000050  4620              MOV      r0,r4                 ;412
000052  f7fff7ff          BL       GPIO_ReadInputDataBit
000056  2800              CMP      r0,#0                 ;412
000058  d0f9              BEQ      |L6.78|
00005a  2004              MOVS     r0,#4                 ;415
00005c  bd70              POP      {r4-r6,pc}
                  |L6.94|
00005e  4d17              LDR      r5,|L6.188|
000060  2108              MOVS     r1,#8                 ;418
000062  4628              MOV      r0,r5                 ;418
000064  f7fff7ff          BL       GPIO_ReadInputDataBit
000068  b938              CBNZ     r0,|L6.122|
                  |L6.106|
00006a  2108              MOVS     r1,#8                 ;420
00006c  4628              MOV      r0,r5                 ;420
00006e  f7fff7ff          BL       GPIO_ReadInputDataBit
000072  2800              CMP      r0,#0                 ;420
000074  d0f9              BEQ      |L6.106|
000076  2005              MOVS     r0,#5                 ;423
000078  bd70              POP      {r4-r6,pc}
                  |L6.122|
00007a  2180              MOVS     r1,#0x80              ;426
00007c  4620              MOV      r0,r4                 ;426
00007e  f7fff7ff          BL       GPIO_ReadInputDataBit
000082  b938              CBNZ     r0,|L6.148|
                  |L6.132|
000084  2180              MOVS     r1,#0x80              ;428
000086  4620              MOV      r0,r4                 ;428
000088  f7fff7ff          BL       GPIO_ReadInputDataBit
00008c  2800              CMP      r0,#0                 ;428
00008e  d0f9              BEQ      |L6.132|
000090  2001              MOVS     r0,#1                 ;431
000092  bd70              POP      {r4-r6,pc}
                  |L6.148|
000094  f44ff44f          MOV      r5,#0x100             ;434
000098  4629              MOV      r1,r5                 ;434
00009a  4620              MOV      r0,r4                 ;434
00009c  f7fff7ff          BL       GPIO_ReadInputDataBit
0000a0  b938              CBNZ     r0,|L6.178|
                  |L6.162|
0000a2  4629              MOV      r1,r5                 ;436
0000a4  4620              MOV      r0,r4                 ;436
0000a6  f7fff7ff          BL       GPIO_ReadInputDataBit
0000aa  2800              CMP      r0,#0                 ;436
0000ac  d0f9              BEQ      |L6.162|
0000ae  2006              MOVS     r0,#6                 ;439
0000b0  bd70              POP      {r4-r6,pc}
                  |L6.178|
0000b2  2000              MOVS     r0,#0                 ;444
0000b4  bd70              POP      {r4-r6,pc}
;;;447    
                          ENDP

0000b6  0000              DCW      0x0000
                  |L6.184|
0000b8  40012000          DCD      0x40012000
                  |L6.188|
0000bc  40011400          DCD      0x40011400

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

                  LCD_NORDisplay PROC
;;;867    void LCD_NORDisplay(u32 address)
;;;868    {
000000  e92de92d          PUSH     {r0,r4-r11,lr}
000004  4c19              LDR      r4,|L7.108|
000006  b082              SUB      sp,sp,#8
;;;869      u32 GPIOD_CRL = GPIOD->CRL,  GPIOD_CRH = GPIOD->CRH;
000008  6826              LDR      r6,[r4,#0]
00000a  6867              LDR      r7,[r4,#4]
;;;870      u32 GPIOE_CRL = GPIOE->CRL,  GPIOE_CRH = GPIOE->CRH;
00000c  f8d4f8d4          LDR      r8,[r4,#0x400]
000010  f8d4f8d4          LDR      r9,[r4,#0x404]
;;;871      u32 GPIOF_CRL = GPIOF->CRL,  GPIOF_CRH = GPIOF->CRH;
000014  f8d4f8d4          LDR      r10,[r4,#0x800]
000018  f8d4f8d4          LDR      r11,[r4,#0x804]
;;;872      u32 GPIOG_CRL = GPIOG->CRL,  GPIOG_CRH = GPIOG->CRH;
00001c  4d14              LDR      r5,|L7.112|
00001e  6828              LDR      r0,[r5,#0]
000020  9001              STR      r0,[sp,#4]
000022  6868              LDR      r0,[r5,#4]
;;;873    
;;;874      /* Write/read to/from FSMC SRAM memory  *************************************/
;;;875      /* Enable the FSMC Clock */
;;;876      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000024  2101              MOVS     r1,#1
000026  9000              STR      r0,[sp,#0]
000028  0208              LSLS     r0,r1,#8
00002a  f7fff7ff          BL       RCC_AHBPeriphClockCmd
;;;877      
;;;878      /* Configure FSMC Bank1 NOR/SRAM2 */
;;;879      FSMC_NOR_Init();
00002e  f7fff7ff          BL       FSMC_NOR_Init
;;;880      
;;;881      /* Read NOR memory ID */
;;;882      FSMC_NOR_ReadID(&NOR_ID);
000032  4810              LDR      r0,|L7.116|
000034  f7fff7ff          BL       FSMC_NOR_ReadID
;;;883    
;;;884      FSMC_NOR_ReturnToReadMode();
000038  f7fff7ff          BL       FSMC_NOR_ReturnToReadMode
;;;885    
;;;886      /* Slide n

⌨️ 快捷键说明

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