0,0 → 1,637 |
GAS LISTING /tmp/ccYxWDEV.s page 1 |
|
|
1 .file "Executive.c" |
2 .arch atmega8 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0 |
11 .stabs "Executive.c",100,0,2,.Ltext0 |
12 .text |
13 .Ltext0: |
14 .stabs "gcc2_compiled.",60,0,0,0 |
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0 |
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0 |
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0 |
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0 |
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0 |
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0, |
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0 |
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0 |
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0 |
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0 |
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0 |
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0 |
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0 |
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0 |
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0 |
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0 |
31 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0 |
32 .stabs "size_t:t(2,1)=(0,4)",128,0,214,0 |
33 .stabs "wchar_t:t(2,2)=(0,1)",128,0,326,0 |
34 .stabn 162,0,0,0 |
35 .stabs "div_t:t(1,1)=(1,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0 |
36 .stabs "ldiv_t:t(1,3)=(1,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0 |
37 .stabs "__compar_fn_t:t(1,5)=(1,6)=*(1,7)=f(0,1)",128,0,78,0 |
38 .stabn 162,0,0,0 |
39 .stabs "CommonDefs.h",130,0,0,0 |
40 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0 |
41 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0 |
42 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0 |
43 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0 |
44 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0 |
45 .stabs "int8_t:t(8,1)=(0,10)",128,0,116,0 |
46 .stabs "uint8_t:t(8,2)=(0,11)",128,0,117,0 |
47 .stabs "int16_t:t(8,3)=(0,1)",128,0,118,0 |
48 .stabs "uint16_t:t(8,4)=(0,4)",128,0,119,0 |
49 .stabs "int32_t:t(8,5)=(0,3)",128,0,120,0 |
50 .stabs "uint32_t:t(8,6)=(0,5)",128,0,121,0 |
51 .stabs "int64_t:t(8,7)=(0,6)",128,0,122,0 |
52 .stabs "uint64_t:t(8,8)=(0,7)",128,0,123,0 |
53 .stabs "intptr_t:t(8,9)=(8,3)",128,0,135,0 |
54 .stabs "uintptr_t:t(8,10)=(8,4)",128,0,140,0 |
55 .stabs "int_least8_t:t(8,11)=(8,1)",128,0,152,0 |
56 .stabs "uint_least8_t:t(8,12)=(8,2)",128,0,157,0 |
57 .stabs "int_least16_t:t(8,13)=(8,3)",128,0,162,0 |
GAS LISTING /tmp/ccYxWDEV.s page 2 |
|
|
58 .stabs "uint_least16_t:t(8,14)=(8,4)",128,0,167,0 |
59 .stabs "int_least32_t:t(8,15)=(8,5)",128,0,172,0 |
60 .stabs "uint_least32_t:t(8,16)=(8,6)",128,0,177,0 |
61 .stabs "int_least64_t:t(8,17)=(8,7)",128,0,182,0 |
62 .stabs "uint_least64_t:t(8,18)=(8,8)",128,0,187,0 |
63 .stabs "int_fast8_t:t(8,19)=(8,1)",128,0,200,0 |
64 .stabs "uint_fast8_t:t(8,20)=(8,2)",128,0,205,0 |
65 .stabs "int_fast16_t:t(8,21)=(8,3)",128,0,210,0 |
66 .stabs "uint_fast16_t:t(8,22)=(8,4)",128,0,215,0 |
67 .stabs "int_fast32_t:t(8,23)=(8,5)",128,0,220,0 |
68 .stabs "uint_fast32_t:t(8,24)=(8,6)",128,0,225,0 |
69 .stabs "int_fast64_t:t(8,25)=(8,7)",128,0,230,0 |
70 .stabs "uint_fast64_t:t(8,26)=(8,8)",128,0,235,0 |
71 .stabs "intmax_t:t(8,27)=(8,7)",128,0,249,0 |
72 .stabs "uintmax_t:t(8,28)=(8,8)",128,0,254,0 |
73 .stabn 162,0,0,0 |
74 .stabs "int_farptr_t:t(7,1)=(8,5)",128,0,76,0 |
75 .stabs "uint_farptr_t:t(7,2)=(8,6)",128,0,80,0 |
76 .stabn 162,0,0,0 |
77 .stabn 162,0,0,0 |
78 .stabn 162,0,0,0 |
79 .stabn 162,0,0,0 |
80 .stabs "bool_t:t(3,1)=(0,11)",128,0,56,0 |
81 .stabn 162,0,0,0 |
82 .stabs "CamConfig.h",130,0,0,0 |
83 .stabs "I2CInterface.h",130,0,0,0 |
84 .stabs "i2cCmd_t:t(10,1)=(10,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0 |
85 .stabn 162,0,0,0 |
86 .stabn 162,0,0,0 |
87 .stabs "Exec_writeEventFifo:F(0,15)",36,0,208,Exec_writeEventFifo |
88 .stabs "event:P(0,11)",64,0,207,24 |
89 .global Exec_writeEventFifo |
90 .type Exec_writeEventFifo, @function |
91 Exec_writeEventFifo: |
92 .stabd 46,0,0 |
1:Executive.c **** /* |
2:Executive.c **** Copyright (C) 2004 John Orlando |
3:Executive.c **** |
4:Executive.c **** AVRcam: a small real-time image processing engine. |
5:Executive.c **** |
6:Executive.c **** This program is free software; you can redistribute it and/or |
7:Executive.c **** modify it under the terms of the GNU General Public |
8:Executive.c **** License as published by the Free Software Foundation; either |
9:Executive.c **** version 2 of the License, or (at your option) any later version. |
10:Executive.c **** |
11:Executive.c **** This program is distributed in the hope that it will be useful, |
12:Executive.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of |
13:Executive.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14:Executive.c **** General Public License for more details. |
15:Executive.c **** |
16:Executive.c **** You should have received a copy of the GNU General Public |
17:Executive.c **** License along with this program; if not, write to the Free Software |
18:Executive.c **** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19:Executive.c **** |
20:Executive.c **** For more information on the AVRcam, please contact: |
21:Executive.c **** |
22:Executive.c **** john@jrobot.net |
GAS LISTING /tmp/ccYxWDEV.s page 3 |
|
|
23:Executive.c **** |
24:Executive.c **** or go to www.jrobot.net for more details regarding the system. |
25:Executive.c **** */ |
26:Executive.c **** /*********************************************************** |
27:Executive.c **** Module Name: Executive.c |
28:Executive.c **** Module Date: 04/12/2004 |
29:Executive.c **** Module Auth: John Orlando |
30:Executive.c **** |
31:Executive.c **** Description: This file is responsible for implementing a |
32:Executive.c **** minimalist event dispatcher. It keeps track of an event |
33:Executive.c **** fifo that waits for new events to come in, and dispatches |
34:Executive.c **** them to any entities that care about them. |
35:Executive.c **** |
36:Executive.c **** Revision History: |
37:Executive.c **** Date Rel Ver. Notes |
38:Executive.c **** 4/10/2004 0.1 Module created |
39:Executive.c **** 6/30/2004 1.0 Initial release for Circuit Cellar |
40:Executive.c **** contest. |
41:Executive.c **** 1/16/2005 1.4 Fixed issue where the interrupts weren't |
42:Executive.c **** being turned off when the fastEventBitmask |
43:Executive.c **** was being accessed. Also removed redundant |
44:Executive.c **** interrupt masking when accessing the |
45:Executive.c **** main event fifo. Also fixed issue where |
46:Executive.c **** the main event fifo wasn't being checked |
47:Executive.c **** for events if an event was pending in |
48:Executive.c **** the fast event fifo. |
49:Executive.c **** ***********************************************************/ |
50:Executive.c **** |
51:Executive.c **** /* Includes */ |
52:Executive.c **** #include <stdlib.h> |
53:Executive.c **** #include "CommonDefs.h" |
54:Executive.c **** #include "Executive.h" |
55:Executive.c **** #include "FrameMgr.h" |
56:Executive.c **** #include "CamInterface.h" |
57:Executive.c **** #include "UIMgr.h" |
58:Executive.c **** #include "UartInterface.h" |
59:Executive.c **** #include "CamConfig.h" |
60:Executive.c **** #include "Utility.h" |
61:Executive.c **** |
62:Executive.c **** /* Local Variables */ |
63:Executive.c **** unsigned char Exec_eventFifo[EXEC_EVENT_FIFO_SIZE]; |
64:Executive.c **** unsigned char Exec_eventFifoHead=0; |
65:Executive.c **** unsigned char Exec_eventFifoTail=0; |
66:Executive.c **** |
67:Executive.c **** /* Local Function Definitions */ |
68:Executive.c **** static unsigned char Exec_readEventFifo(void); |
69:Executive.c **** |
70:Executive.c **** /* Local Structures and Typedefs */ |
71:Executive.c **** |
72:Executive.c **** /* Extern Variables */ |
73:Executive.c **** /* This bitmask holds events that need to be processed as fast as possible */ |
74:Executive.c **** unsigned char fastEventBitmask = 0x00; |
75:Executive.c **** |
76:Executive.c **** /* Definitions */ |
77:Executive.c **** #define IS_DATA_IN_EVENT_FIFO() (!(Exec_eventFifoHead == Exec_eventFifoTail)) |
78:Executive.c **** /*********************************************************** |
79:Executive.c **** Function Name: Exec_run |
GAS LISTING /tmp/ccYxWDEV.s page 4 |
|
|
80:Executive.c **** Function Description: This function is responsible for |
81:Executive.c **** running the main control loop. The control loop is |
82:Executive.c **** based on checking both the fast-event bitmask (for high |
83:Executive.c **** priority events) and the event FIFO to determine if an |
84:Executive.c **** event needs to be handled. The event is then dispatched |
85:Executive.c **** to the appropriate handler. |
86:Executive.c **** Inputs: none |
87:Executive.c **** Outputs: none |
88:Executive.c **** ***********************************************************/ |
89:Executive.c **** void Exec_run(void) |
90:Executive.c **** { |
91:Executive.c **** unsigned char eventGenerated; |
92:Executive.c **** |
93:Executive.c **** while(1) |
94:Executive.c **** { |
95:Executive.c **** if (fastEventBitmask) |
96:Executive.c **** { |
97:Executive.c **** /* an event needing fast processing has been received */ |
98:Executive.c **** /* a received line needs to be processed...this |
99:Executive.c **** needs to be processed as quickly as possible */ |
100:Executive.c **** if (fastEventBitmask & FEV_ACQUIRE_LINE_COMPLETE) |
101:Executive.c **** { |
102:Executive.c **** DISABLE_INTS(); |
103:Executive.c **** fastEventBitmask &= ~FEV_ACQUIRE_LINE_COMPLETE; |
104:Executive.c **** ENABLE_INTS(); |
105:Executive.c **** FrameMgr_processLine(); |
106:Executive.c **** |
107:Executive.c **** /* also check if serial data needs to be sent |
108:Executive.c **** out through UIMgr */ |
109:Executive.c **** UIMgr_transmitPendingData(); |
110:Executive.c **** |
111:Executive.c **** /* we can't just call acquire line again here, |
112:Executive.c **** since we don't know if we need to acquire another |
113:Executive.c **** line or not (it depends on the FrameMgr to figure |
114:Executive.c **** this out) */ |
115:Executive.c **** } |
116:Executive.c **** if (fastEventBitmask & FEV_PROCESS_LINE_COMPLETE) |
117:Executive.c **** { |
118:Executive.c **** DISABLE_INTS(); |
119:Executive.c **** fastEventBitmask &= ~FEV_PROCESS_LINE_COMPLETE; |
120:Executive.c **** ENABLE_INTS(); |
121:Executive.c **** FrameMgr_acquireLine(); |
122:Executive.c **** } |
123:Executive.c **** } |
124:Executive.c **** |
125:Executive.c **** if (IS_DATA_IN_EVENT_FIFO() == TRUE) |
126:Executive.c **** { |
127:Executive.c **** eventGenerated = Exec_readEventFifo(); |
128:Executive.c **** switch(eventGenerated) |
129:Executive.c **** { |
130:Executive.c **** case (EV_DUMP_FRAME): |
131:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
132:Executive.c **** break; |
133:Executive.c **** |
134:Executive.c **** case (EV_ENABLE_TRACKING): |
135:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
136:Executive.c **** break; |
GAS LISTING /tmp/ccYxWDEV.s page 5 |
|
|
137:Executive.c **** |
138:Executive.c **** case (EV_DISABLE_TRACKING): |
139:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
140:Executive.c **** break; |
141:Executive.c **** |
142:Executive.c **** case (EV_ACQUIRE_LINE_COMPLETE): |
143:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
144:Executive.c **** UIMgr_dispatchEvent(eventGenerated); |
145:Executive.c **** break; |
146:Executive.c **** |
147:Executive.c **** case (EV_ACQUIRE_FRAME_COMPLETE): |
148:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
149:Executive.c **** break; |
150:Executive.c **** |
151:Executive.c **** case (EV_PROCESS_LINE_COMPLETE): |
152:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
153:Executive.c **** break; |
154:Executive.c **** |
155:Executive.c **** case (EV_PROCESS_FRAME_COMPLETE): |
156:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
157:Executive.c **** break; |
158:Executive.c **** |
159:Executive.c **** case (EV_SERIAL_DATA_RECEIVED): |
160:Executive.c **** UIMgr_dispatchEvent(eventGenerated); |
161:Executive.c **** FrameMgr_dispatchEvent(eventGenerated); |
162:Executive.c **** break; |
163:Executive.c **** |
164:Executive.c **** case (EV_SERIAL_DATA_PENDING_TX): |
165:Executive.c **** UIMgr_dispatchEvent(eventGenerated); |
166:Executive.c **** break; |
167:Executive.c **** |
168:Executive.c **** default: |
169:Executive.c **** break; |
170:Executive.c **** } |
171:Executive.c **** } |
172:Executive.c **** |
173:Executive.c **** /* toggle the debug line */ |
174:Executive.c **** |
175:Executive.c **** } |
176:Executive.c **** } |
177:Executive.c **** |
178:Executive.c **** /*********************************************************** |
179:Executive.c **** Function Name: Exec_readEventFifo |
180:Executive.c **** Function Description: This function is responsible for |
181:Executive.c **** reading a single event out of the event fifo. |
182:Executive.c **** Inputs: none |
183:Executive.c **** Outputs: unsigned char-the data read |
184:Executive.c **** ***********************************************************/ |
185:Executive.c **** static unsigned char Exec_readEventFifo(void) |
186:Executive.c **** { |
187:Executive.c **** unsigned char dataByte, tmpTail; |
188:Executive.c **** |
189:Executive.c **** DISABLE_INTS(); |
190:Executive.c **** /* just return the current tail from the tx fifo */ |
191:Executive.c **** dataByte = Exec_eventFifo[Exec_eventFifoTail]; |
192:Executive.c **** tmpTail = (Exec_eventFifoTail+1) & (EXEC_EVENT_FIFO_MASK); |
193:Executive.c **** Exec_eventFifoTail = tmpTail; |
GAS LISTING /tmp/ccYxWDEV.s page 6 |
|
|
194:Executive.c **** ENABLE_INTS(); |
195:Executive.c **** |
196:Executive.c **** return(dataByte); |
197:Executive.c **** } |
198:Executive.c **** |
199:Executive.c **** /*********************************************************** |
200:Executive.c **** Function Name: Exec_writeEventFifo |
201:Executive.c **** Function Description: This function is responsible for |
202:Executive.c **** writing a single event to the event fifo and |
203:Executive.c **** updating the appropriate pointers. |
204:Executive.c **** Inputs: data - the byte to write to the Fifo |
205:Executive.c **** Outputs: none |
206:Executive.c **** ***********************************************************/ |
207:Executive.c **** void Exec_writeEventFifo(unsigned char event) |
208:Executive.c **** { |
93 .stabn 68,0,208,.LM0-Exec_writeEventFifo |
94 .LM0: |
95 /* prologue: frame size=0 */ |
96 /* prologue end (size=0) */ |
209:Executive.c **** unsigned char tmpHead; |
210:Executive.c **** |
211:Executive.c **** DISABLE_INTS(); |
97 .stabn 68,0,211,.LM1-Exec_writeEventFifo |
98 .LM1: |
99 /* #APP */ |
100 0000 F894 cli |
212:Executive.c **** Exec_eventFifo[Exec_eventFifoHead] = event; |
101 .stabn 68,0,212,.LM2-Exec_writeEventFifo |
102 .LM2: |
103 /* #NOAPP */ |
104 0002 9091 0000 lds r25,Exec_eventFifoHead |
105 0006 E0E0 ldi r30,lo8(Exec_eventFifo) |
106 0008 F0E0 ldi r31,hi8(Exec_eventFifo) |
107 000a E90F add r30,r25 |
108 000c F11D adc r31,__zero_reg__ |
109 000e 8083 st Z,r24 |
213:Executive.c **** |
214:Executive.c **** /* now move the head up */ |
215:Executive.c **** tmpHead = (Exec_eventFifoHead + 1) & (EXEC_EVENT_FIFO_MASK); |
216:Executive.c **** Exec_eventFifoHead = tmpHead; |
110 .stabn 68,0,216,.LM3-Exec_writeEventFifo |
111 .LM3: |
112 0010 9F5F subi r25,lo8(-(1)) |
113 0012 9770 andi r25,lo8(7) |
114 0014 9093 0000 sts Exec_eventFifoHead,r25 |
217:Executive.c **** ENABLE_INTS(); |
115 .stabn 68,0,217,.LM4-Exec_writeEventFifo |
116 .LM4: |
117 /* #APP */ |
118 0018 7894 sei |
119 /* #NOAPP */ |
120 /* epilogue: frame size=0 */ |
121 001a 0895 ret |
122 /* epilogue end (size=1) */ |
123 /* function Exec_writeEventFifo size 16 (15) */ |
124 .size Exec_writeEventFifo, .-Exec_writeEventFifo |
125 .Lscope0: |
GAS LISTING /tmp/ccYxWDEV.s page 7 |
|
|
126 .stabs "",36,0,0,.Lscope0-Exec_writeEventFifo |
127 .stabd 78,0,0 |
128 .stabs "Exec_run:F(0,15)",36,0,90,Exec_run |
129 .global Exec_run |
130 .type Exec_run, @function |
131 Exec_run: |
132 .stabd 46,0,0 |
133 .stabn 68,0,90,.LM5-Exec_run |
134 .LM5: |
135 /* prologue: frame size=0 */ |
136 /* prologue end (size=0) */ |
137 .L30: |
138 .stabn 68,0,95,.LM6-Exec_run |
139 .LM6: |
140 001c 8091 0000 lds r24,fastEventBitmask |
141 0020 8823 tst r24 |
142 0022 99F0 breq .L6 |
143 .stabn 68,0,100,.LM7-Exec_run |
144 .LM7: |
145 0024 80FF sbrs r24,0 |
146 0026 07C0 rjmp .L8 |
147 .stabn 68,0,102,.LM8-Exec_run |
148 .LM8: |
149 /* #APP */ |
150 0028 F894 cli |
151 .stabn 68,0,103,.LM9-Exec_run |
152 .LM9: |
153 /* #NOAPP */ |
154 002a 8E7F andi r24,lo8(-2) |
155 002c 8093 0000 sts fastEventBitmask,r24 |
156 .stabn 68,0,104,.LM10-Exec_run |
157 .LM10: |
158 /* #APP */ |
159 0030 7894 sei |
160 .stabn 68,0,105,.LM11-Exec_run |
161 .LM11: |
162 /* #NOAPP */ |
163 0032 00D0 rcall FrameMgr_processLine |
164 .stabn 68,0,109,.LM12-Exec_run |
165 .LM12: |
166 0034 00D0 rcall UIMgr_transmitPendingData |
167 .L8: |
168 .stabn 68,0,116,.LM13-Exec_run |
169 .LM13: |
170 0036 8091 0000 lds r24,fastEventBitmask |
171 003a 81FF sbrs r24,1 |
172 003c 06C0 rjmp .L6 |
173 .stabn 68,0,118,.LM14-Exec_run |
174 .LM14: |
175 /* #APP */ |
176 003e F894 cli |
177 .stabn 68,0,119,.LM15-Exec_run |
178 .LM15: |
179 /* #NOAPP */ |
180 0040 8D7F andi r24,lo8(-3) |
181 0042 8093 0000 sts fastEventBitmask,r24 |
182 .stabn 68,0,120,.LM16-Exec_run |
GAS LISTING /tmp/ccYxWDEV.s page 8 |
|
|
183 .LM16: |
184 /* #APP */ |
185 0046 7894 sei |
186 .stabn 68,0,121,.LM17-Exec_run |
187 .LM17: |
188 /* #NOAPP */ |
189 0048 00D0 rcall FrameMgr_acquireLine |
190 .L6: |
191 .stabn 68,0,125,.LM18-Exec_run |
192 .LM18: |
193 004a 2091 0000 lds r18,Exec_eventFifoTail |
194 004e 8091 0000 lds r24,Exec_eventFifoHead |
195 0052 8217 cp r24,r18 |
196 0054 19F3 breq .L30 |
197 .LBB4: |
198 .LBB5: |
199 .stabn 68,0,189,.LM19-Exec_run |
200 .LM19: |
201 /* #APP */ |
202 0056 F894 cli |
203 .stabn 68,0,191,.LM20-Exec_run |
204 .LM20: |
205 /* #NOAPP */ |
206 0058 E22F mov r30,r18 |
207 005a FF27 clr r31 |
208 005c E050 subi r30,lo8(-(Exec_eventFifo)) |
209 005e F040 sbci r31,hi8(-(Exec_eventFifo)) |
210 0060 9081 ld r25,Z |
211 .stabn 68,0,193,.LM21-Exec_run |
212 .LM21: |
213 0062 822F mov r24,r18 |
214 0064 8F5F subi r24,lo8(-(1)) |
215 0066 8770 andi r24,lo8(7) |
216 0068 8093 0000 sts Exec_eventFifoTail,r24 |
217 .stabn 68,0,194,.LM22-Exec_run |
218 .LM22: |
219 /* #APP */ |
220 006c 7894 sei |
221 /* #NOAPP */ |
222 .LBE5: |
223 .LBE4: |
224 .stabn 68,0,128,.LM23-Exec_run |
225 .LM23: |
226 006e 892F mov r24,r25 |
227 0070 9927 clr r25 |
228 0072 8031 cpi r24,lo8(16) |
229 0074 31F1 breq .L16 |
230 0076 8131 cpi r24,lo8(17) |
231 0078 68F4 brsh .L21 |
232 007a 8230 cpi r24,lo8(2) |
233 007c C9F0 breq .L13 |
234 007e 8330 cpi r24,lo8(3) |
235 0080 18F4 brsh .L22 |
236 0082 8130 cpi r24,lo8(1) |
237 0084 59F6 brne .L30 |
238 0086 2BC0 rjmp .L12 |
239 .L22: |
GAS LISTING /tmp/ccYxWDEV.s page 9 |
|
|
240 0088 8430 cpi r24,lo8(4) |
241 008a 31F1 breq .L14 |
242 008c 8830 cpi r24,lo8(8) |
243 008e 09F0 breq .+2 |
244 0090 C5CF rjmp .L30 |
245 0092 1FC0 rjmp .L15 |
246 .L21: |
247 0094 8038 cpi r24,lo8(-128) |
248 0096 79F0 breq .L18 |
249 0098 8138 cpi r24,lo8(-127) |
250 009a 20F4 brsh .L23 |
251 009c 8032 cpi r24,lo8(32) |
252 009e 09F0 breq .+2 |
253 00a0 BDCF rjmp .L30 |
254 00a2 14C0 rjmp .L17 |
255 .L23: |
256 00a4 8138 cpi r24,lo8(-127) |
257 00a6 51F0 breq .L19 |
258 00a8 8039 cpi r24,lo8(-112) |
259 00aa 09F0 breq .+2 |
260 00ac B7CF rjmp .L30 |
261 00ae 1CC0 rjmp .L20 |
262 .L13: |
263 .stabn 68,0,131,.LM24-Exec_run |
264 .LM24: |
265 00b0 82E0 ldi r24,lo8(2) |
266 00b2 00D0 rcall FrameMgr_dispatchEvent |
267 00b4 B3CF rjmp .L30 |
268 .L18: |
269 .stabn 68,0,135,.LM25-Exec_run |
270 .LM25: |
271 00b6 80E8 ldi r24,lo8(-128) |
272 00b8 00D0 rcall FrameMgr_dispatchEvent |
273 00ba B0CF rjmp .L30 |
274 .L19: |
275 .stabn 68,0,139,.LM26-Exec_run |
276 .LM26: |
277 00bc 81E8 ldi r24,lo8(-127) |
278 00be 00D0 rcall FrameMgr_dispatchEvent |
279 00c0 ADCF rjmp .L30 |
280 .L16: |
281 .stabn 68,0,143,.LM27-Exec_run |
282 .LM27: |
283 00c2 80E1 ldi r24,lo8(16) |
284 00c4 00D0 rcall FrameMgr_dispatchEvent |
285 .stabn 68,0,144,.LM28-Exec_run |
286 .LM28: |
287 00c6 80E1 ldi r24,lo8(16) |
288 00c8 00D0 rcall UIMgr_dispatchEvent |
289 00ca A8CF rjmp .L30 |
290 .L17: |
291 .stabn 68,0,148,.LM29-Exec_run |
292 .LM29: |
293 00cc 80E2 ldi r24,lo8(32) |
294 00ce 00D0 rcall FrameMgr_dispatchEvent |
295 00d0 A5CF rjmp .L30 |
296 .L15: |
GAS LISTING /tmp/ccYxWDEV.s page 10 |
|
|
297 .stabn 68,0,152,.LM30-Exec_run |
298 .LM30: |
299 00d2 88E0 ldi r24,lo8(8) |
300 00d4 00D0 rcall FrameMgr_dispatchEvent |
301 00d6 A2CF rjmp .L30 |
302 .L14: |
303 .stabn 68,0,156,.LM31-Exec_run |
304 .LM31: |
305 00d8 84E0 ldi r24,lo8(4) |
306 00da 00D0 rcall FrameMgr_dispatchEvent |
307 00dc 9FCF rjmp .L30 |
308 .L12: |
309 .stabn 68,0,160,.LM32-Exec_run |
310 .LM32: |
311 00de 81E0 ldi r24,lo8(1) |
312 00e0 00D0 rcall UIMgr_dispatchEvent |
313 .stabn 68,0,161,.LM33-Exec_run |
314 .LM33: |
315 00e2 81E0 ldi r24,lo8(1) |
316 00e4 00D0 rcall FrameMgr_dispatchEvent |
317 00e6 9ACF rjmp .L30 |
318 .L20: |
319 .stabn 68,0,165,.LM34-Exec_run |
320 .LM34: |
321 00e8 80E9 ldi r24,lo8(-112) |
322 00ea 00D0 rcall UIMgr_dispatchEvent |
323 00ec 97CF rjmp .L30 |
324 /* epilogue: frame size=0 */ |
325 /* epilogue: noreturn */ |
326 /* epilogue end (size=0) */ |
327 /* function Exec_run size 111 (111) */ |
328 .size Exec_run, .-Exec_run |
329 .stabs "dataByte:r(0,11)",64,0,187,25 |
330 .stabn 192,0,0,.LBB5-Exec_run |
331 .stabn 224,0,0,.LBE5-Exec_run |
332 .Lscope1: |
333 .stabs "",36,0,0,.Lscope1-Exec_run |
334 .stabd 78,0,0 |
335 .global Exec_eventFifoHead |
336 .global Exec_eventFifoHead |
337 .section .bss |
338 .type Exec_eventFifoHead, @object |
339 .size Exec_eventFifoHead, 1 |
340 Exec_eventFifoHead: |
341 0000 00 .skip 1,0 |
342 .global Exec_eventFifoTail |
343 .global Exec_eventFifoTail |
344 .type Exec_eventFifoTail, @object |
345 .size Exec_eventFifoTail, 1 |
346 Exec_eventFifoTail: |
347 0001 00 .skip 1,0 |
348 .global fastEventBitmask |
349 .global fastEventBitmask |
350 .type fastEventBitmask, @object |
351 .size fastEventBitmask, 1 |
352 fastEventBitmask: |
353 0002 00 .skip 1,0 |
GAS LISTING /tmp/ccYxWDEV.s page 11 |
|
|
354 .comm Exec_eventFifo,8,1 |
355 .stabs "fastEventBitmask:G(0,11)",32,0,74,0 |
356 .stabs "Exec_eventFifo:G(0,16)=ar(0,17)=r(0,17);0;0177777;;0;7;(0,11)",32,0,63,0 |
357 .stabs "Exec_eventFifoHead:G(0,11)",32,0,64,0 |
358 .stabs "Exec_eventFifoTail:G(0,11)",32,0,65,0 |
359 .text |
360 .stabs "",100,0,0,.Letext0 |
361 .Letext0: |
362 /* File "Executive.c": code 127 = 0x007f ( 126), prologues 0, epilogues 1 */ |
GAS LISTING /tmp/ccYxWDEV.s page 12 |
|
|
DEFINED SYMBOLS |
*ABS*:00000000 Executive.c |
/tmp/ccYxWDEV.s:3 *ABS*:0000003f __SREG__ |
/tmp/ccYxWDEV.s:4 *ABS*:0000003e __SP_H__ |
/tmp/ccYxWDEV.s:5 *ABS*:0000003d __SP_L__ |
/tmp/ccYxWDEV.s:6 *ABS*:00000000 __tmp_reg__ |
/tmp/ccYxWDEV.s:7 *ABS*:00000001 __zero_reg__ |
/tmp/ccYxWDEV.s:91 .text:00000000 Exec_writeEventFifo |
/tmp/ccYxWDEV.s:340 .bss:00000000 Exec_eventFifoHead |
*COM*:00000008 Exec_eventFifo |
/tmp/ccYxWDEV.s:131 .text:0000001c Exec_run |
/tmp/ccYxWDEV.s:352 .bss:00000002 fastEventBitmask |
/tmp/ccYxWDEV.s:346 .bss:00000001 Exec_eventFifoTail |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
FrameMgr_processLine |
UIMgr_transmitPendingData |
FrameMgr_acquireLine |
FrameMgr_dispatchEvent |
UIMgr_dispatchEvent |