📄 main.lst
字号:
\ 00000008 00E0 B ??wait_0
\ ??wait_1:
\ 0000000A 401C ADD R0,R0,#+0x1
\ ??wait_0:
\ 0000000C .... LDR R1,??DataTable1 ;; LedSpeed
\ 0000000E 0968 LDR R1,[R1, #+0]
\ 00000010 8842 CMP R0,R1
\ 00000012 FAD3 BCC ??wait_1
60 }//* End
\ 00000014 01BC POP {R0}
\ 00000016 0047 BX R0 ;; return
61
62
63 //*--------------------------------------------------------------------------------------
64 //* Function Name : Main
65 //* Object : Software entry point
66 //* Input Parameters : none.
67 //* Output Parameters : none.
68 //*--------------------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
69 int main()
70 {//* Begin
\ main:
\ 00000000 F0B5 PUSH {R4-R7,LR}
71 int i;
72 // First, enable the clock of the PIO
73 AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOB ) ;
\ 00000002 1448 LDR R0,??main_0 ;; 0xfffffc10
\ 00000004 0821 MOV R1,#+0x8
\ 00000006 0160 STR R1,[R0, #+0]
74
75 // then, we configure the PIO Lines corresponding to LED1 to LED4
76 // to be outputs. No need to set these pins to be driven by the PIO because it is GPIO pins only.
77 AT91F_PIO_CfgOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
\ 00000008 F020 MOV R0,#+0xF0
\ 0000000A C003 LSL R0,R0,#+0xF ;; #+0x780000
\ 0000000C 1249 LDR R1,??main_0+0x4 ;; 0xfffff600
\ 0000000E 0860 STR R0,[R1, #+0]
\ 00000010 1249 LDR R1,??main_0+0x8 ;; 0xfffff610
\ 00000012 0860 STR R0,[R1, #+0]
\ 00000014 1249 LDR R1,??main_0+0xC ;; 0xfffff630
\ 00000016 0860 STR R0,[R1, #+0]
78
79 // Clear the LED's. On the EB55 we must apply a "1" to turn off LEDs
80 AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
81 // Clear the LED's. On the EB55 we must apply a "1" to turn off LEDs
82 AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
\ 00000018 124C LDR R4,??main_0+0x10 ;; 0xfffff634
\ 0000001A 2060 STR R0,[R4, #+0]
\ 0000001C 124D LDR R5,??main_0+0x14 ;; led_mask
83 // Loop forever
84 for (;;)
85 {
86
87 // Once a Shot on each led
88 for ( i=0 ; i < AT91B_NB_LEB ; i++ )
\ ??main_1:
\ 0000001E 0026 MOV R6,#+0
89 {
90 AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, led_mask[i]) ;
\ ??main_2:
\ 00000020 B000 LSL R0,R6,#+0x2
\ 00000022 2F58 LDR R7,[R5, R0]
\ 00000024 2760 STR R7,[R4, #+0]
91 wait();
\ 00000026 ........ BL wait
92 AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, led_mask[i] ) ;
\ 0000002A 0D48 LDR R0,??main_0+0xC ;; 0xfffff630
\ 0000002C 0760 STR R7,[R0, #+0]
93 wait();
\ 0000002E ........ BL wait
94 }// End for
\ 00000032 761C ADD R6,R6,#+0x1
\ 00000034 042E CMP R6,#+0x4
\ 00000036 F3DB BLT ??main_2
95 // Once a Shot on each led
96 for ( i=(AT91B_NB_LEB-1) ; i >= 0 ; i-- )
\ 00000038 0326 MOV R6,#+0x3
97 {
98 AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, led_mask[i]) ;
\ ??main_3:
\ 0000003A B000 LSL R0,R6,#+0x2
\ 0000003C 2F58 LDR R7,[R5, R0]
\ 0000003E 2760 STR R7,[R4, #+0]
99 wait();
\ 00000040 ........ BL wait
100 AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, led_mask[i] ) ;
\ 00000044 0648 LDR R0,??main_0+0xC ;; 0xfffff630
\ 00000046 0760 STR R7,[R0, #+0]
101 wait();
\ 00000048 ........ BL wait
102 }
\ 0000004C 761E SUB R6,R6,#+0x1
\ 0000004E E6D4 BMI ??main_1
\ 00000050 F3E7 B ??main_3
\ 00000052 C046 NOP
\ ??main_0:
\ 00000054 10FCFFFF DC32 0xfffffc10
\ 00000058 00F6FFFF DC32 0xfffff600
\ 0000005C 10F6FFFF DC32 0xfffff610
\ 00000060 30F6FFFF DC32 0xfffff630
\ 00000064 34F6FFFF DC32 0xfffff634
\ 00000068 ........ DC32 led_mask
103 }// End for
104 }//* End
\ In segment CODE, align 4, keep-with-next
\ ??DataTable1:
\ 00000000 ........ DC32 LedSpeed
\ In segment DATA_ID, align 4, align-sorted
\ `?<Initializer for LedSpeed>`:
\ 00000000 00A00500 DC32 368640
Maximum stack usage in bytes:
Function CSTACK
-------- ------
change_speed 4
main 20
wait 4
Segment part sizes:
Function/Label Bytes
-------------- -----
LedSpeed 4
led_mask 16
change_speed 68
wait 24
main 108
??DataTable1 4
?<Initializer for LedSpeed> 4
Others 36
228 bytes in segment CODE
16 bytes in segment DATA_C
4 bytes in segment DATA_I
4 bytes in segment DATA_ID
12 bytes in segment INITTAB
204 bytes of CODE memory (+ 36 bytes shared)
20 bytes of CONST memory
4 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -