📄 can.lst
字号:
77 0x00000000,
78 0x00000000);
\ 000000AC 314B LDR R3,??AT91F_InitMailbox_0+0x84 ;; 0xfff8027c
\ 000000AE 1860 STR R0,[R3, #+0]
\ 000000B0 314C LDR R4,??AT91F_InitMailbox_0+0x88 ;; 0xfff80260
\ 000000B2 324D LDR R5,??AT91F_InitMailbox_0+0x8C ;; 0x40f0000
\ 000000B4 2560 STR R5,[R4, #+0]
\ 000000B6 324C LDR R4,??AT91F_InitMailbox_0+0x90 ;; 0xfff80264
\ 000000B8 2260 STR R2,[R4, #+0]
\ 000000BA B022 MOV R2,#+0xB0
\ 000000BC 9203 LSL R2,R2,#+0xE ;; #+0x2C0000
\ 000000BE 314C LDR R4,??AT91F_InitMailbox_0+0x94 ;; 0xfff80268
\ 000000C0 2260 STR R2,[R4, #+0]
\ 000000C2 .... LDR R4,??DataTable8 ;; 0xfff80274
\ 000000C4 2060 STR R0,[R4, #+0]
\ 000000C6 .... LDR R4,??DataTable9 ;; 0xfff80278
\ 000000C8 2060 STR R0,[R4, #+0]
\ 000000CA 1860 STR R0,[R3, #+0]
79
80 // Init CAN1 Mailbox 3
81 AT91F_InitMailboxRegisters( AT91C_BASE_CAN1_MB3,
82 AT91C_CAN_MOT_PRODUCER | AT91C_CAN_PRIOR,
83 0x00000000,
84 AT91C_CAN_MIDvA & (0x0B<<18), // ID 11
85 0xBEBED0D0,
86 0xC0C06969,
87 (AT91C_CAN_MDLC & (0x8<<16)) );
\ 000000CC 2E4B LDR R3,??AT91F_InitMailbox_0+0x98 ;; 0xfff8427c
\ 000000CE 1860 STR R0,[R3, #+0]
\ 000000D0 2E4C LDR R4,??AT91F_InitMailbox_0+0x9C ;; 0xfff84260
\ 000000D2 2F4D LDR R5,??AT91F_InitMailbox_0+0xA0 ;; 0x50f0000
\ 000000D4 2560 STR R5,[R4, #+0]
\ 000000D6 2F4C LDR R4,??AT91F_InitMailbox_0+0xA4 ;; 0xfff84264
\ 000000D8 2060 STR R0,[R4, #+0]
\ 000000DA 2F48 LDR R0,??AT91F_InitMailbox_0+0xA8 ;; 0xfff84268
\ 000000DC 0260 STR R2,[R0, #+0]
\ 000000DE .... LDR R0,??DataTable10 ;; 0xfff84274
\ 000000E0 2E4A LDR R2,??AT91F_InitMailbox_0+0xAC ;; 0xbebed0d0
\ 000000E2 0260 STR R2,[R0, #+0]
\ 000000E4 .... LDR R0,??DataTable11 ;; 0xfff84278
\ 000000E6 2E4A LDR R2,??AT91F_InitMailbox_0+0xB0 ;; 0xc0c06969
\ 000000E8 0260 STR R2,[R0, #+0]
\ 000000EA 1960 STR R1,[R3, #+0]
88 }
\ 000000EC 70BC POP {R4-R6}
\ 000000EE 7047 BX LR ;; return
\ ??AT91F_InitMailbox_0:
\ 000000F0 1C02F8FF DC32 0xfff8021c
\ 000000F4 00000F03 DC32 0x30f0000
\ 000000F8 0002F8FF DC32 0xfff80200
\ 000000FC 0402F8FF DC32 0xfff80204
\ 00000100 0802F8FF DC32 0xfff80208
\ 00000104 89674523 DC32 0x23456789
\ 00000108 32547698 DC32 0x98765432
\ 0000010C 1C42F8FF DC32 0xfff8421c
\ 00000110 0042F8FF DC32 0xfff84200
\ 00000114 00000F01 DC32 0x10f0000
\ 00000118 FFFFFF3F DC32 0x3fffffff
\ 0000011C 0442F8FF DC32 0xfff84204
\ 00000120 0842F8FF DC32 0xfff84208
\ 00000124 3C02F8FF DC32 0xfff8023c
\ 00000128 2002F8FF DC32 0xfff80220
\ 0000012C 2402F8FF DC32 0xfff80224
\ 00000130 2802F8FF DC32 0xfff80228
\ 00000134 DDCCBBAA DC32 0xaabbccdd
\ 00000138 CADEFECA DC32 0xcafedeca
\ 0000013C 5C02F8FF DC32 0xfff8025c
\ 00000140 4002F8FF DC32 0xfff80240
\ 00000144 FFFF0E03 DC32 0x30effff
\ 00000148 4402F8FF DC32 0xfff80244
\ 0000014C 4802F8FF DC32 0xfff80248
\ 00000150 5402F8FF DC32 0xfff80254
\ 00000154 88776655 DC32 0x55667788
\ 00000158 5802F8FF DC32 0xfff80258
\ 0000015C CCBBAA99 DC32 0x99aabbcc
\ 00000160 FC43F8FF DC32 0xfff843fc
\ 00000164 E043F8FF DC32 0xfff843e0
\ 00000168 00000F02 DC32 0x20f0000
\ 0000016C E443F8FF DC32 0xfff843e4
\ 00000170 E843F8FF DC32 0xfff843e8
\ 00000174 7C02F8FF DC32 0xfff8027c
\ 00000178 6002F8FF DC32 0xfff80260
\ 0000017C 00000F04 DC32 0x40f0000
\ 00000180 6402F8FF DC32 0xfff80264
\ 00000184 6802F8FF DC32 0xfff80268
\ 00000188 7C42F8FF DC32 0xfff8427c
\ 0000018C 6042F8FF DC32 0xfff84260
\ 00000190 00000F05 DC32 0x50f0000
\ 00000194 6442F8FF DC32 0xfff84264
\ 00000198 6842F8FF DC32 0xfff84268
\ 0000019C D0D0BEBE DC32 0xbebed0d0
\ 000001A0 6969C0C0 DC32 0xc0c06969
89
90 //*----------------------------------------------------------------------------
91 //* \fn AT91F_BasicTestSuite
92 //* \brief
93 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
94 void AT91F_BasicTestSuite(void)
95 {
\ AT91F_BasicTestSuite:
\ 00000000 F3B5 PUSH {R0,R1,R4-R7,LR}
\ 00000002 0027 MOV R7,#+0
96 unsigned int status;
97 unsigned int tick=0;
98
99 ///////////////////////////////////////////////////////////////////////////////////////////
100 TRACE_INFO("\n\r--------------------------------------------------\n\r");
\ 00000004 .... LDR R4,??DataTable12 ;; _Stdout
\ 00000006 .... LDR R5,??DataTable13 ;; `?<Constant "\\n\\r-------------------...">`
\ 00000008 291C MOV R1,R5
\ 0000000A 201C MOV R0,R4
\ 0000000C ........ _BLF fprintf,fprintf??rT
101 TRACE_INFO("1. Wait for CAN Controllers Bus Synchronization...\n\r");
\ 00000010 291C MOV R1,R5
\ 00000012 3831 ADD R1,#+0x38
\ 00000014 201C MOV R0,R4
\ 00000016 ........ _BLF fprintf,fprintf??rT
102 TRACE_INFO("--------------------------------------------------\n\r");
\ 0000001A 291C MOV R1,R5
\ 0000001C 7031 ADD R1,#+0x70
\ 0000001E 201C MOV R0,R4
\ 00000020 ........ _BLF fprintf,fprintf??rT
103
104 // Enable CAN and Wait for WakeUp Interrupt
105 AT91F_CAN_EnableIt(AT91C_BASE_CAN0,AT91C_CAN_WAKEUP);
\ 00000024 8020 MOV R0,#+0x80
\ 00000026 8003 LSL R0,R0,#+0xE ;; #+0x200000
\ 00000028 9049 LDR R1,??AT91F_BasicTestSuite_0 ;; 0xfff80004
\ 0000002A 0860 STR R0,[R1, #+0]
106 AT91F_CAN_EnableIt(AT91C_BASE_CAN1,AT91C_CAN_WAKEUP);
\ 0000002C .... LDR R1,??DataTable31 ;; 0xfff84004
\ 0000002E 0860 STR R0,[R1, #+0]
\ 00000030 8F48 LDR R0,??AT91F_BasicTestSuite_0+0x4 ;; 0xfff80000
\ 00000032 0121 MOV R1,#+0x1
\ 00000034 0160 STR R1,[R0, #+0]
107 AT91F_CAN_CfgModeReg(AT91C_BASE_CAN0,AT91C_CAN_CANEN);
108 AT91F_CAN_CfgModeReg(AT91C_BASE_CAN1,AT91C_CAN_CANEN);
\ 00000036 8F48 LDR R0,??AT91F_BasicTestSuite_0+0x8 ;; 0xfff84000
\ 00000038 0160 STR R1,[R0, #+0]
\ 0000003A .... LDR R6,??DataTable38 ;; 0x186a0
\ 0000003C 8E48 LDR R0,??AT91F_BasicTestSuite_0+0xC ;; testCAN0
\ 0000003E 8F49 LDR R1,??AT91F_BasicTestSuite_0+0x10 ;; testCAN1
\ 00000040 00E0 B ??AT91F_BasicTestSuite_1
109
110 // Wait for WAKEUP flag raising <=> 11-recessive-bit were scanned by the transceiver
111 while( ((testCAN0!=AT91C_TEST_OK) || (testCAN1!=AT91C_TEST_OK)) && (tick<AT91C_CAN_TIMEOUT) ) {
112 tick++;
\ ??AT91F_BasicTestSuite_2:
\ 00000042 7F1C ADD R7,R7,#+0x1
113 }
\ ??AT91F_BasicTestSuite_1:
\ 00000044 0278 LDRB R2,[R0, #+0]
\ 00000046 012A CMP R2,#+0x1
\ 00000048 02D1 BNE ??AT91F_BasicTestSuite_3
\ 0000004A 0A78 LDRB R2,[R1, #+0]
\ 0000004C 012A CMP R2,#+0x1
\ 0000004E 01D0 BEQ ??AT91F_BasicTestSuite_4
\ ??AT91F_BasicTestSuite_3:
\ 00000050 B742 CMP R7,R6
\ 00000052 F6D3 BCC ??AT91F_BasicTestSuite_2
114 testCAN0=testCAN1=AT91C_TEST_NOK;
\ ??AT91F_BasicTestSuite_4:
\ 00000054 0022 MOV R2,#+0
\ 00000056 0A70 STRB R2,[R1, #+0]
\ 00000058 0270 STRB R2,[R0, #+0]
115
116 if (tick == AT91C_CAN_TIMEOUT) {
\ 0000005A B742 CMP R7,R6
\ 0000005C 02D1 BNE ??AT91F_BasicTestSuite_5
117 TRACE_ERROR("-E- CAN0 & CAN1 Initialisations FAILED !\n\r");
\ 0000005E 291C MOV R1,R5
\ 00000060 A831 ADD R1,#+0xA8
\ 00000062 01E0 B ??AT91F_BasicTestSuite_6
118 } else {
119 TRACE_INFO("-I- CAN0 & CAN1 Initialisations Completed !\n\r");
\ ??AT91F_BasicTestSuite_5:
\ 00000064 291C MOV R1,R5
\ 00000066 D431 ADD R1,#+0xD4
\ ??AT91F_BasicTestSuite_6:
\ 00000068 201C MOV R0,R4
\ 0000006A ........ _BLF fprintf,fprintf??rT
120 }
121
122 // Configure Mailboxes
123 AT91F_InitMailbox();
\ 0000006E ........ BL AT91F_InitMailbox
124
125 ///////////////////////////////////////////////////////////////////////////////////////////
126 TRACE_INFO("\n\r---------------------------------------------------\n\r");
\ 00000072 8220 MOV R0,#+0x82
\ 00000074 4000 LSL R0,R0,#+0x1 ;; #+0x104
\ 00000076 2918 ADD R1,R5,R0
\ 00000078 201C MOV R0,R4
\ 0000007A ........ _BLF fprintf,fprintf??rT
127 TRACE_INFO("2. CAN0 Mailbox 0 transmitting to CAN1 Mailbox 0...\n\r");
\ 0000007E 9E20 MOV R0,#+0x9E
\ 00000080 4000 LSL R0,R0,#+0x1 ;; #+0x13C
\ 00000082 2918 ADD R1,R5,R0
\ 00000084 201C MOV R0,R4
\ 00000086 ........ _BLF fprintf,fprintf??rT
128 TRACE_INFO("---------------------------------------------------\n\r");
\ 0000008A BA20 MOV R0,#+0xBA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -