📄 main.lst
字号:
\ 00000050 ........ BL printf
252 printf("-- %s\n\r", BOARD_NAME);
\ 00000054 38119FE5 LDR R1,??main_0+0x14 ;; `?<Constant "AT91SAM7X-EK">`
\ 00000058 38019FE5 LDR R0,??main_0+0x18 ;; `?<Constant "-- %s\\n\\r">`
\ 0000005C ........ BL printf
253 printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__);
\ 00000060 34219FE5 LDR R2,??main_0+0x1C ;; `?<Constant "00:50:16">`
\ 00000064 34119FE5 LDR R1,??main_0+0x20 ;; `?<Constant "Apr 25 2009">`
\ 00000068 34019FE5 LDR R0,??main_0+0x24 ;; `?<Constant "-- Compiled: %s %s --\\n\\r">`
\ 0000006C ........ BL printf
254
255 UTIL_WaitTimeInMs(BOARD_MCK, 1000);
\ 00000070 FA1FA0E3 MOV R1,#+1000
\ 00000074 B707A0E3 MOV R0,#+47972352
\ 00000078 6C0C80E3 ORR R0,R0,#0x6C00
\ 0000007C ........ BL UTIL_WaitTimeInMs
256 UTIL_WaitTimeInUs(BOARD_MCK, 1000);
\ 00000080 FA1FA0E3 MOV R1,#+1000
\ 00000084 B707A0E3 MOV R0,#+47972352
\ 00000088 6C0C80E3 ORR R0,R0,#0x6C00
\ 0000008C ........ BL UTIL_WaitTimeInUs
257 // Configuration
258 ConfigurePit();
\ 00000090 ........ BL ConfigurePit
259 ConfigureButtons();
\ 00000094 ........ BL ConfigureButtons
260 ConfigureLeds();
\ 00000098 ........ BL ConfigureLeds
261
262 // Enable PWMC peripheral clock
263 AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PWMC;
\ 0000009C EF00E0E3 MVN R0,#+239
\ 000000A0 C00FC0E3 BIC R0,R0,#0x300
\ 000000A4 401EA0E3 MOV R1,#+1024
\ 000000A8 001080E5 STR R1,[R0, #+0]
264
265 // Settings:
266 // - 100kHz PWM period (PWM_FREQUENCY)
267 // - 1s rise/fall time for the LED intensity
268
269 // Set clock A to run at 100kHz * MAX_DUTY_CYCLE (clock B is not used)
270 PWMC_ConfigureClocks(PWM_FREQUENCY * MAX_DUTY_CYCLE, 0, BOARD_MCK);
\ 000000AC B727A0E3 MOV R2,#+47972352
\ 000000B0 6C2C82E3 ORR R2,R2,#0x6C00
\ 000000B4 0010A0E3 MOV R1,#+0
\ 000000B8 F40AA0E3 MOV R0,#+999424
\ 000000BC 900F80E3 ORR R0,R0,#0x240
\ 000000C0 ........ BL PWMC_ConfigureClocks
271
272 // Configure PWMC channel for LED0 (left-aligned)
273 PWMC_ConfigureChannel(CHANNEL_PWM_LED0, AT91C_PWMC_CPRE_MCKA, 0, 0);
\ 000000C4 0030A0E3 MOV R3,#+0
\ 000000C8 0020A0E3 MOV R2,#+0
\ 000000CC 0B10A0E3 MOV R1,#+11
\ 000000D0 0100A0E3 MOV R0,#+1
\ 000000D4 ........ BL PWMC_ConfigureChannel
274 PWMC_SetPeriod(CHANNEL_PWM_LED0, MAX_DUTY_CYCLE);
\ 000000D8 3210A0E3 MOV R1,#+50
\ 000000DC 0100A0E3 MOV R0,#+1
\ 000000E0 ........ BL PWMC_SetPeriod
275 PWMC_SetDutyCycle(CHANNEL_PWM_LED0, MIN_DUTY_CYCLE);
\ 000000E4 0010A0E3 MOV R1,#+0
\ 000000E8 0100A0E3 MOV R0,#+1
\ 000000EC ........ BL PWMC_SetDutyCycle
276
277 // Configure PWMC channel for LED1 (center-aligned, inverted polarity)
278 PWMC_ConfigureChannel(CHANNEL_PWM_LED1, AT91C_PWMC_CPRE_MCKA, AT91C_PWMC_CALG, AT91C_PWMC_CPOL);
\ 000000F0 803FA0E3 MOV R3,#+512
\ 000000F4 402FA0E3 MOV R2,#+256
\ 000000F8 0B10A0E3 MOV R1,#+11
\ 000000FC 0200A0E3 MOV R0,#+2
\ 00000100 ........ BL PWMC_ConfigureChannel
279 PWMC_SetPeriod(CHANNEL_PWM_LED1, MAX_DUTY_CYCLE);
\ 00000104 3210A0E3 MOV R1,#+50
\ 00000108 0200A0E3 MOV R0,#+2
\ 0000010C ........ BL PWMC_SetPeriod
280 PWMC_SetDutyCycle(CHANNEL_PWM_LED1, MIN_DUTY_CYCLE);
\ 00000110 0010A0E3 MOV R1,#+0
\ 00000114 0200A0E3 MOV R0,#+2
\ 00000118 ........ BL PWMC_SetDutyCycle
281
282 // Configure interrupt on channel #1
283 AIC_ConfigureIT(AT91C_ID_PWMC, 0, ISR_Pwmc);
\ 0000011C 84209FE5 LDR R2,??main_0+0x28 ;; ISR_Pwmc
\ 00000120 0010A0E3 MOV R1,#+0
\ 00000124 0A00A0E3 MOV R0,#+10
\ 00000128 ........ BL AIC_ConfigureIT
284 AIC_EnableIT(AT91C_ID_PWMC);
\ 0000012C 0A00A0E3 MOV R0,#+10
\ 00000130 ........ BL AIC_EnableIT
285 PWMC_EnableChannelIt(CHANNEL_PWM_LED0);
\ 00000134 0100A0E3 MOV R0,#+1
\ 00000138 ........ BL PWMC_EnableChannelIt
286
287 // Enable channel #1
288 PWMC_EnableChannel(CHANNEL_PWM_LED0);
\ 0000013C 0100A0E3 MOV R0,#+1
\ 00000140 ........ BL PWMC_EnableChannel
289 // Main loop
290 while (1) {
291
292 // Wait for LED to be active
293 while (StopSW == 0);
\ ??main_1:
\ 00000144 ........ LDR R0,??DataTable14 ;; StopSW
\ 00000148 0000D0E5 LDRB R0,[R0, #+0]
\ 0000014C 000050E3 CMP R0,#+0
\ 00000150 FBFFFF0A BEQ ??main_1
294
295 // Toggle LED state if active
296 if (StopSW == 1) {
\ 00000154 ........ LDR R0,??DataTable14 ;; StopSW
\ 00000158 0000D0E5 LDRB R0,[R0, #+0]
\ 0000015C 010050E3 CMP R0,#+1
\ 00000160 0300001A BNE ??main_2
297
298 LED_Toggle(0);
\ 00000164 0000A0E3 MOV R0,#+0
\ 00000168 ........ BL LED_Toggle
299 printf("1 ");
\ 0000016C 10008FE2 ADR R0,??main_0+0x4 ;; 0x31, 0x20, 0x00, 0x00
\ 00000170 ........ BL printf
300
301 }
302
303 // Wait for 500ms
304 Wait(500);
\ ??main_2:
\ 00000174 7D0FA0E3 MOV R0,#+500
\ 00000178 ........ BL Wait
\ 0000017C F0FFFFEA B ??main_1
\ ??main_0:
\ 00000180 312E3500 DC8 "1.5"
\ 00000184 31200000 DC8 0x31, 0x20, 0x00, 0x00
\ 00000188 ........ DC32 pins
\ 0000018C ........ DC32 `?<Constant {{402653184, (AT91S_PIO *)429496422`
\ 00000190 ........ DC32 `?<Constant "-- Getting Started Pr...">`
\ 00000194 ........ DC32 `?<Constant "AT91SAM7X-EK">`
\ 00000198 ........ DC32 `?<Constant "-- %s\\n\\r">`
\ 0000019C ........ DC32 `?<Constant "00:50:16">`
\ 000001A0 ........ DC32 `?<Constant "Apr 25 2009">`
\ 000001A4 ........ DC32 `?<Constant "-- Compiled: %s %s --\\n\\r">`
\ 000001A8 ........ DC32 ISR_Pwmc
305 // printf("%d", vypni);
306 }
307 }
\ In section .text, align 4, keep-with-next
\ ??DataTable1:
\ 00000000 ABAAAAAA DC32 0xaaaaaaab
\ In section .text, align 4, keep-with-next
\ ??DataTable10:
\ 00000000 ........ DC32 pinPB1
\ In section .text, align 4, keep-with-next
\ ??DataTable12:
\ 00000000 ........ DC32 timestamp
\ In section .text, align 4, keep-with-next
\ ??DataTable14:
\ 00000000 ........ DC32 StopSW
\ In section .rodata, align 4
\ `?<Constant {{402653184, (AT91S_PIO *)429496422`:
\ 00000000 0000001800F4 DC32 402653184, 0FFFFF400H
\ FFFF
\ 00000008 02000000 DC8 2, 0, 0, 0
\ In section .rodata, align 4
\ `?<Constant "-- Getting Started Pr...">`:
\ 00000000 2D2D20476574 DC8 "-- Getting Started Project %s --\012\015"
\ 74696E672053
\ 746172746564
\ 2050726F6A65
\ 637420257320
\ 2D2D0A0D00
\ 00000023 00 DC8 0
\ In section .rodata, align 4
\ 00000000 312E3500 DC8 "1.5"
\ In section .rodata, align 4
\ `?<Constant "-- %s\\n\\r">`:
\ 00000000 2D2D2025730A DC8 "-- %s\012\015"
\ 0D00
\ In section .rodata, align 4
\ `?<Constant "AT91SAM7X-EK">`:
\ 00000000 415439315341 DC8 "AT91SAM7X-EK"
\ 4D37582D454B
\ 00
\ 0000000D 000000 DC8 0, 0, 0
\ In section .rodata, align 4
\ `?<Constant "-- Compiled: %s %s --\\n\\r">`:
\ 00000000 2D2D20436F6D DC8 "-- Compiled: %s %s --\012\015"
\ 70696C65643A
\ 202573202573
\ 202D2D0A0D00
\ In section .rodata, align 4
\ `?<Constant "Apr 25 2009">`:
\ 00000000 417072203235 DC8 "Apr 25 2009"
\ 203230303900
\ In section .rodata, align 4
\ `?<Constant "00:50:16">`:
\ 00000000 30303A35303A DC8 "00:50:16"
\ 313600
\ 00000009 000000 DC8 0, 0, 0
\ In section .rodata, align 4
\ 00000000 312000 DC8 "1 "
\ 00000003 00 DC8 0
308
Maximum stack usage in bytes:
Function .cstack
-------- -------
ConfigureButtons 0
ConfigureLeds 0
ConfigurePit 0
ISR_Bp1 0
ISR_Pit 0
ISR_Pwmc 0
UTIL_Loop 0
UTIL_WaitTimeInMs 0
UTIL_WaitTimeInUs 0
Wait 0
main 0
Section sizes:
Function/Label Bytes
-------------- -----
StopSW 1
pinPB1 12
pins 24
timestamp 4
UTIL_Loop 4
UTIL_WaitTimeInMs 36
UTIL_WaitTimeInUs 68
ISR_Pwmc 208
count 4
duty 4
fadeIn 1
ISR_Pit 48
ConfigurePit 64
ISR_Bp1 96
lastPress 4
ConfigureButtons 52
ConfigureLeds 8
Wait 48
main 428
??DataTable1 4
??DataTable10 4
??DataTable12 4
??DataTable14 4
?<Constant {{402653184, (AT91S_PIO *)429496422 12
?<Constant "-- Getting Started Pr..."> 36
?<Constant "1.5"> 4
?<Constant "-- %s\n\r"> 8
?<Constant "AT91SAM7X-EK"> 16
?<Constant "-- Compiled: %s %s --\n\r"> 24
?<Constant "Apr 25 2009"> 12
?<Constant "00:50:16"> 12
?<Constant "1 "> 4
17 bytes in section .bss
1 byte in section .data
164 bytes in section .rodata
1 076 bytes in section .text
1 076 bytes of CODE memory
164 bytes of CONST memory
18 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -