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

📄 can.lst

📁 针对arm开发板开发的can总线应用程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \                     ??AT91F_BasicTestSuite_39:
   \   000002A4   1248               LDR      R0,??AT91F_BasicTestSuite_0  ;; _Stdout
   \   000002A6   0028               CMP      R0,#+0
   \   000002A8   03D0               BEQ      ??AT91F_BasicTestSuite_40
   \   000002AA   4A49               LDR      R1,??AT91F_BasicTestSuite_9+0x5C  ;; `?<Constant "---------------------...">_3`
   \   000002AC   1048               LDR      R0,??AT91F_BasicTestSuite_0  ;; _Stdout
   \   000002AE   ........           _BLF     fprintf,??fprintf??rT
    186            // Ask Transmissions on Mailbox 3 --> AT91C_CAN_MRDY raises for Mailbox 3 CAN_MB_SR ,发送传输请求
    187            AT91F_CAN_InitTransferRequest(AT91C_BASE_CAN1,AT91C_CAN_MB3);
   \                     ??AT91F_BasicTestSuite_40:
   \   000002B2   0821               MOVS     R1,#+8
   \   000002B4   1348               LDR      R0,??AT91F_BasicTestSuite_0+0x14  ;; 0xfffffffffff84000
   \   000002B6   ........           _BLF     AT91F_CAN_InitTransferRequest,??AT91F_CAN_InitTransferRequest??rT
    188            AT91F_CAN_InitTransferRequest(AT91C_BASE_CAN0,AT91C_CAN_MB3);
   \   000002BA   0821               MOVS     R1,#+8
   \   000002BC   1048               LDR      R0,??AT91F_BasicTestSuite_0+0x10  ;; 0xfffffffffff80000
   \   000002BE   ........           _BLF     AT91F_CAN_InitTransferRequest,??AT91F_CAN_InitTransferRequest??rT
    189          
    190            // Wait for Last Transmit Mailbox,等待发送结束
    191            tick=0;
   \   000002C2   0020               MOVS     R0,#+0
   \   000002C4   0400               MOVS     R4,R0
    192            do  {
    193              status = AT91F_CAN_GetMessageStatus(&(AT91C_BASE_CAN0->CAN_MB3));
   \                     ??AT91F_BasicTestSuite_41:
   \   000002C6   4648               LDR      R0,??AT91F_BasicTestSuite_9+0x68  ;; 0xfffffffffff80260
   \   000002C8   ........           _BLF     AT91F_CAN_GetMessageStatus,??AT91F_CAN_GetMessageStatus??rT
   \   000002CC   0500               MOVS     R5,R0
    194            }
    195            while( !(status & AT91C_CAN_MRDY) && (++tick<AT91C_CAN_TIMEOUT) );	//记录超时次数
   \   000002CE   2802               LSLS     R0,R5,#+8
   \   000002D0   03D4               BMI      ??AT91F_BasicTestSuite_42
   \   000002D2   641C               ADDS     R4,R4,#+1
   \   000002D4   0E48               LDR      R0,??AT91F_BasicTestSuite_0+0x20  ;; 0x186a0
   \   000002D6   8442               CMP      R4,R0
   \   000002D8   F5D3               BCC      ??AT91F_BasicTestSuite_41
    196          
    197            if (tick == AT91C_CAN_TIMEOUT) {
   \                     ??AT91F_BasicTestSuite_42:
   \   000002DA   0D48               LDR      R0,??AT91F_BasicTestSuite_0+0x20  ;; 0x186a0
   \   000002DC   8442               CMP      R4,R0
   \   000002DE   19D1               BNE      ??AT91F_BasicTestSuite_43
    198              TRACE_ERROR("-E- Test FAILED !\n\r");
   \   000002E0   0348               LDR      R0,??AT91F_BasicTestSuite_0  ;; _Stdout
   \   000002E2   0028               CMP      R0,#+0
   \   000002E4   3DD0               BEQ      ??AT91F_BasicTestSuite_44
   \   000002E6   2C49               LDR      R1,??AT91F_BasicTestSuite_9+0x20  ;; `?<Constant "-E- Test FAILED !\\n\\r">`
   \   000002E8   0148               LDR      R0,??AT91F_BasicTestSuite_0  ;; _Stdout
   \   000002EA   ........           _BLF     fprintf,??fprintf??rT
   \   000002EE   38E0               B        ??AT91F_BasicTestSuite_44
   \                     ??AT91F_BasicTestSuite_0:
   \   000002F0   ........           DC32     _Stdout
   \   000002F4   ........           DC32     `?<Constant "\\n\\r-------------------...">`
   \   000002F8   ........           DC32     `?<Constant "1. Wait for CAN Contr...">`
   \   000002FC   ........           DC32     `?<Constant "---------------------...">`
   \   00000300   0000F8FF           DC32     0xfffffffffff80000
   \   00000304   0040F8FF           DC32     0xfffffffffff84000
   \   00000308   ........           DC32     testCAN0
   \   0000030C   ........           DC32     testCAN1
   \   00000310   A0860100           DC32     0x186a0
    199            } else {
    200              TRACE_INFO("-I- Tranfers Completed: CAN0 & CAN1 Mailboxes 3 MRDY flags have raised.\n\r");
   \                     ??AT91F_BasicTestSuite_43:
   \   00000314   3348               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   00000316   0028               CMP      R0,#+0
   \   00000318   03D0               BEQ      ??AT91F_BasicTestSuite_45
   \   0000031A   3349               LDR      R1,??AT91F_BasicTestSuite_9+0x70  ;; `?<Constant "-I- Tranfers Complete...">_1`
   \   0000031C   3148               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   0000031E   ........           _BLF     fprintf,??fprintf??rT
    201              if( AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN0->CAN_MB3) != AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN1->CAN_MB3) )
   \                     ??AT91F_BasicTestSuite_45:
   \   00000322   2F48               LDR      R0,??AT91F_BasicTestSuite_9+0x68  ;; 0xfffffffffff80260
   \   00000324   ........           _BLF     AT91F_CAN_GetMessageDataLow,??AT91F_CAN_GetMessageDataLow??rT
   \   00000328   0600               MOVS     R6,R0
   \   0000032A   3048               LDR      R0,??AT91F_BasicTestSuite_9+0x74  ;; 0xfffffffffff84260
   \   0000032C   ........           _BLF     AT91F_CAN_GetMessageDataLow,??AT91F_CAN_GetMessageDataLow??rT
   \   00000330   8642               CMP      R6,R0
   \   00000332   06D0               BEQ      ??AT91F_BasicTestSuite_46
    202                TRACE_ERROR("-E- Data Corrupted !\n\r");
   \   00000334   2B48               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   00000336   0028               CMP      R0,#+0
   \   00000338   03D0               BEQ      ??AT91F_BasicTestSuite_46
   \   0000033A   1A49               LDR      R1,??AT91F_BasicTestSuite_9+0x2C  ;; `?<Constant "-E- Data Corrupted !\\n\\r">`
   \   0000033C   2948               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   0000033E   ........           _BLF     fprintf,??fprintf??rT
    203              if( AT91F_CAN_GetMessageDataHigh(&AT91C_BASE_CAN0->CAN_MB3) != AT91F_CAN_GetMessageDataHigh(&AT91C_BASE_CAN1->CAN_MB3) )
   \                     ??AT91F_BasicTestSuite_46:
   \   00000342   2748               LDR      R0,??AT91F_BasicTestSuite_9+0x68  ;; 0xfffffffffff80260
   \   00000344   ........           _BLF     AT91F_CAN_GetMessageDataHigh,??AT91F_CAN_GetMessageDataHigh??rT
   \   00000348   0600               MOVS     R6,R0
   \   0000034A   2848               LDR      R0,??AT91F_BasicTestSuite_9+0x74  ;; 0xfffffffffff84260
   \   0000034C   ........           _BLF     AT91F_CAN_GetMessageDataHigh,??AT91F_CAN_GetMessageDataHigh??rT
   \   00000350   8642               CMP      R6,R0
   \   00000352   06D0               BEQ      ??AT91F_BasicTestSuite_44
    204                TRACE_ERROR("-E- Data Corrupted !\n\r");
   \   00000354   2348               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   00000356   0028               CMP      R0,#+0
   \   00000358   03D0               BEQ      ??AT91F_BasicTestSuite_44
   \   0000035A   1249               LDR      R1,??AT91F_BasicTestSuite_9+0x2C  ;; `?<Constant "-E- Data Corrupted !\\n\\r">`
   \   0000035C   2148               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   0000035E   ........           _BLF     fprintf,??fprintf??rT
    205            }
    206          
    207            ///////////////////////////////////////////////////////////////////////////////////////////
    208            TRACE_INFO("\n\rEnd of Tests\n\r");
   \                     ??AT91F_BasicTestSuite_44:
   \   00000362   2048               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   00000364   0028               CMP      R0,#+0
   \   00000366   03D0               BEQ      ??AT91F_BasicTestSuite_47
   \   00000368   2149               LDR      R1,??AT91F_BasicTestSuite_9+0x78  ;; `?<Constant "\\n\\rEnd of Tests\\n\\r">`
   \   0000036A   1E48               LDR      R0,??AT91F_BasicTestSuite_9+0x6C  ;; _Stdout
   \   0000036C   ........           _BLF     fprintf,??fprintf??rT
    209            return;
   \                     ??AT91F_BasicTestSuite_47:
   \   00000370   70BC               POP      {R4-R6}
   \   00000372   01BC               POP      {R0}
   \   00000374   0047               BX       R0               ;; return
   \   00000376   C046               Nop      
   \                     ??AT91F_BasicTestSuite_9:
   \   00000378   ........           DC32     `?<Constant "-E- CAN0 & CAN1 Initi...">`
   \   0000037C   ........           DC32     `?<Constant "-I- CAN0 & CAN1 Initi...">`
   \   00000380   ........           DC32     `?<Constant "\\n\\r-------------------...">_1`
   \   00000384   ........           DC32     `?<Constant "2. CAN0 Mailbox 0 tra...">`
   \   00000388   ........           DC32     `?<Constant "---------------------...">_1`
   \   0000038C   ........           DC32     `?<Constant "-- CAN0 Mailbox 0: Tx...">`
   \   00000390   ........           DC32     `?<Constant "-- CAN1 Mailbox 0: Rx...">`
   \   00000394   0042F8FF           DC32     0xfffffffffff84200
   \   00000398   ........           DC32     `?<Constant "-E- Test FAILED !\\n\\r">`
   \   0000039C   ........           DC32     `?<Constant "-I- Tranfer Completed...">`
   \   000003A0   0002F8FF           DC32     0xfffffffffff80200
   \   000003A4   ........           DC32     `?<Constant "-E- Data Corrupted !\\n\\r">`
   \   000003A8   ........           DC32     `?<Constant "\\n\\r-------------------...">_2`
   \   000003AC   ........           DC32     `?<Constant "3. CAN0 Mailboxes 1 &...">`
   \   000003B0   ........           DC32     `?<Constant "---------------------...">_2`
   \   000003B4   ........           DC32     `?<Constant "-- CAN0 Mailbox 1 : T...">`
   \   000003B8   ........           DC32     `?<Constant "-- CAN0 Mailbox 2 : T...">`
   \   000003BC   ........           DC32     `?<Constant "-- CAN1 Mailbox 15: R...">`
   \   000003C0   E043F8FF           DC32     0xfffffffffff843e0
   \   000003C4   ........           DC32     `?<Constant "-I- Tranfers Complete...">`
   \   000003C8   2002F8FF           DC32     0xfffffffffff80220
   \   000003CC   ........           DC32     `?<Constant "\\n\\r-------------------...">_3`
   \   000003D0   ........           DC32     `?<Constant "4. CAN0 Mailbox 3 ask...">`
   \   000003D4   ........           DC32     `?<Constant "---------------------...">_3`
   \   000003D8   ........           DC32     `?<Constant "-- CAN0 Mailbox 3: Co...">`
   \   000003DC   ........           DC32     `?<Constant "-- CAN1 Mailbox 3: Pr...">`
   \   000003E0   6002F8FF           DC32     0xfffffffffff80260
   \   000003E4   ........           DC32     _Stdout
   \   000003E8   ........           DC32     `?<Constant "-I- Tranfers Complete...">_1`
   \   000003EC   6042F8FF           DC32     0xfffffffffff84260
   \   000003F0   ........           DC32     `?<Constant "\\n\\rEnd of Tests\\n\\r">`
    210          }
    211          

   \                                 In segment CODE, align 4, keep-with-next
    212          void  CanSendData(unsigned int LData,unsigned HData)
    213          {
   \                     CanSendData:
   \   00000000   F1B5               PUSH     {R0,R4-R7,LR}
   \   00000002   0C00               MOVS     R4,R1
    214            unsigned int status;
    215            unsigned int tick=0;
   \   00000004   0020               MOVS     R0,#+0
   \   00000006   0600               MOVS     R6,R0
    216          
    217            //配置邮箱
    218            //AT91F_InitMailbox();
    219          
    220           //  AT91F_CAN_EnableIt(AT91C_BASE_CAN0,AT91C_CAN_MB0); 在此CAN0—MB0不接收数据,不用开中断
    221             AT91F_CAN_EnableIt(AT91C_BASE_CAN1,AT91C_CAN_MB0);        // can1 为接收数据的邮箱 ,采用中断接收
   \   00000008   0121               MOVS     R1,#+1
   \   0000000A   ....               LDR      R0,??DataTable6  ;; 0xfffffffffff84000
   \   0000000C   ........           _BLF     AT91F_CAN_EnableIt,??AT91F_CAN_EnableIt??rT
    222             AT91F_CAN_CfgMessageDataLow (AT91C_BASE_CAN0_MB0,LData);  //写入要发送的数据低4位
   \   00000010   0099               LDR      R1,[SP, #+0]
   \   00000012   ....               LDR      R0,??DataTable37  ;; 0xfffffffffff80200
   \   00000014   ........           _BLF     AT91F_CAN_CfgMessageDataLow,??AT91F_CAN_CfgMessageDataLow??rT
    223          
    224             AT91F_CAN_CfgMessageDataHigh(AT91C_BASE_CAN0_MB0,HData);  //写入要发送的数据高4位
   \   00000018   2100    

⌨️ 快捷键说明

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