📄 main.lst
字号:
348 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
349 void ConfigureLeds(void)
350 {
351 LED_Configure(0);
\ ConfigureLeds:
\ 00000000 0000A0E3 MOV R0,#+0
\ 00000004 ........ B LED_Configure ;; tailcall
352
353 }
354
355
356 //------------------------------------------------------------------------------
357 /// Waits for the given number of milliseconds (using the timestamp generated
358 /// by the PIT).
359 /// \param delay Delay to wait for, in milliseconds.
360 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
361 void Wait(unsigned long delay)
362 {
\ Wait:
\ 00000000 08D04DE2 SUB SP,SP,#+8
363 volatile unsigned int start = timestamp;
\ 00000004 ........ LDR R2,??DataTable13 ;; timestamp
\ 00000008 002092E5 LDR R2,[R2, #+0]
\ 0000000C 00208DE5 STR R2,[SP, #+0]
364 unsigned int elapsed;
365 do {
366 elapsed = timestamp;
\ ??Wait_0:
\ 00000010 ........ LDR R1,??DataTable13 ;; timestamp
\ 00000014 001091E5 LDR R1,[R1, #+0]
367 elapsed -= start;
\ 00000018 00209DE5 LDR R2,[SP, #+0]
\ 0000001C 021041E0 SUB R1,R1,R2
368 }
369 while (elapsed < delay);
\ 00000020 000051E1 CMP R1,R0
\ 00000024 F9FFFF3A BCC ??Wait_0
370 }
\ 00000028 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning
\ 0000002C 1EFF2FE1 BX LR ;; return
371 //-----------------------------------------------------------------------------
372 /// Schranky pre prijem sprav
373 //-----------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
374 void InitCANInRecept( void )
375 {
\ InitCANInRecept:
\ 00000000 00502DE9 PUSH {R12,LR}
376 unsigned char i;
377
378 #if defined (AT91C_BASE_CAN0_MB0)
379 CAN_ResetTransfer( &canTransfer1 );
\ 00000004 ........ LDR R0,??DataTable28 ;; canTransfer1
\ 00000008 ........ BL CAN_ResetTransfer
380 i=0;
381 //Schranka 0
382 canTransfer1.can_number = 0;
\ 0000000C 0C039FE5 LDR R0,??InitCANInRecept_0 ;; canTransfer1 + 1
\ 00000010 0010A0E3 MOV R1,#+0
\ 00000014 0010C0E5 STRB R1,[R0, #+0]
383 canTransfer1.mailbox_number = 0;
\ 00000018 04039FE5 LDR R0,??InitCANInRecept_0+0x4 ;; canTransfer1 + 2
\ 0000001C 0010C0E5 STRB R1,[R0, #+0]
384 canTransfer1.mode_reg = AT91C_CAN_MOT_RXOVERWRITE;
\ 00000020 00039FE5 LDR R0,??InitCANInRecept_0+0x8 ;; canTransfer1 + 4
\ 00000024 8017A0E3 MOV R1,#+33554432
\ 00000028 001080E5 STR R1,[R0, #+0]
385 canTransfer1.acceptance_mask_reg = (0X00000000);
\ 0000002C F8029FE5 LDR R0,??InitCANInRecept_0+0xC ;; canTransfer1 + 8
\ 00000030 0010A0E3 MOV R1,#+0
\ 00000034 001080E5 STR R1,[R0, #+0]
386 canTransfer1.identifier = AT91C_CAN_MIDvA | AT91C_CAN_MIDvB & (0x12345670);
\ 00000038 F0029FE5 LDR R0,??InitCANInRecept_0+0x10 ;; canTransfer1 + 12
\ 0000003C F0129FE5 LDR R1,??InitCANInRecept_0+0x14 ;; 0x1ffc5670
\ 00000040 001080E5 STR R1,[R0, #+0]
387 canTransfer1.data_low_reg = 0x00000000;
\ 00000044 EC029FE5 LDR R0,??InitCANInRecept_0+0x18 ;; canTransfer1 + 16
\ 00000048 0010A0E3 MOV R1,#+0
\ 0000004C 001080E5 STR R1,[R0, #+0]
388 canTransfer1.data_high_reg = 0x00000000;
\ 00000050 E4029FE5 LDR R0,??InitCANInRecept_0+0x1C ;; canTransfer1 + 20
\ 00000054 001080E5 STR R1,[R0, #+0]
389 canTransfer1.control_reg = 0x00000000;
\ 00000058 E0029FE5 LDR R0,??InitCANInRecept_0+0x20 ;; canTransfer1 + 24
\ 0000005C 001080E5 STR R1,[R0, #+0]
390 CAN_InitMailboxRegisters( &canTransfer1 );
\ 00000060 ........ LDR R0,??DataTable28 ;; canTransfer1
\ 00000064 ........ BL CAN_InitMailboxRegisters
391
392
393 //Schranka 1
394 canTransfer1.can_number = 0;
\ 00000068 B0029FE5 LDR R0,??InitCANInRecept_0 ;; canTransfer1 + 1
\ 0000006C 0010A0E3 MOV R1,#+0
\ 00000070 0010C0E5 STRB R1,[R0, #+0]
395 canTransfer1.mailbox_number = 1;
\ 00000074 A8029FE5 LDR R0,??InitCANInRecept_0+0x4 ;; canTransfer1 + 2
\ 00000078 0110A0E3 MOV R1,#+1
\ 0000007C 0010C0E5 STRB R1,[R0, #+0]
396 canTransfer1.mode_reg = AT91C_CAN_MOT_RXOVERWRITE;
\ 00000080 A0029FE5 LDR R0,??InitCANInRecept_0+0x8 ;; canTransfer1 + 4
\ 00000084 8017A0E3 MOV R1,#+33554432
\ 00000088 001080E5 STR R1,[R0, #+0]
397 canTransfer1.acceptance_mask_reg = (0X00000000);
\ 0000008C 98029FE5 LDR R0,??InitCANInRecept_0+0xC ;; canTransfer1 + 8
\ 00000090 0010A0E3 MOV R1,#+0
\ 00000094 001080E5 STR R1,[R0, #+0]
398 canTransfer1.identifier = AT91C_CAN_MIDvA | AT91C_CAN_MIDvB & (1<<(18+i));
\ 00000098 90029FE5 LDR R0,??InitCANInRecept_0+0x10 ;; canTransfer1 + 12
\ 0000009C 7015A0E3 MOV R1,#+469762048
\ 000000A0 FF1781E3 ORR R1,R1,#0x3FC0000
\ 000000A4 001080E5 STR R1,[R0, #+0]
399 canTransfer1.data_low_reg = 0x00000000;
\ 000000A8 88029FE5 LDR R0,??InitCANInRecept_0+0x18 ;; canTransfer1 + 16
\ 000000AC 0010A0E3 MOV R1,#+0
\ 000000B0 001080E5 STR R1,[R0, #+0]
400 canTransfer1.data_high_reg = 0x00000000;
\ 000000B4 80029FE5 LDR R0,??InitCANInRecept_0+0x1C ;; canTransfer1 + 20
\ 000000B8 001080E5 STR R1,[R0, #+0]
401 canTransfer1.control_reg = 0x00000000;
\ 000000BC 7C029FE5 LDR R0,??InitCANInRecept_0+0x20 ;; canTransfer1 + 24
\ 000000C0 001080E5 STR R1,[R0, #+0]
402 CAN_InitMailboxRegisters( &canTransfer1 );
\ 000000C4 ........ LDR R0,??DataTable28 ;; canTransfer1
\ 000000C8 ........ BL CAN_InitMailboxRegisters
403
404
405 //Schranka2
406 canTransfer1.can_number = 0;
\ 000000CC 4C029FE5 LDR R0,??InitCANInRecept_0 ;; canTransfer1 + 1
\ 000000D0 0010A0E3 MOV R1,#+0
\ 000000D4 0010C0E5 STRB R1,[R0, #+0]
407 canTransfer1.mailbox_number = 2;
\ 000000D8 44029FE5 LDR R0,??InitCANInRecept_0+0x4 ;; canTransfer1 + 2
\ 000000DC 0210A0E3 MOV R1,#+2
\ 000000E0 0010C0E5 STRB R1,[R0, #+0]
408 canTransfer1.mode_reg = AT91C_CAN_MOT_RXOVERWRITE;
\ 000000E4 3C029FE5 LDR R0,??InitCANInRecept_0+0x8 ;; canTransfer1 + 4
\ 000000E8 8017A0E3 MOV R1,#+33554432
\ 000000EC 001080E5 STR R1,[R0, #+0]
409 canTransfer1.acceptance_mask_reg = 2;
\ 000000F0 34029FE5 LDR R0,??InitCANInRecept_0+0xC ;; canTransfer1 + 8
\ 000000F4 0210A0E3 MOV R1,#+2
\ 000000F8 001080E5 STR R1,[R0, #+0]
410 canTransfer1.identifier = AT91C_CAN_MIDvA | AT91C_CAN_MIDvB & (1<<(18+i));
\ 000000FC 2C029FE5 LDR R0,??InitCANInRecept_0+0x10 ;; canTransfer1 + 12
\ 00000100 7015A0E3 MOV R1,#+469762048
\ 00000104 FF1781E3 ORR R1,R1,#0x3FC0000
\ 00000108 001080E5 STR R1,[R0, #+0]
411 canTransfer1.data_low_reg = 0x00000000;
\ 0000010C 24029FE5 LDR R0,??InitCANInRecept_0+0x18 ;; canTransfer1 + 16
\ 00000110 0010A0E3 MOV R1,#+0
\ 00000114 001080E5 STR R1,[R0, #+0]
412 canTransfer1.data_high_reg = 0x00000000;
\ 00000118 1C029FE5 LDR R0,??InitCANInRecept_0+0x1C ;; canTransfer1 + 20
\ 0000011C 001080E5 STR R1,[R0, #+0]
413 canTransfer1.control_reg = 0x00000000;
\ 00000120 18029FE5 LDR R0,??InitCANInRecept_0+0x20 ;; canTransfer1 + 24
\ 00000124 001080E5 STR R1,[R0, #+0]
414 CAN_InitMailboxRegisters( &canTransfer1 );
\ 00000128 ........ LDR R0,??DataTable28 ;; canTransfer1
\ 0000012C ........ BL CAN_InitMailboxRegisters
415
416
417 //Schranka3
418 canTransfer1.can_number = 0;
\ 00000130 E8019FE5 LDR R0,??InitCANInRecept_0 ;; canTransfer1 + 1
\ 00000134 0010A0E3 MOV R1,#+0
\ 00000138 0010C0E5 STRB R1,[R0, #+0]
419 canTransfer1.mailbox_number = 3;
\ 0000013C E0019FE5 LDR R0,??InitCANInRecept_0+0x4 ;; canTransfer1 + 2
\ 00000140 0310A0E3 MOV R1,#+3
\ 00000144 0010C0E5 STRB R1,[R0, #+0]
420 canTransfer1.mode_reg = AT91C_CAN_MOT_RXOVERWRITE;
\ 00000148 D8019FE5 LDR R0,??InitCANInRecept_0+0x8 ;; canTransfer1 + 4
\ 0000014C 8017A0E3 MOV R1,#+33554432
\ 00000150 001080E5 STR R1,[R0, #+0]
421 canTransfer1.acceptance_mask_reg = 3;
\ 00000154 D0019FE5 LDR R0,??InitCANInRecept_0+0xC ;; canTransfer1 + 8
\ 00000158 0310A0E3 MOV R1,#+3
\ 0000015C 001080E5 STR R1,[R0, #+0]
422 canTransfer1.identifier = AT91C_CAN_MIDvA | AT91C_CAN_MIDvB & (1<<(18+i));
\ 00000160 C8019FE5 LDR R0,??InitCANInRecept_0+0x10 ;; canTransfer1 + 12
\ 00000164 7015A0E3 MOV R1,#+469762048
\ 00000168 FF1781E3 ORR R1,R1,#0x3FC0000
\ 0000016C 001080E5 STR R1,[R0, #+0]
423 canTransfer1.data_low_reg = 0x00000000;
\ 00000170 C0019FE5 LDR R0,??InitCANInRecept_0+0x18 ;; canTransfer1 + 16
\ 00000174 0010A0E3 MOV R1,#+0
\ 00000178 001080E5 STR R1,[R0, #+0]
424 canTransfer1.data_high_reg = 0x00000000;
\ 0000017C B8019FE5 LDR R0,??InitCANInRecept_0+0x1C ;; canTransfer1 + 20
\ 00000180 001080E5 STR R1,[R0, #+0]
425 canTransfer1.control_reg = 0x00000000;
\ 00000184 B4019FE5 LDR R0,??InitCANInRecept_0+0x20 ;; canTransfer1 + 24
\ 00000188 001080E5 STR R1,[R0, #+0]
426 CAN_InitMailboxRegisters( &canTransfer1 );
\ 0000018C ........ LDR R0,??DataTable28 ;; canTransfer1
\ 00000190 ........ BL CAN_InitMailboxRegisters
427
428
429 //Schranka4
430 canTransfer1.can_number = 0;
\ 00000194 84019FE5 LDR R0,??InitCANInRecept_0 ;; canTransfer1 + 1
\ 00000198 0010A0E3 MOV R1,#+0
\ 0000019C 0010C0E5 STRB R1,[R0, #+0]
431 canTransfer1.mailbox_number = 4;
\ 000001A0 7C019FE5 LDR R0,??InitCANInRecept_0+0x4 ;; canTransfer1 + 2
\ 000001A4 0410A0E3 MOV R1,#+4
\ 000001A8 0010C0E5 STRB R1,[R0, #+0]
432 canTransfer1.mode_reg = AT91C_CAN_MOT_RXOVERWRITE;
\ 000001AC 74019FE5 LDR R0,??InitCANInRecept_0+0x8 ;; canTransfer1 + 4
\ 000001B0 8017A0E3 MOV R1,#+33554432
\ 000001B4 001080E5 STR R1,[R0, #+0]
433 canTransfer1.acceptance_mask_reg = 4;
\ 000001B8 6C019FE5 LDR R0,??InitCANInRecept_0+0xC ;; canTransfer1 + 8
\ 000001BC 0410A0E3 MOV R1,#+4
\ 000001C0 001080E5 STR R1,[R0, #+0]
434 canTransfer1.identifier = AT91C_CAN_MIDvA | AT91C_CAN_MIDvB & (1<<(18+i));
\ 000001C4 64019FE5 LDR R0,??InitCANInRecept_0+0x10 ;; canTransfer1 + 12
\ 000001C8 7015A0E3 MOV R1,#+469762048
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -