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