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

📄 can.lst

📁 针对arm开发板开发的can总线应用程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000001C6   ........           _BLF        fprintf,fprintf??rT
    181            TRACE_INFO("4. CAN0 Mailbox 3 asking for CAN1 Mailbox 3 transmission...\n\r");
   \   000001CA   8520               MOV         R0,#+0x85
   \   000001CC   C000               LSL         R0,R0,#+0x3        ;; #+0x428
   \   000001CE   2918               ADD         R1,R5,R0
   \   000001D0   201C               MOV         R0,R4
   \   000001D2   ........           _BLF        fprintf,fprintf??rT
    182            TRACE_INFO("-----------------------------------------------------------\n\r");
   \   000001D6   8D20               MOV         R0,#+0x8D
   \   000001D8   C000               LSL         R0,R0,#+0x3        ;; #+0x468
   \   000001DA   2818               ADD         R0,R5,R0
   \   000001DC   0090               STR         R0,[SP, #+0]
   \   000001DE   011C               MOV         R1,R0
   \   000001E0   201C               MOV         R0,R4
   \   000001E2   ........           _BLF        fprintf,fprintf??rT
    183            TRACE_INFO("-- CAN0 Mailbox 3: Consumer Mailbox \n\r");
   \   000001E6   9520               MOV         R0,#+0x95
   \   000001E8   C000               LSL         R0,R0,#+0x3        ;; #+0x4A8
   \   000001EA   2918               ADD         R1,R5,R0
   \   000001EC   201C               MOV         R0,R4
   \   000001EE   ........           _BLF        fprintf,fprintf??rT
    184            TRACE_INFO("-- CAN1 Mailbox 3: Producer Mailbox \n\r");
   \   000001F2   9A20               MOV         R0,#+0x9A
   \   000001F4   C000               LSL         R0,R0,#+0x3        ;; #+0x4D0
   \   000001F6   2918               ADD         R1,R5,R0
   \   000001F8   201C               MOV         R0,R4
   \   000001FA   ........           _BLF        fprintf,fprintf??rT
    185            TRACE_INFO("-----------------------------------------------------------\n\r");
   \   000001FE   0099               LDR         R1,[SP, #+0]
   \   00000200   201C               MOV         R0,R4
   \   00000202   ........           _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);
   \   00000206   0820               MOV         R0,#+0x8
   \   00000208   1F49               LDR         R1,??AT91F_BasicTestSuite_0+0x1C  ;; 0xfff84024
   \   0000020A   0860               STR         R0,[R1, #+0]
    188            AT91F_CAN_InitTransferRequest(AT91C_BASE_CAN0,AT91C_CAN_MB3);
   \   0000020C   ....               LDR         R1,??DataTable37   ;; 0xfff80024
   \   0000020E   0860               STR         R0,[R1, #+0]
    189          
    190            // Wait for Last Transmit Mailbox,等待发送结束
    191            tick=0;
   \   00000210   0020               MOV         R0,#+0
    192            do  {
    193              status = AT91F_CAN_GetMessageStatus(&(AT91C_BASE_CAN0->CAN_MB3));
   \                     ??AT91F_BasicTestSuite_19:
   \   00000212   1E49               LDR         R1,??AT91F_BasicTestSuite_0+0x20  ;; 0xfff80270
   \   00000214   0968               LDR         R1,[R1, #+0]
    194            }
    195            while( !(status & AT91C_CAN_MRDY) && (++tick<AT91C_CAN_TIMEOUT) );	//记录超时次数
   \   00000216   0902               LSL         R1,R1,#+0x8
   \   00000218   02D4               BMI         ??AT91F_BasicTestSuite_20
   \   0000021A   401C               ADD         R0,R0,#+0x1
   \   0000021C   B042               CMP         R0,R6
   \   0000021E   F8D3               BCC         ??AT91F_BasicTestSuite_19
    196          
    197            if (tick == AT91C_CAN_TIMEOUT) {
   \                     ??AT91F_BasicTestSuite_20:
   \   00000220   B042               CMP         R0,R6
   \   00000222   01D1               BNE         ??AT91F_BasicTestSuite_21
    198              TRACE_ERROR("-E- Test FAILED !\n\r");
   \   00000224   0199               LDR         R1,[SP, #+0x4]
   \   00000226   16E0               B           ??AT91F_BasicTestSuite_22
    199            } else {
    200              TRACE_INFO("-I- Tranfers Completed: CAN0 & CAN1 Mailboxes 3 MRDY flags have raised.\n\r");
   \                     ??AT91F_BasicTestSuite_21:
   \   00000228   9F20               MOV         R0,#+0x9F
   \   0000022A   C000               LSL         R0,R0,#+0x3        ;; #+0x4F8
   \   0000022C   2918               ADD         R1,R5,R0
   \   0000022E   201C               MOV         R0,R4
   \   00000230   ........           _BLF        fprintf,fprintf??rT
    201              if( AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN0->CAN_MB3) != AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN1->CAN_MB3) )
   \   00000234   ....               LDR         R0,??DataTable27   ;; 0xfff80274
   \   00000236   0068               LDR         R0,[R0, #+0]
   \   00000238   ....               LDR         R1,??DataTable28   ;; 0xfff84274
   \   0000023A   0968               LDR         R1,[R1, #+0]
   \   0000023C   8842               CMP         R0,R1
   \   0000023E   03D0               BEQ         ??AT91F_BasicTestSuite_23
    202                TRACE_ERROR("-E- Data Corrupted !\n\r");
   \   00000240   391C               MOV         R1,R7
   \   00000242   201C               MOV         R0,R4
   \   00000244   ........           _BLF        fprintf,fprintf??rT
    203              if( AT91F_CAN_GetMessageDataHigh(&AT91C_BASE_CAN0->CAN_MB3) != AT91F_CAN_GetMessageDataHigh(&AT91C_BASE_CAN1->CAN_MB3) )
   \                     ??AT91F_BasicTestSuite_23:
   \   00000248   ....               LDR         R0,??DataTable29   ;; 0xfff80278
   \   0000024A   0068               LDR         R0,[R0, #+0]
   \   0000024C   ....               LDR         R1,??DataTable30   ;; 0xfff84278
   \   0000024E   0968               LDR         R1,[R1, #+0]
   \   00000250   8842               CMP         R0,R1
   \   00000252   03D0               BEQ         ??AT91F_BasicTestSuite_24
    204                TRACE_ERROR("-E- Data Corrupted !\n\r");
   \   00000254   391C               MOV         R1,R7
   \                     ??AT91F_BasicTestSuite_22:
   \   00000256   201C               MOV         R0,R4
   \   00000258   ........           _BLF        fprintf,fprintf??rT
    205            }
    206          
    207            ///////////////////////////////////////////////////////////////////////////////////////////
    208            TRACE_INFO("\n\rEnd of Tests\n\r");
   \                     ??AT91F_BasicTestSuite_24:
   \   0000025C   0C48               LDR         R0,??AT91F_BasicTestSuite_0+0x24  ;; 0x544
   \   0000025E   2918               ADD         R1,R5,R0
   \   00000260   201C               MOV         R0,R4
   \   00000262   ........           _BLF        fprintf,fprintf??rT
    209            return;
   \   00000266   FCBC               POP         {R2-R7}
   \   00000268   01BC               POP         {R0}
   \   0000026A   0047               BX          R0                 ;; return
   \                     ??AT91F_BasicTestSuite_0:
   \   0000026C   0400F8FF           DC32        0xfff80004
   \   00000270   0000F8FF           DC32        0xfff80000
   \   00000274   0040F8FF           DC32        0xfff84000
   \   00000278   ........           DC32        testCAN0
   \   0000027C   ........           DC32        testCAN1
   \   00000280   1042F8FF           DC32        0xfff84210
   \   00000284   F043F8FF           DC32        0xfff843f0
   \   00000288   2440F8FF           DC32        0xfff84024
   \   0000028C   7002F8FF           DC32        0xfff80270
   \   00000290   44050000           DC32        0x544
    210          }
    211          

   \                                 In segment CODE, align 4, keep-with-next
    212          void  CanSendData(unsigned int LData,unsigned HData)
    213          {
   \                     CanSendData:
   \   00000000   F0B5               PUSH        {R4-R7,LR}
   \   00000002   ....               LDR         R2,??DataTable31   ;; 0xfff84004
   \   00000004   0123               MOV         R3,#+0x1
   \   00000006   1360               STR         R3,[R2, #+0]
   \   00000008   ....               LDR         R2,??DataTable36   ;; 0xfff80214
   \   0000000A   1060               STR         R0,[R2, #+0]
    214            unsigned int status;
    215            unsigned int tick=0;
    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 为接收数据的邮箱 ,采用中断接收
    222             AT91F_CAN_CfgMessageDataLow (AT91C_BASE_CAN0_MB0,LData);  //写入要发送的数据低4位
    223          
    224             AT91F_CAN_CfgMessageDataHigh(AT91C_BASE_CAN0_MB0,HData);  //写入要发送的数据高4位
   \   0000000C   ....               LDR         R6,??DataTable33   ;; 0xfff80218
   \   0000000E   3160               STR         R1,[R6, #+0]
    225          
    226            //测试:将CAN0-MB0中的数据传到CAN1-MB0中, 某一信箱发出数据,只会被相同ID的信箱接收
    227          
    228            TRACE_INFO("\n\r---------------------------------------------------\n\r");
   \   00000010   ....               LDR         R4,??DataTable34   ;; _Stdout
   \   00000012   ....               LDR         R7,??DataTable35   ;; `?<Constant "\\n\\r-------------------...">`
   \   00000014   8220               MOV         R0,#+0x82
   \   00000016   4000               LSL         R0,R0,#+0x1        ;; #+0x104
   \   00000018   3918               ADD         R1,R7,R0
   \   0000001A   201C               MOV         R0,R4
   \   0000001C   ........           _BLF        fprintf,fprintf??rT
    229            TRACE_INFO("1. CAN0 Mailbox 0 transmitting to CAN1 Mailbox 0...\n\r");
   \   00000020   AB20               MOV         R0,#+0xAB
   \   00000022   C000               LSL         R0,R0,#+0x3        ;; #+0x558
   \   00000024   3918               ADD         R1,R7,R0
   \   00000026   201C               MOV         R0,R4
   \   00000028   ........           _BLF        fprintf,fprintf??rT
    230            TRACE_INFO("---------------------------------------------------\n\r");
   \   0000002C   BA20               MOV         R0,#+0xBA
   \   0000002E   4000               LSL         R0,R0,#+0x1        ;; #+0x174
   \   00000030   3D18               ADD         R5,R7,R0
   \   00000032   291C               MOV         R1,R5
   \   00000034   201C               MOV         R0,R4
   \   00000036   ........           _BLF        fprintf,fprintf??rT
    231            TRACE_INFO("-- CAN0 Mailbox 0: Tx Mailbox \n\r");
   \   0000003A   D620               MOV         R0,#+0xD6
   \   0000003C   4000               LSL         R0,R0,#+0x1        ;; #+0x1AC
   \   0000003E   3918               ADD         R1,R7,R0
   \   00000040   201C               MOV         R0,R4
   \   00000042   ........           _BLF        fprintf,fprintf??rT
    232            TRACE_INFO("-- CAN1 Mailbox 0: Rx Mailbox \n\r");
   \   00000046   E820               MOV         R0,#+0xE8
   \   00000048   4000               LSL         R0,R0,#+0x1        ;; #+0x1D0
   \   0000004A   3918               ADD         R1,R7,R0
   \   0000004C   201C               MOV         R0,R4
   \   0000004E   ........           _BLF        fprintf,fprintf??rT
    233            TRACE_INFO("---------------------------------------------------\n\r");
   \   00000052   291C               MOV         R1,R5
   \   00000054   201C               MOV         R0,R4
   \   00000056   ........           _BLF        fprintf,fprintf??rT
    234          
    235            TRACE_INFO("-- CAN0 Mailbox 0: Tx Mailbox send data low 4 byte data is:");
   \   0000005A   B220               MOV         R0,#+0xB2
   \   0000005C   C000               LSL         R0,R0,#+0x3        ;; #+0x590
   \   0000005E   3918               ADD         R1,R7,R0
   \   00000060   201C               MOV         R0,R4
   \   00000062   ........           _BLF        fprintf,fprintf??rT
    236            int ttt=AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN0->CAN_MB0) ;
   \   00000066   ....               LDR         R0,??DataTable36   ;; 0xfff80214
   \   00000068   0268               LDR         R2,[R0, #+0]
    237            TRACE_INFO("%d",ttt);
   \   0000006A   0F4D               LDR         R5,??CanSendData_0  ;; "%d"
   \   0000006C   291C               MOV         R1,R5
   \   0000006E   201C               MOV         R0,R4
   \   00000070   ........           _BLF        fprintf,fprintf??rT
    238          
    239            TRACE_INFO("\n\r-- CAN0 Mailbox 0: Tx Mailbox send data high 4 byte data is:");
   \   00000074   0D48               LDR         R0,??CanSendData_0+0x4  ;; 0x5cc
   \   00000076   3918               ADD         R1,R7,R0

⌨️ 快捷键说明

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