📄 main.lst
字号:
\ 00000002 FFB0 SUB SP,#+508
\ 00000004 FBB0 SUB SP,#+492
60 char data[MSG_SIZE];
61 unsigned int length;
62 // Enable User Reset and set its minimal assertion to 960 us
63 AT91C_BASE_RSTC->RSTC_RMR = AT91C_RSTC_URSTEN | (0x4<<8) | (unsigned int)(0xA5<<24);
\ 00000006 1748 LDR R0,??main_0 ;; 0xfffffd08
\ 00000008 1749 LDR R1,??main_0+0x4 ;; 0xa5000401
\ 0000000A 0160 STR R1,[R0, #+0]
64 // Led init
65 // First, enable the clock of the PIOB
66 AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
\ 0000000C .... LDR R0,??DataTable5 ;; 0xfffffc10
\ 0000000E 0421 MOV R1,#+4
\ 00000010 0160 STR R1,[R0, #+0]
67 //* to be outputs. No need to set these pins to be driven by the PIO because it is GPIO pins only.
68 AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, AT91B_LED_MASK ) ;
\ 00000012 0F24 MOV R4,#+15
\ 00000014 .... LDR R0,??DataTable6 ;; 0xfffff400
\ 00000016 0460 STR R4,[R0, #+0]
\ 00000018 .... LDR R0,??DataTable7 ;; 0xfffff410
\ 0000001A 0460 STR R4,[R0, #+0]
69 //* Clear the LED's.
70 AT91F_PIO_SetOutput( AT91C_BASE_PIOA, AT91B_LED_MASK ) ;
\ 0000001C 1348 LDR R0,??main_0+0x8 ;; 0xfffff430
\ 0000001E 0460 STR R4,[R0, #+0]
71 //* Set led 1e LED's.
72 AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, AT91B_LED1 ) ;
\ 00000020 .... LDR R5,??DataTable8 ;; 0xfffff434
\ 00000022 0126 MOV R6,#+1
\ 00000024 2E60 STR R6,[R5, #+0]
73
74 // Init USB device
75 AT91F_USB_Open();
\ 00000026 ........ BL AT91F_USB_Open
\ 0000002A .... LDR R7,??DataTable9 ;; pCDC
76 // Init USB device
77 // Wait for the end of enumeration
78 while (!pCDC.IsConfigured(&pCDC));
\ ??main_1:
\ 0000002C 381C MOV R0,R7
\ 0000002E F968 LDR R1,[R7, #+12]
\ 00000030 ........ BL ??rT_BX_R1
\ 00000034 0028 CMP R0,#+0
\ 00000036 F9D0 BEQ ??main_1
79 //* Set led 1e LED's.
80 AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, AT91B_LED1 ) ;
\ 00000038 2E60 STR R6,[R5, #+0]
81 // Set Usart in interrupt
82 Usart_init();
\ 0000003A ........ _BLF Usart_init,??Usart_init??rT
83 //* Set led all LED's.
84 AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, AT91B_LED_MASK ) ;
\ 0000003E 2C60 STR R4,[R5, #+0]
85
86 while (1)
87 { // Loop
88 length = pCDC.Read(&pCDC, data, MSG_SIZE);
89 data[length]=0;
\ ??main_2:
\ 00000040 FA22 MOV R2,#+250
\ 00000042 9200 LSL R2,R2,#+2 ;; #+1000
\ 00000044 6946 MOV R1,SP
\ 00000046 381C MOV R0,R7
\ 00000048 7B69 LDR R3,[R7, #+20]
\ 0000004A ........ BL ??rT_BX_R3
\ 0000004E 6946 MOV R1,SP
\ 00000050 0022 MOV R2,#+0
\ 00000052 0A54 STRB R2,[R1, R0]
90 Trace_Toggel_LED( AT91B_LED1) ;
\ 00000054 0120 MOV R0,#+1
\ 00000056 ........ _BLF Trace_Toggel_LED,??Trace_Toggel_LED??rT
91 AT91F_US_Put(data);
\ 0000005A 6846 MOV R0,SP
\ 0000005C ........ _BLF AT91F_US_Put,??AT91F_US_Put??rT
\ 00000060 EEE7 B ??main_2
\ 00000062 C046 NOP
\ ??main_0:
\ 00000064 08FDFFFF DC32 0xfffffd08
\ 00000068 010400A5 DC32 0xa5000401
\ 0000006C 30F4FFFF DC32 0xfffff430
92 }
93 }
\ In segment CODE, align 4, keep-with-next
\ ??DataTable5:
\ 00000000 10FCFFFF DC32 0xfffffc10
\ In segment CODE, align 4, keep-with-next
\ ??DataTable6:
\ 00000000 00F4FFFF DC32 0xfffff400
\ In segment CODE, align 4, keep-with-next
\ ??DataTable7:
\ 00000000 10F4FFFF DC32 0xfffff410
\ In segment CODE, align 4, keep-with-next
\ ??DataTable8:
\ 00000000 34F4FFFF DC32 0xfffff434
\ In segment CODE, align 4, keep-with-next
\ ??DataTable9:
\ 00000000 ........ DC32 pCDC
94
95
Maximum stack usage in bytes:
Function CSTACK
-------- ------
AT91F_USB_Open 4
main 1020
Segment part sizes:
Function/Label Bytes
-------------- -----
pCDC 24
AT91F_USB_Open 64
main 112
??DataTable5 4
??DataTable6 4
??DataTable7 4
??DataTable8 4
??DataTable9 4
Others 64
248 bytes in segment CODE
24 bytes in segment DATA_Z
12 bytes in segment INITTAB
196 bytes of CODE memory (+ 64 bytes shared)
24 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -