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

📄 main.lst

📁 针对arm开发板开发的can总线应用程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0000000E   C046               Nop      
   \                     ??AT91F_CAN0_CfgPMC_0:
   \   00000010   00FCFFFF           DC32     0xfffffffffffffc00

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_CAN0_CfgPIO(void)
   \                     AT91F_CAN0_CfgPIO:
   \   00000000   00B5               PUSH     {LR}
   \   00000002   0022               MOVS     R2,#+0
   \   00000004   C021               MOVS     R1,#+192
   \   00000006   0905               LSLS     R1,R1,#+20       ;; #+201326592
   \   00000008   0248               LDR      R0,??AT91F_CAN0_CfgPIO_0  ;; 0xfffffffffffff400
   \   0000000A   ........           _BLF     AT91F_PIO_CfgPeriph,??AT91F_PIO_CfgPeriph??rT
   \   0000000E   01BC               POP      {R0}
   \   00000010   0047               BX       R0               ;; return
   \   00000012   C046               Nop      
   \                     ??AT91F_CAN0_CfgPIO_0:
   \   00000014   00F4FFFF           DC32     0xfffffffffffff400

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_CAN1_CfgPMC(void)
   \                     AT91F_CAN1_CfgPMC:
   \   00000000   00B5               PUSH     {LR}
   \   00000002   2021               MOVS     R1,#+32
   \   00000004   0248               LDR      R0,??AT91F_CAN1_CfgPMC_0  ;; 0xfffffffffffffc00
   \   00000006   ........           _BLF     AT91F_PMC_EnablePeriphClock,??AT91F_PMC_EnablePeriphClock??rT
   \   0000000A   01BC               POP      {R0}
   \   0000000C   0047               BX       R0               ;; return
   \   0000000E   C046               Nop      
   \                     ??AT91F_CAN1_CfgPMC_0:
   \   00000010   00FCFFFF           DC32     0xfffffffffffffc00

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_CAN1_CfgPIO(void)
   \                     AT91F_CAN1_CfgPIO:
   \   00000000   00B5               PUSH     {LR}
   \   00000002   0022               MOVS     R2,#+0
   \   00000004   C021               MOVS     R1,#+192
   \   00000006   8905               LSLS     R1,R1,#+22       ;; #+805306368
   \   00000008   0448               LDR      R0,??AT91F_CAN1_CfgPIO_0  ;; 0xfffffffffffff400
   \   0000000A   ........           _BLF     AT91F_PIO_CfgPeriph,??AT91F_PIO_CfgPeriph??rT
   \   0000000E   8022               MOVS     R2,#+128
   \   00000010   0021               MOVS     R1,#+0
   \   00000012   0348               LDR      R0,??AT91F_CAN1_CfgPIO_0+0x4  ;; 0xfffffffffffff600
   \   00000014   ........           _BLF     AT91F_PIO_CfgPeriph,??AT91F_PIO_CfgPeriph??rT
   \   00000018   01BC               POP      {R0}
   \   0000001A   0047               BX       R0               ;; return
   \                     ??AT91F_CAN1_CfgPIO_0:
   \   0000001C   00F4FFFF           DC32     0xfffffffffffff400
   \   00000020   00F6FFFF           DC32     0xfffffffffffff600
     21          /* Global variables */

   \                                 In segment DATA_Z, align 1, align-sorted
     22          volatile char       testCAN0 = AT91C_TEST_NOK;
   \                     testCAN0:
   \   00000000                      DS8 1

   \                                 In segment DATA_Z, align 1, align-sorted
     23          volatile char       testCAN1 = AT91C_TEST_NOK;
   \                     testCAN1:
   \   00000000                      DS8 1
     24          extern  void CanSendData(unsigned int LData,unsigned HData) ;
     25          
     26          //*----------------------------------------------------------------------------
     27          //* \fn    AT91F_CAN0_Handler
     28          //* \brief
     29          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     30          void AT91F_CAN0_Handler(void)
     31          {
   \                     AT91F_CAN0_Handler:
   \   00000000   30B5               PUSH     {R4,R5,LR}
   \   00000002   81B0               SUB      SP,SP,#+4
     32            volatile unsigned int status;
     33          		
     34            status = AT91F_CAN_GetStatus(AT91C_BASE_CAN0) & AT91F_CAN_GetInterruptMaskStatus(AT91C_BASE_CAN0);
   \   00000004   ....               LDR      R0,??DataTable27  ;; 0xfffffffffff80000
   \   00000006   ........           _BLF     AT91F_CAN_GetStatus,??AT91F_CAN_GetStatus??rT
   \   0000000A   0500               MOVS     R5,R0
   \   0000000C   ....               LDR      R0,??DataTable27  ;; 0xfffffffffff80000
   \   0000000E   ........           _BLF     AT91F_CAN_GetInterruptMaskStatus,??AT91F_CAN_GetInterruptMaskStatus??rT
   \   00000012   2840               ANDS     R0,R0,R5
   \   00000014   0090               STR      R0,[SP, #+0]
     35            AT91F_CAN_DisableIt(AT91C_BASE_CAN0,status);
   \   00000016   0099               LDR      R1,[SP, #+0]
   \   00000018   ....               LDR      R0,??DataTable27  ;; 0xfffffffffff80000
   \   0000001A   ........           _BLF     AT91F_CAN_DisableIt,??AT91F_CAN_DisableIt??rT
     36            int RxData=AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN0->CAN_MB0) ;
   \   0000001E   0E48               LDR      R0,??AT91F_CAN0_Handler_0  ;; 0xfffffffffff80200
   \   00000020   ........           _BLF     AT91F_CAN_GetMessageDataLow,??AT91F_CAN_GetMessageDataLow??rT
   \   00000024   0400               MOVS     R4,R0
     37            TRACE_INFO("______Interrupt now is received some data____________") ;
   \   00000026   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000028   0028               CMP      R0,#+0
   \   0000002A   03D0               BEQ      ??AT91F_CAN0_Handler_1
   \   0000002C   0B49               LDR      R1,??AT91F_CAN0_Handler_0+0x4  ;; `?<Constant "______Interrupt now i...">`
   \   0000002E   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000030   ........           _BLF     fprintf,??fprintf??rT
     38            TRACE_INFO("%d",RxData);
   \                     ??AT91F_CAN0_Handler_1:
   \   00000034   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000036   0028               CMP      R0,#+0
   \   00000038   04D0               BEQ      ??AT91F_CAN0_Handler_2
   \   0000003A   2200               MOVS     R2,R4
   \   0000003C   ....               ADR      R1,??DataTable19  ;; "%d"
   \   0000003E   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000040   ........           _BLF     fprintf,??fprintf??rT
     39            if(status & AT91C_CAN_WAKEUP) {
   \                     ??AT91F_CAN0_Handler_2:
   \   00000044   0098               LDR      R0,[SP, #+0]
   \   00000046   8002               LSLS     R0,R0,#+10
   \   00000048   02D5               BPL      ??AT91F_CAN0_Handler_3
     40              testCAN0 = AT91C_TEST_OK;
   \   0000004A   0548               LDR      R0,??AT91F_CAN0_Handler_0+0x8  ;; testCAN0
   \   0000004C   0121               MOVS     R1,#+1
   \   0000004E   0170               STRB     R1,[R0, #+0]
     41              TRACE_DEBUG_H("=> CAN0 WAKEUP ");
     42            }
     43          
     44          }
   \                     ??AT91F_CAN0_Handler_3:
   \   00000050   01B0               ADD      SP,SP,#+4
   \   00000052   30BC               POP      {R4,R5}
   \   00000054   01BC               POP      {R0}
   \   00000056   0047               BX       R0               ;; return
   \                     ??AT91F_CAN0_Handler_0:
   \   00000058   0002F8FF           DC32     0xfffffffffff80200
   \   0000005C   ........           DC32     `?<Constant "______Interrupt now i...">`
   \   00000060   ........           DC32     testCAN0
     45          
     46          //*----------------------------------------------------------------------------
     47          //* \fn    AT91F_CAN1_Handler
     48          //* \brief
     49          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     50          void AT91F_CAN1_Handler(void)   //接收CAN0 ->MB0 发送的数据
     51          {
   \                     AT91F_CAN1_Handler:
   \   00000000   30B5               PUSH     {R4,R5,LR}
   \   00000002   81B0               SUB      SP,SP,#+4
     52            volatile unsigned int status;
     53            int RxData ;
     54          		
     55            status = AT91F_CAN_GetStatus(AT91C_BASE_CAN1) & AT91F_CAN_GetInterruptMaskStatus(AT91C_BASE_CAN1);
   \   00000004   ....               LDR      R0,??DataTable28  ;; 0xfffffffffff84000
   \   00000006   ........           _BLF     AT91F_CAN_GetStatus,??AT91F_CAN_GetStatus??rT
   \   0000000A   0500               MOVS     R5,R0
   \   0000000C   ....               LDR      R0,??DataTable28  ;; 0xfffffffffff84000
   \   0000000E   ........           _BLF     AT91F_CAN_GetInterruptMaskStatus,??AT91F_CAN_GetInterruptMaskStatus??rT
   \   00000012   2840               ANDS     R0,R0,R5
   \   00000014   0090               STR      R0,[SP, #+0]
     56            AT91F_CAN_DisableIt(AT91C_BASE_CAN1,status);
   \   00000016   0099               LDR      R1,[SP, #+0]
   \   00000018   ....               LDR      R0,??DataTable28  ;; 0xfffffffffff84000
   \   0000001A   ........           _BLF     AT91F_CAN_DisableIt,??AT91F_CAN_DisableIt??rT
     57          
     58            RxData=AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN1->CAN_MB0)  ;     //接收低四位
   \   0000001E   1A48               LDR      R0,??AT91F_CAN1_Handler_0  ;; 0xfffffffffff84200
   \   00000020   ........           _BLF     AT91F_CAN_GetMessageDataLow,??AT91F_CAN_GetMessageDataLow??rT
   \   00000024   0400               MOVS     R4,R0
     59            TRACE_INFO("\r\n______Interrupt received  data,Low is:") ;
   \   00000026   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000028   0028               CMP      R0,#+0
   \   0000002A   03D0               BEQ      ??AT91F_CAN1_Handler_1
   \   0000002C   1749               LDR      R1,??AT91F_CAN1_Handler_0+0x4  ;; `?<Constant "\\r\\n______Interrupt rec...">`
   \   0000002E   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000030   ........           _BLF     fprintf,??fprintf??rT
     60            TRACE_INFO("%d",RxData );
   \                     ??AT91F_CAN1_Handler_1:
   \   00000034   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000036   0028               CMP      R0,#+0
   \   00000038   04D0               BEQ      ??AT91F_CAN1_Handler_2
   \   0000003A   2200               MOVS     R2,R4
   \   0000003C   ....               ADR      R1,??DataTable19  ;; "%d"
   \   0000003E   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000040   ........           _BLF     fprintf,??fprintf??rT
     61            RxData=AT91F_CAN_GetMessageDataHigh(&AT91C_BASE_CAN1->CAN_MB0) ;     //接收高四位
   \                     ??AT91F_CAN1_Handler_2:
   \   00000044   1048               LDR      R0,??AT91F_CAN1_Handler_0  ;; 0xfffffffffff84200
   \   00000046   ........           _BLF     AT91F_CAN_GetMessageDataHigh,??AT91F_CAN_GetMessageDataHigh??rT
   \   0000004A   0400               MOVS     R4,R0
     62            TRACE_INFO("\r\n_______Interrupt received data,High is:") ;
   \   0000004C   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   0000004E   0028               CMP      R0,#+0
   \   00000050   03D0               BEQ      ??AT91F_CAN1_Handler_3
   \   00000052   0F49               LDR      R1,??AT91F_CAN1_Handler_0+0x8  ;; `?<Constant "\\r\\n_______Interrupt re...">`
   \   00000054   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000056   ........           _BLF     fprintf,??fprintf??rT
     63          
     64            /**如果如下指令不执行的话,所有读出的数据都将是第一次接收到的数据**/
     65            AT91C_BASE_CAN1_MB0->CAN_MB_MCR=AT91C_CAN_MTCR;          //允许接收下一条消息
   \                     ??AT91F_CAN1_Handler_3:
   \   0000005A   0E48               LDR      R0,??AT91F_CAN1_Handler_0+0xC  ;; 0xfffffffffff8421c
   \   0000005C   8021               MOVS     R1,#+128
   \   0000005E   0904               LSLS     R1,R1,#+16       ;; #+8388608
   \   00000060   0160               STR      R1,[R0, #+0]
     66            /*******************************************************************/
     67            TRACE_INFO("%d",RxData );
   \   00000062   ....               LDR      R0,??DataTable26  ;; _Stdout
   \   00000064   0028               CMP      R0,#+0

⌨️ 快捷键说明

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