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

📄 stm32f10x_can.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0000006C   C4F88031           STR      R3,[R4, #+384]
   \   00000070   10E0               B.N      ??CAN_Transmit_6
    501              }
    502              else
    503              {
    504                assert_param(IS_CAN_EXTID(TxMessage->ExtId));
    505                CANx->sTxMailBox[transmit_mailbox].TIR |= ((TxMessage->ExtId<<3) | TxMessage->IDE | 
    506                                                         TxMessage->RTR);
   \                     ??CAN_Transmit_5:
   \   00000072   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000074   12EB0013           ADDS     R3,R2,R0, LSL #+4
   \   00000078   D3F88031           LDR      R3,[R3, #+384]
   \   0000007C   4C68               LDR      R4,[R1, #+4]
   \   0000007E   0D7A               LDRB     R5,[R1, #+8]
   \   00000080   55EAC404           ORRS     R4,R5,R4, LSL #+3
   \   00000084   4D7A               LDRB     R5,[R1, #+9]
   \   00000086   2C43               ORRS     R4,R5,R4
   \   00000088   2343               ORRS     R3,R4,R3
   \   0000008A   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   0000008C   12EB0014           ADDS     R4,R2,R0, LSL #+4
   \   00000090   C4F88031           STR      R3,[R4, #+384]
    507              }
    508              
    509          
    510              /* Set up the DLC */
    511              TxMessage->DLC &= (uint8_t)0x0000000F;
   \                     ??CAN_Transmit_6:
   \   00000094   8B7A               LDRB     R3,[R1, #+10]
   \   00000096   13F00F03           ANDS     R3,R3,#0xF
   \   0000009A   8B72               STRB     R3,[R1, #+10]
    512              CANx->sTxMailBox[transmit_mailbox].TDTR &= (uint32_t)0xFFFFFFF0;
   \   0000009C   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   0000009E   12EB0013           ADDS     R3,R2,R0, LSL #+4
   \   000000A2   D3F88431           LDR      R3,[R3, #+388]
   \   000000A6   1B09               LSRS     R3,R3,#+4
   \   000000A8   1B01               LSLS     R3,R3,#+4
   \   000000AA   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   000000AC   12EB0014           ADDS     R4,R2,R0, LSL #+4
   \   000000B0   C4F88431           STR      R3,[R4, #+388]
    513              CANx->sTxMailBox[transmit_mailbox].TDTR |= TxMessage->DLC;
   \   000000B4   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   000000B6   12EB0013           ADDS     R3,R2,R0, LSL #+4
   \   000000BA   D3F88431           LDR      R3,[R3, #+388]
   \   000000BE   8C7A               LDRB     R4,[R1, #+10]
   \   000000C0   2343               ORRS     R3,R4,R3
   \   000000C2   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   000000C4   12EB0014           ADDS     R4,R2,R0, LSL #+4
   \   000000C8   C4F88431           STR      R3,[R4, #+388]
    514          
    515              /* Set up the data field */
    516              CANx->sTxMailBox[transmit_mailbox].TDLR = (((uint32_t)TxMessage->Data[3] << 24) | 
    517                                                       ((uint32_t)TxMessage->Data[2] << 16) |
    518                                                       ((uint32_t)TxMessage->Data[1] << 8) | 
    519                                                       ((uint32_t)TxMessage->Data[0]));
   \   000000CC   8B7B               LDRB     R3,[R1, #+14]
   \   000000CE   4C7B               LDRB     R4,[R1, #+13]
   \   000000D0   2404               LSLS     R4,R4,#+16
   \   000000D2   54EA0363           ORRS     R3,R4,R3, LSL #+24
   \   000000D6   0C7B               LDRB     R4,[R1, #+12]
   \   000000D8   53EA0423           ORRS     R3,R3,R4, LSL #+8
   \   000000DC   CC7A               LDRB     R4,[R1, #+11]
   \   000000DE   2343               ORRS     R3,R4,R3
   \   000000E0   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   000000E2   12EB0014           ADDS     R4,R2,R0, LSL #+4
   \   000000E6   C4F88831           STR      R3,[R4, #+392]
    520              CANx->sTxMailBox[transmit_mailbox].TDHR = (((uint32_t)TxMessage->Data[7] << 24) | 
    521                                                       ((uint32_t)TxMessage->Data[6] << 16) |
    522                                                       ((uint32_t)TxMessage->Data[5] << 8) |
    523                                                       ((uint32_t)TxMessage->Data[4]));
   \   000000EA   8B7C               LDRB     R3,[R1, #+18]
   \   000000EC   4C7C               LDRB     R4,[R1, #+17]
   \   000000EE   2404               LSLS     R4,R4,#+16
   \   000000F0   54EA0363           ORRS     R3,R4,R3, LSL #+24
   \   000000F4   0C7C               LDRB     R4,[R1, #+16]
   \   000000F6   53EA0423           ORRS     R3,R3,R4, LSL #+8
   \   000000FA   CC7B               LDRB     R4,[R1, #+15]
   \   000000FC   2343               ORRS     R3,R4,R3
   \   000000FE   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000100   12EB0014           ADDS     R4,R2,R0, LSL #+4
   \   00000104   C4F88C31           STR      R3,[R4, #+396]
    524              /* Request transmission */
    525              CANx->sTxMailBox[transmit_mailbox].TIR |= TMIDxR_TXRQ;
   \   00000108   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   0000010A   12EB0013           ADDS     R3,R2,R0, LSL #+4
   \   0000010E   D3F88031           LDR      R3,[R3, #+384]
   \   00000112   53F00103           ORRS     R3,R3,#0x1
   \   00000116   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000118   12EB0014           ADDS     R4,R2,R0, LSL #+4
   \   0000011C   C4F88031           STR      R3,[R4, #+384]
    526            }
    527            return transmit_mailbox;
   \                     ??CAN_Transmit_4:
   \   00000120   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000122   30BC               POP      {R4,R5}
   \   00000124   7047               BX       LR               ;; return
    528          }
    529          
    530          /**
    531            * @brief  Checks the transmission of a message.
    532            * @param  CANx: where x can be 1 or 2 to to select the CAN peripheral.
    533            * @param  TransmitMailbox: the number of the mailbox that is used for transmission.
    534            * @retval CANTXOK if the CAN driver transmits the message, CANTXFAILED in an other case.
    535            */

   \                                 In section .text, align 2, keep-with-next
    536          uint8_t CAN_TransmitStatus(CAN_TypeDef* CANx, uint8_t TransmitMailbox)
    537          {
   \                     CAN_TransmitStatus:
   \   00000000   0200               MOVS     R2,R0
    538            /* RQCP, TXOK and TME bits */
    539            uint8_t state = 0;
   \   00000002   0020               MOVS     R0,#+0
    540            /* Check the parameters */
    541            assert_param(IS_CAN_ALL_PERIPH(CANx));
    542            assert_param(IS_CAN_TRANSMITMAILBOX(TransmitMailbox));
    543            switch (TransmitMailbox)
   \   00000004   C9B2               UXTB     R1,R1            ;; ZeroExt  R1,R1,#+24,#+24
   \   00000006   0029               CMP      R1,#+0
   \   00000008   03D0               BEQ.N    ??CAN_TransmitStatus_0
   \   0000000A   0229               CMP      R1,#+2
   \   0000000C   20D0               BEQ.N    ??CAN_TransmitStatus_1
   \   0000000E   0FD3               BCC.N    ??CAN_TransmitStatus_2
   \   00000010   2EE0               B.N      ??CAN_TransmitStatus_3
    544            {
    545              case (0): state |= (uint8_t)((CANx->TSR & CAN_TSR_RQCP0) << 2);
   \                     ??CAN_TransmitStatus_0:
   \   00000012   9368               LDR      R3,[R2, #+8]
   \   00000014   13F00103           ANDS     R3,R3,#0x1
   \   00000018   50EA8300           ORRS     R0,R0,R3, LSL #+2
    546                state |= (uint8_t)((CANx->TSR & CAN_TSR_TXOK0) >> 0);
   \   0000001C   9368               LDR      R3,[R2, #+8]
   \   0000001E   13F00203           ANDS     R3,R3,#0x2
   \   00000022   1843               ORRS     R0,R3,R0
    547                state |= (uint8_t)((CANx->TSR & CAN_TSR_TME0) >> 26);
   \   00000024   9368               LDR      R3,[R2, #+8]
   \   00000026   9B0E               LSRS     R3,R3,#+26
   \   00000028   13F00103           ANDS     R3,R3,#0x1
   \   0000002C   1843               ORRS     R0,R3,R0
    548                break;
   \   0000002E   21E0               B.N      ??CAN_TransmitStatus_4
    549              case (1): state |= (uint8_t)((CANx->TSR & CAN_TSR_RQCP1) >> 6);
   \                     ??CAN_TransmitStatus_2:
   \   00000030   9368               LDR      R3,[R2, #+8]
   \   00000032   9B09               LSRS     R3,R3,#+6
   \   00000034   13F00403           ANDS     R3,R3,#0x4
   \   00000038   1843               ORRS     R0,R3,R0
    550                state |= (uint8_t)((CANx->TSR & CAN_TSR_TXOK1) >> 8);
   \   0000003A   9368               LDR      R3,[R2, #+8]
   \   0000003C   1B0A               LSRS     R3,R3,#+8
   \   0000003E   13F00203           ANDS     R3,R3,#0x2
   \   00000042   1843               ORRS     R0,R3,R0
    551                state |= (uint8_t)((CANx->TSR & CAN_TSR_TME1) >> 27);
   \   00000044   9368               LDR      R3,[R2, #+8]
   \   00000046   DB0E               LSRS     R3,R3,#+27
   \   00000048   13F00103           ANDS     R3,R3,#0x1
   \   0000004C   1843               ORRS     R0,R3,R0
    552                break;
   \   0000004E   11E0               B.N      ??CAN_TransmitStatus_4
    553              case (2): state |= (uint8_t)((CANx->TSR & CAN_TSR_RQCP2) >> 14);
   \                     ??CAN_TransmitStatus_1:
   \   00000050   9368               LDR      R3,[R2, #+8]
   \   00000052   9B0B               LSRS     R3,R3,#+14
   \   00000054   13F00403           ANDS     R3,R3,#0x4
   \   00000058   1843               ORRS     R0,R3,R0
    554                state |= (uint8_t)((CANx->TSR & CAN_TSR_TXOK2) >> 16);
   \   0000005A   9368               LDR      R3,[R2, #+8]
   \   0000005C   1B0C               LSRS     R3,R3,#+16
   \   0000005E   13F00203           ANDS     R3,R3,#0x2
   \   00000062   1843               ORRS     R0,R3,R0
    555                state |= (uint8_t)((CANx->TSR & CAN_TSR_TME2) >> 28);
   \   00000064   9368               LDR      R3,[R2, #+8]
   \   00000066   1B0F               LSRS     R3,R3,#+28
   \   00000068   13F00103           ANDS     R3,R3,#0x1
   \   0000006C   1843               ORRS     R0,R3,R0
    556                break;
   \   0000006E   01E0               B.N      ??CAN_TransmitStatus_4
    557              default:
    558                state = CANTXFAILED;
   \                     ??CAN_TransmitStatus_3:
   \   00000070   0023               MOVS     R3,#+0
   \   00000072   1800               MOVS     R0,R3
    559                break;
    560            }
    561            switch (state)
   \                     ??CAN_TransmitStatus_4:
   \   00000074   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000076   0300               MOVS     R3,R0
   \   00000078   002B               CMP      R3,#+0
   \   0000007A   04D0               BEQ.N    ??CAN_TransmitStatus_5
   \   0000007C   052B               CMP      R3,#+5
   \   0000007E   05D0               BEQ.N    ??CAN_TransmitStatus_6
   \   00000080   072B               CMP      R3,#+7
   \   00000082   06D0               BEQ.N    ??CAN_TransmitStatus_7
   \   00000084   08E0               B.N      ??CAN_TransmitStatus_8
    562            {
    563                /* transmit pending  */
    564              case (0x0): state = CANTXPENDING;
   \                     ??CAN_TransmitStatus_5:
   \   00000086   0223               MOVS     R3,#+2
   \   00000088   1800               MOVS     R0,R3
    565                break;
   \   0000008A   07E0               B.N      ??CAN_TransmitStatus_9
    566                /* transmit failed  */
    567              case (0x5): state = CANTXFAILED;
   \                     ??CAN_TransmitStatus_6:
   \   0000008C   0023               MOVS     R3,#+0
   \   0000008E   1800               MOVS     R0,R3
    568                break;
   \   00000090   04E0               B.N      ??CAN_TransmitStatus_9
    569                /* transmit succedeed  */
    570              case (0x7): state = CANTXOK;
   \                     ??CAN_TransmitStatus_7:
   \   00000092   0123               MOVS     R3,#+1
   \   00000094   1800               MOVS     R0,R3
    571                break;
   \   00000096   01E0               B.N      ??CAN_TransmitStatus_9
    572              default:
    573                state = CANTXFAILED;
   \                     ??CAN_TransmitStatus_8:
   \   00000098   0023               MOVS     R3,#+0
   \   0000009A   1800               MOVS     R0,R3
    574                break;
    575            }
    576            return state;
   \                     ??CAN_TransmitStatus_9:
   \   0000009C   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   0000009E   7047               BX       LR               ;; return
    577          }
    578          
    579          /**
    580            * @brief  Cancels a transmit request.
    581            * @param  CANx: where x can be 1 or 2 to to select the CAN peripheral. 
    582            * @param  Mailbox: Mailbox number.
    583            * @retval None.
    584            */

   \                                 In secti

⌨️ 快捷键说明

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