📄 can.lst
字号:
\ ??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 + -