📄 main.lst
字号:
16:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** POSSIBILITY OF SUCH DAMAGE. */
25:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
26:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /* $Id: interrupt.h,v 1.8.2.2 2004/02/13 22:07:56 joerg_wunsch Exp $ */
27:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
28:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #ifndef _AVR_INTERRUPT_H_
29:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #define _AVR_INTERRUPT_H_
30:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
31:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #include <avr/io.h>
32:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
33:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /** \name Global manipulation of the interrupt flag
34:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
35:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** The global interrupt flag is maintained in the I bit of the status
36:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** register (SREG). */
37:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
38:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /*@{*/
39:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
40:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /** \def sei()
41:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \ingroup avr_interrupts
42:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
43:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \code#include <avr/interrupt.h>\endcode
44:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
45:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** Enables interrupts by clearing the global interrupt mask. This function
46:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** actually compiles into a single line of assembly, so there is no function
47:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** call overhead. */
48:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
49:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #define sei() __asm__ __volatile__ ("sei" ::)
50:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
51:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /** \def cli()
52:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \ingroup avr_interrupts
53:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
54:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \code#include <avr/interrupt.h>\endcode
55:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
56:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** Disables all interrupts by clearing the global interrupt mask. This function
57:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** actually compiles into a single line of assembly, so there is no function
58:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** call overhead. */
59:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
60:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #define cli() __asm__ __volatile__ ("cli" ::)
61:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
62:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /*@}*/
63:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
64:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #ifdef __cplusplus
65:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** extern "C" {
66:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #endif
67:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
68:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /** \name Allowing specific system-wide interrupts
69:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
70:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** In addition to globally enabling interrupts, each device's particular
71:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** interrupt needs to be enabled separately if interrupts for this device are
72:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** desired. While some devices maintain their interrupt enable bit inside
73:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** the device's register set, external and timer interrupts have system-wide
74:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** configuration registers.
75:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
76:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** Example:
77:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
78:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \code
79:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** // Enable timer 1 overflow interrupts.
80:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** timer_enable_int(_BV(TOIE1));
81:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
82:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** // Do some work...
83:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
84:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** // Disable all timer interrupts.
85:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** timer_enable_int(0);
86:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \endcode
87:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
88:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \note Be careful when you use these functions. If you already have a
89:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** different interrupt enabled, you could inadvertantly disable it by
90:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** enabling another intterupt. */
91:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
92:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /*@{*/
93:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
94:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /** \ingroup avr_interrupts
95:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \def enable_external_int(mask)
96:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \code#include <avr/interrupt.h>\endcode
97:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
98:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** This macro gives access to the \c GIMSK register (or \c EIMSK register
99:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** if using an AVR Mega device or \c GICR register for others). Although this
100:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** macro is essentially the same as assigning to the register, it does
101:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** adapt slightly to the type of device being used. This macro is
102:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** unavailable if none of the registers listed above are defined. */
103:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
104:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /* Define common register definition if available. */
105:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #if defined(EIMSK)
106:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #define __EICR EIMSK
107:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #endif
108:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #if defined(GIMSK)
109:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #define __EICR GIMSK
110:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #endif
111:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #if defined(GICR)
112:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #define __EICR GICR
113:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #endif
114:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
115:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /* If common register defined, define macro. */
116:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #if defined(__EICR)
117:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #define enable_external_int(mask) (__EICR = mask)
118:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #endif
119:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
120:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
121:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
122:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** /** \ingroup avr_interrupts
123:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
124:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** \code#include <avr/interrupt.h>\endcode
125:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
126:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** This function modifies the \c timsk register.
127:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** The value you pass via \c ints is device specific. */
128:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h ****
129:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** static __inline__ void timer_enable_int (unsigned char ints)
130:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** {
131:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** #ifdef TIMSK
132:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/interrupt.h **** TIMSK = ints;
158 .LM13:
159 0096 80E8 ldi r24,lo8(-128)
160 0098 89BF out 89-0x20,r24
161 .LBE3:
162 .LBE2:
164 .Ltext2:
69:main.c **** timer_enable_int(BV(TOIE1));
70:main.c **** sei(); /* enable interrupts */
166 .LM14:
167 /* #APP */
168 009a 7894 sei
169 /* #NOAPP */
170 /* epilogue: frame size=0 */
171 009c 0895 ret
172 /* epilogue end (size=1) */
173 /* function ioinit size 13 (12) */
179 .global main
181 main:
71:main.c **** }
72:main.c ****
73:main.c **** int main(void)
74:main.c **** {
183 .LM15:
184 /* prologue: frame size=0 */
185 009e C0E0 ldi r28,lo8(__stack - 0)
186 00a0 D0E0 ldi r29,hi8(__stack - 0)
187 00a2 DEBF out __SP_H__,r29
188 00a4 CDBF out __SP_L__,r28
189 /* prologue end (size=4) */
75:main.c **** ioinit();
191 .LM16:
192 00a6 EFDF rcall ioinit
193 .L10:
76:main.c **** for (;;)
195 .LM17:
196 00a8 FFCF rjmp .L10
197 /* epilogue: frame size=0 */
198 /* epilogue: noreturn */
199 /* epilogue end (size=0) */
200 /* function main size 6 (2) */
202 .comm pwm,2,1
203 .comm direction,1,1
206 .text
208 Letext:
209 /* File "main.c": code 88 = 0x0058 ( 67), prologues 12, epilogues 9 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:55 .text:00000000 __vector_5
*COM*:00000001 direction
*COM*:00000002 pwm
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:132 .text:00000086 ioinit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:181 .text:0000009e main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:208 .text:000000aa Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -