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

📄 test.lst

📁 移植的ucos
💻 LST
📖 第 1 页 / 共 5 页
字号:
    139          }
   \   000001C2   CFC8                       RJMP    ?0059
   \                     ?0095:
   \   000001C4   E004                       LDI     R16,4
   \                     ?0094:
   \   000001C6   930A                       ST      -Y,R16
   \   000001C8   DF52                       RCALL   ?0111
   \   000001CA   5F0D                       SUBI    R16,LOW(253)
   \   000001CC   4F1F                       SBCI    R17,LOW(255)
   \   000001CE   931A                       ST      -Y,R17
   \   000001D0   9508                       RET     
   \                     ?0096:
   \   000001D2   930A                       ST      -Y,R16
   \   000001D4   ....                       RCALL   OSVersion
   \   000001D6   E644                       LDI     R20,LOW(100)
   \   000001D8   E050                       LDI     R21,0
   \   000001DA   ....                       RJMP    ?US_DIVMOD_L02
   \                     ?0099:
   \   000001DC   931A                       ST      -Y,R17
   \   000001DE   930A                       ST      -Y,R16
   \   000001E0   9508                       RET     
   \                     ?0101:
   \   000001E2   2F08                       MOV     R16,R24
   \   000001E4   2F19                       MOV     R17,R25
   \   000001E6   2F2A                       MOV     R18,R26
   \   000001E8   2F3B                       MOV     R19,R27
   \   000001EA   E04A                       LDI     R20,LOW(10)
   \   000001EC   E050                       LDI     R21,LOW(0)
   \   000001EE   E060                       LDI     R22,LOW(0)
   \   000001F0   E070                       LDI     R23,0
   \   000001F2   ....                       RJMP    ?UL_DIVMOD_L03
   \                     ?0102:
   \   000001F4   E060                       LDI     R22,LOW(0)
   \   000001F6   E070                       LDI     R23,LOW(0)
   \   000001F8   CF3A                       RJMP    ?0111
   \                     ?0104:
   \   000001FA   DF39                       RCALL   ?0111
   \                     ?0103:
   \   000001FC   5F0D                       SUBI    R16,LOW(253)
   \   000001FE   4F1F                       SBCI    R17,LOW(255)
   \   00000200   D09E                       RCALL   SPrintDec
   \   00000202   E006                       LDI     R16,6
   \   00000204   930A                       ST      -Y,R16
   \   00000206   9508                       RET     
   \                     ?0105:
   \   00000208   E200                       LDI     R16,32
   \   0000020A   930A                       ST      -Y,R16
   \   0000020C   E005                       LDI     R16,5
   \   0000020E   930A                       ST      -Y,R16
   \   00000210   9508                       RET     
   \                     ;	i               	R26
   \                     ;	data            	R24-R25
   \                     Task:
    140          
    141          /*
    142          **************************************************************************************************************
    143          *                                                  TASKS
    144          **************************************************************************************************************
    145          */
    146          C_task Task (void *data)
    147          {
   \   00000212   9721                       SBIW    R28,LOW(1)
   \   00000214   2FA0                       MOV     R26,R16
   \   00000216   2FB1                       MOV     R27,R17
   \                     ?0061:
    148              INT8U x;
    149              INT8U y;
    150              INT8U err;
    151          
    152              for (;;) {
    153                  OSSemPend(RandomSem, 0, &err);                  /* Acquire semaphore to perform random numbers      */
   \   00000218   DF28                       RCALL   ?0098
   \   0000021A   D017                       RCALL   ?0106
   \   0000021C   ....                       RCALL   OSSemPend
    154                  x = random(80);                                 /* Find X position where task number will appear    */
   \   0000021E   E500                       LDI     R16,80
   \   00000220   D0C9                       RCALL   random
   \   00000222   2F90                       MOV     R25,R16
    155                  y = random(16);                                 /* Find Y position where task number will appear    */
   \   00000224   E100                       LDI     R16,16
   \   00000226   D0C6                       RCALL   random
   \   00000228   2F80                       MOV     R24,R16
    156                  OSSemPost(RandomSem);                           /* Release semaphore                                */
   \   0000022A   D00F                       RCALL   ?0106
   \   0000022C   ....                       RCALL   OSSemPost
    157                                                                  /* Display the task number on the screen            */
    158                  VT102DispChar(x + 1, y + 5, *(char *)data, COLOR_WHITE, COLOR_BLACK);
   \   0000022E   DF10                       RCALL   ?0092
   \   00000230   2FEA                       MOV     R30,R26
   \   00000232   2FFB                       MOV     R31,R27
   \   00000234   8100                       LD      R16,Z
   \   00000236   930A                       ST      -Y,R16
   \   00000238   5F8B                       SUBI    R24,LOW(251)
   \   0000023A   2F48                       MOV     R20,R24
   \   0000023C   9593                       INC     R25
   \   0000023E   2F09                       MOV     R16,R25
   \   00000240   D11E                       RCALL   VT102DispChar
    159                  OSTimeDly(10);                                  /* Delay 3 clock ticks                              */
   \   00000242   E00A                       LDI     R16,LOW(10)
   \   00000244   E010                       LDI     R17,0
   \   00000246   ....                       RCALL   OSTimeDly
    160              }
    161          }
   \   00000248   CFE7                       RJMP    ?0061
   \                     ?0106:
   \   0000024A   9100....                   LDS     R16,LWRD(RandomSem)
   \   0000024E   9110....                   LDS     R17,LWRD((RandomSem+1))
   \   00000252   9508                       RET     
   \                     ;	data            	R26-R27
   \                     ;	y               	R24
   \                     ;	x               	R25
   \                     UartTxHandler:
    162          
    163          /*
    164          **************************************************************************************************************
    165          *                                                  SUPPORT ROUTINES
    166          **************************************************************************************************************
    167          */
    168          
    169          void UartTxHandler (void)
    170          {
    171              UartTxCount--;                                      /* Decrement number of characters left to send      */
   \   00000254   9100....                   LDS     R16,LWRD(UartTxCount)
   \   00000258   950A                       DEC     R16
   \   0000025A   9300....                   STS     LWRD(UartTxCount),R16
    172              if (UartTxCount) {
   \   0000025E   9100....                   LDS     R16,LWRD(UartTxCount)
   \   00000262   2300                       TST     R16
   \   00000264   F0B1                       BREQ    ?0063
    173                          OS_ENTER_CRITICAL();
   \   00000266   930A                       DW      LWRD(37642)
   \   00000268   B70F                       DW      LWRD(46863)
   \   0000026A   94F8                       CLI     
   \   0000026C   930F                       DW      LWRD(37647)
   \   0000026E   9109                       DW      LWRD(37129)
    174                  UDR = UartTxBuf[UartTxRdPtr];                   /* Place next character into UART transmit register */
   \   00000270   91E0....                   LDS     R30,LWRD(UartTxRdPtr)
   \   00000274   E0F0                       LDI     R31,LOW(0)
   \   00000276   ....                       SUBI    R30,LOW(-(UartTxBuf))
   \   00000278   ....                       SBCI    R31,HIGH(-(UartTxBuf))
   \   0000027A   8100                       LD      R16,Z
   \   0000027C   B90C                       OUT     LOW(12),R16
    175                  UartTxRdPtr++;                                  /* Advance to next character                        */
   \   0000027E   9100....                   LDS     R16,LWRD(UartTxRdPtr)
   \   00000282   9503                       INC     R16
   \   00000284   9300....                   STS     LWRD(UartTxRdPtr),R16
    176                          OS_EXIT_CRITICAL();        
   \   00000288   930A                       DW      LWRD(37642)
   \   0000028A   910F                       DW      LWRD(37135)
   \   0000028C   BF0F                       DW      LWRD(48911)
   \   0000028E   9109                       DW      LWRD(37129)
    177              } else {
   \   00000290   C001                       RJMP    ?0064
   \                     ?0063:
    178                  UCR &= ~0x40;                                   /* Disable UART transmit complete interrupt         */
   \   00000292   9856                       CBI     LOW(10),LOW(6)
   \                     ?0064:
    179              }
    180                  OSSemPost(UartTxSem);                               /* Signal that we have room for one more character  */
   \   00000294   D001                       RCALL   ?0109
   \   00000296   ....                       RJMP    OSSemPost
   \                     ?0109:
   \   00000298   9100....                   LDS     R16,LWRD(UartTxSem)
   \   0000029C   9110....                   LDS     R17,LWRD((UartTxSem+1))
   \   000002A0   9508                       RET     
    181          }
   \                     AvrInit:
    182          
    183          void AvrInit (void)
    184          {
    185              TCCR0       = 0x05;                                 /* Set TIMER0 prescaler to CLK/1024                 */
   \   000002A2   E005                       LDI     R16,5
   \   000002A4   BF03                       OUT     LOW(51),R16
    186              TIMSK       = 0x02;                                 /* Enable TIMER0 overflow interrupt                 */
   \   000002A6   E002                       LDI     R16,2
   \   000002A8   BF09                       OUT     LOW(57),R16
    187              UBRR        = 23;                                   /* 19200 BAUD at 7.3728MHz                          */
   \   000002AA   E107                       LDI     R16,23
   \   000002AC   B909                       OUT     LOW(9),R16
    188              MCUCR      |= 0x80;                                 /* Enable external RAM                              */
   \   000002AE   B705                       IN      R16,LOW(53)
   \   000002B0   6800                       ORI     R16,LOW(128)
   \   000002B2   BF05                       OUT     LOW(53),R16
    189              UCR         = 0x08;                                 /* Enable UART transmitter                          */
   \   000002B4   E008                       LDI     R16,8
   \   000002B6   B90A                       OUT     LOW(10),R16
    190              UartTxCount = 0;                                    /* Clear number of characters to send               */
   \   000002B8   E000                       LDI     R16,LOW(0)
   \   000002BA   9300....                   STS     LWRD(UartTxCount),R16
    191              UartTxRdPtr = 0;                                    /* Initialize transmit buffer read pointer          */
   \   000002BE   9300....                   STS     LWRD(UartTxRdPtr),R16
    192              UartTxWrPtr = 0;                                    /* Initialize transmit buffer write pointer         */
   \   000002C2   9300....                   STS     LWRD(UartTxWrPtr),R16
    193          }
   \   000002C6   9508                       RET     
   \                     PutChar:
    194          
    195          
    196          void PutChar (char c)
    197          {
   \   000002C8   938A                       ST      -Y,R24
   \   000002CA   9721                       SBIW    R28,LOW(1)
   \   000002CC   2F80                       MOV     R24,R16
    198              INT8U err;
    199          
    200              OSSemPend(UartTxSem, 0, &err);                      /* Wait for space in transmit buffer                */
   \   000002CE   DECD                       RCALL   ?0098
   \   000002D0   DFE3                       RCALL   ?0109
   \   000002D2   ....                       RCALL   OSSemPend
    201              OS_ENTER_CRITICAL();
   \   000002D4   930A                       DW      LWRD(37642)
   \   000002D6   B70F                       DW      LWRD(46863)
   \   000002D8   94F8                       CLI     
   \   000002DA   930F                       DW      LWRD(37647)
   \   000002DC   9109                       DW      LWRD(37129)
    202              if (UartTxCount) {
   \   000002DE   9100....                   LDS     R16,LWRD(UartTxCount)
   \   000002E2   2300                       TST     R16
   \   000002E4   F089                       BREQ    ?0066
    203                  UartTxBuf[UartTxWrPtr] = c;                     /* Put character to send in transmit buffer         */

⌨️ 快捷键说明

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