1,229 → 1,223 |
1 .file "capacity.c" |
2 .arch atmega644p |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
2 __SREG__ = 0x3f |
3 __SP_H__ = 0x3e |
4 __SP_L__ = 0x3d |
5 __CCP__ = 0x34 |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global update_timer |
11 .global update_timer |
12 .section .bss |
15 update_timer: |
16 0000 0000 .skip 2,0 |
17 .text |
18 .global Capacity_Init |
20 Capacity_Init: |
21 /* prologue: frame size=0 */ |
22 /* prologue end (size=0) */ |
23 0000 1092 0000 sts (Capacity)+1,__zero_reg__ |
24 0004 1092 0000 sts Capacity,__zero_reg__ |
25 0008 1092 0000 sts (Capacity+4)+1,__zero_reg__ |
26 000c 1092 0000 sts Capacity+4,__zero_reg__ |
27 0010 1092 0000 sts (Capacity+2)+1,__zero_reg__ |
28 0014 1092 0000 sts Capacity+2,__zero_reg__ |
29 0018 1092 0000 sts Capacity+6,__zero_reg__ |
30 001c 8AE0 ldi r24,lo8(10) |
31 001e 90E0 ldi r25,hi8(10) |
32 0020 0E94 0000 call SetDelay |
33 0024 9093 0000 sts (update_timer)+1,r25 |
34 0028 8093 0000 sts update_timer,r24 |
35 /* epilogue: frame size=0 */ |
36 002c 0895 ret |
37 /* epilogue end (size=1) */ |
38 /* function Capacity_Init size 23 (22) */ |
40 .lcomm SubCounter.0,2 |
41 .lcomm CurrentOffset.1,2 |
42 .lcomm SumCurrentOffset.2,4 |
43 .global Capacity_Update |
45 Capacity_Update: |
46 /* prologue: frame size=0 */ |
47 002e CF93 push r28 |
48 0030 DF93 push r29 |
49 /* prologue end (size=2) */ |
50 0032 8091 0000 lds r24,update_timer |
51 0036 9091 0000 lds r25,(update_timer)+1 |
52 003a 0E94 0000 call CheckDelay |
53 003e 8823 tst r24 |
54 0040 09F4 brne .+2 |
55 0042 AFC0 rjmp .L2 |
56 0044 8091 0000 lds r24,update_timer |
57 0048 9091 0000 lds r25,(update_timer)+1 |
58 004c 0A96 adiw r24,10 |
59 004e 9093 0000 sts (update_timer)+1,r25 |
60 0052 8093 0000 sts update_timer,r24 |
61 0056 E0E0 ldi r30,lo8(0) |
62 0058 F0E0 ldi r31,hi8(0) |
63 005a 9F01 movw r18,r30 |
64 005c 90E0 ldi r25,lo8(0) |
65 005e 5FEF ldi r21,lo8(-1) |
66 0060 A0E0 ldi r26,lo8(Motor) |
67 0062 B0E0 ldi r27,hi8(Motor) |
68 0064 4BE0 ldi r20,lo8(11) |
69 .L9: |
70 0066 ED01 movw r28,r26 |
71 0068 8B81 ldd r24,Y+3 |
72 006a 87FF sbrs r24,7 |
73 006c 0BC0 rjmp .L6 |
74 006e 9F5F subi r25,lo8(-(1)) |
75 0070 8D81 ldd r24,Y+5 |
76 0072 E80F add r30,r24 |
77 0074 F11D adc r31,__zero_reg__ |
78 0076 8981 ldd r24,Y+1 |
79 0078 280F add r18,r24 |
80 007a 311D adc r19,__zero_reg__ |
81 007c 8E81 ldd r24,Y+6 |
82 007e 8517 cp r24,r21 |
83 0080 08F4 brsh .L6 |
84 0082 582F mov r21,r24 |
85 .L6: |
86 0084 4150 subi r20,lo8(-(-1)) |
87 0086 1896 adiw r26,8 |
88 0088 47FF sbrs r20,7 |
89 008a EDCF rjmp .L9 |
90 008c 5093 0000 sts Capacity+6,r21 |
91 0090 232B or r18,r19 |
92 0092 41F5 brne .L10 |
93 0094 2091 0000 lds r18,SumCurrentOffset.2 |
94 0098 3091 0000 lds r19,(SumCurrentOffset.2)+1 |
95 009c 4091 0000 lds r20,(SumCurrentOffset.2)+2 |
96 00a0 5091 0000 lds r21,(SumCurrentOffset.2)+3 |
97 00a4 BB27 clr r27 |
98 00a6 A52F mov r26,r21 |
99 00a8 942F mov r25,r20 |
100 00aa 832F mov r24,r19 |
101 00ac 9093 0000 sts (CurrentOffset.1)+1,r25 |
102 00b0 8093 0000 sts CurrentOffset.1,r24 |
103 00b4 AA27 clr r26 |
104 00b6 BB27 clr r27 |
105 00b8 281B sub r18,r24 |
106 00ba 390B sbc r19,r25 |
107 00bc 4A0B sbc r20,r26 |
108 00be 5B0B sbc r21,r27 |
109 00c0 CF01 movw r24,r30 |
110 00c2 AA27 clr r26 |
111 00c4 BB27 clr r27 |
112 00c6 280F add r18,r24 |
113 00c8 391F adc r19,r25 |
114 00ca 4A1F adc r20,r26 |
115 00cc 5B1F adc r21,r27 |
116 00ce 2093 0000 sts SumCurrentOffset.2,r18 |
117 00d2 3093 0000 sts (SumCurrentOffset.2)+1,r19 |
118 00d6 4093 0000 sts (SumCurrentOffset.2)+2,r20 |
119 00da 5093 0000 sts (SumCurrentOffset.2)+3,r21 |
120 00de E5E0 ldi r30,lo8(5) |
121 00e0 F0E0 ldi r31,hi8(5) |
122 00e2 13C0 rjmp .L11 |
123 .L10: |
124 00e4 2091 0000 lds r18,CurrentOffset.1 |
125 00e8 3091 0000 lds r19,(CurrentOffset.1)+1 |
126 00ec 2E17 cp r18,r30 |
127 00ee 3F07 cpc r19,r31 |
128 00f0 18F4 brsh .L12 |
129 00f2 E21B sub r30,r18 |
130 00f4 F30B sbc r31,r19 |
131 00f6 02C0 rjmp .L13 |
132 .L12: |
133 00f8 E0E0 ldi r30,lo8(0) |
134 00fa F0E0 ldi r31,hi8(0) |
135 .L13: |
136 00fc 892F mov r24,r25 |
137 00fe 9927 clr r25 |
138 0100 880F add r24,r24 |
139 0102 991F adc r25,r25 |
140 0104 E80F add r30,r24 |
141 0106 F91F adc r31,r25 |
142 0108 3596 adiw r30,5 |
143 .L11: |
144 010a F093 0000 sts (Capacity)+1,r31 |
145 010e E093 0000 sts Capacity,r30 |
146 0112 EF3F cpi r30,255 |
147 0114 F105 cpc r31,__zero_reg__ |
148 0116 78F4 brsh .L14 |
149 0118 8091 0000 lds r24,UBat |
150 011c 9091 0000 lds r25,(UBat)+1 |
151 0120 8E9F mul r24,r30 |
152 0122 9001 movw r18,r0 |
153 0124 8F9F mul r24,r31 |
154 0126 300D add r19,r0 |
155 0128 9E9F mul r25,r30 |
156 012a 300D add r19,r0 |
157 012c 1124 clr r1 |
158 012e C901 movw r24,r18 |
159 0130 64E6 ldi r22,lo8(100) |
160 0132 70E0 ldi r23,hi8(100) |
161 0134 13C0 rjmp .L19 |
162 .L14: |
163 0136 CF01 movw r24,r30 |
164 0138 9695 lsr r25 |
165 013a 8795 ror r24 |
166 013c 9695 lsr r25 |
167 013e 8795 ror r24 |
168 0140 2091 0000 lds r18,UBat |
169 0144 3091 0000 lds r19,(UBat)+1 |
170 0148 289F mul r18,r24 |
171 014a A001 movw r20,r0 |
172 014c 299F mul r18,r25 |
173 014e 500D add r21,r0 |
174 0150 389F mul r19,r24 |
175 0152 500D add r21,r0 |
176 0154 1124 clr r1 |
177 0156 CA01 movw r24,r20 |
178 0158 69E1 ldi r22,lo8(25) |
179 015a 70E0 ldi r23,hi8(25) |
180 .L19: |
181 015c 0E94 0000 call __udivmodhi4 |
182 0160 7093 0000 sts (Capacity+2)+1,r23 |
183 0164 6093 0000 sts Capacity+2,r22 |
184 0168 2091 0000 lds r18,SubCounter.0 |
185 016c 3091 0000 lds r19,(SubCounter.0)+1 |
186 0170 2E0F add r18,r30 |
187 0172 3F1F adc r19,r31 |
188 0174 3093 0000 sts (SubCounter.0)+1,r19 |
189 0178 2093 0000 sts SubCounter.0,r18 |
190 017c 5EE0 ldi r21,hi8(3601) |
191 017e 2131 cpi r18,lo8(3601) |
192 0180 3507 cpc r19,r21 |
193 0182 78F0 brlo .L2 |
194 0184 8091 0000 lds r24,Capacity+4 |
195 0188 9091 0000 lds r25,(Capacity+4)+1 |
196 018c 0196 adiw r24,1 |
197 018e 9093 0000 sts (Capacity+4)+1,r25 |
198 0192 8093 0000 sts Capacity+4,r24 |
199 0196 2051 subi r18,lo8(-(-3600)) |
200 0198 3E40 sbci r19,hi8(-(-3600)) |
201 019a 3093 0000 sts (SubCounter.0)+1,r19 |
202 019e 2093 0000 sts SubCounter.0,r18 |
203 .L2: |
204 /* epilogue: frame size=0 */ |
205 01a2 DF91 pop r29 |
206 01a4 CF91 pop r28 |
207 01a6 0895 ret |
208 /* epilogue end (size=3) */ |
209 /* function Capacity_Update size 189 (184) */ |
211 .comm Capacity,7,1 |
212 /* File "capacity.c": code 212 = 0x00d4 ( 206), prologues 2, epilogues 4 */ |
8 .text |
9 .global Capacity_Update |
11 Capacity_Update: |
12 /* prologue: function */ |
13 /* frame size = 0 */ |
14 0000 8091 0000 lds r24,update_timer |
15 0004 9091 0000 lds r25,(update_timer)+1 |
16 0008 0E94 0000 call CheckDelay |
17 000c 8823 tst r24 |
18 000e 01F4 brne .+2 |
19 0010 00C0 rjmp .L13 |
20 0012 8091 0000 lds r24,update_timer |
21 0016 9091 0000 lds r25,(update_timer)+1 |
22 001a 0A96 adiw r24,10 |
23 001c 9093 0000 sts (update_timer)+1,r25 |
24 0020 8093 0000 sts update_timer,r24 |
25 0024 E0E0 ldi r30,lo8(Motor+1) |
26 0026 F0E0 ldi r31,hi8(Motor+1) |
27 0028 60E0 ldi r22,lo8(0) |
28 002a 70E0 ldi r23,hi8(0) |
29 002c 40E0 ldi r20,lo8(0) |
30 002e 50E0 ldi r21,hi8(0) |
31 0030 90E0 ldi r25,lo8(0) |
32 0032 AFEF ldi r26,lo8(-1) |
33 .L6: |
34 0034 8281 ldd r24,Z+2 |
35 0036 87FF sbrs r24,7 |
36 0038 00C0 rjmp .L3 |
37 003a 9F5F subi r25,lo8(-(1)) |
38 003c 8481 ldd r24,Z+4 |
39 003e 680F add r22,r24 |
40 0040 711D adc r23,__zero_reg__ |
41 0042 8081 ld r24,Z |
42 0044 480F add r20,r24 |
43 0046 511D adc r21,__zero_reg__ |
44 0048 8581 ldd r24,Z+5 |
45 004a 8A17 cp r24,r26 |
46 004c 00F0 brlo .L4 |
47 .L3: |
48 004e 8A2F mov r24,r26 |
49 .L4: |
50 0050 3896 adiw r30,8 |
51 0052 20E0 ldi r18,hi8(Motor+97) |
52 0054 E030 cpi r30,lo8(Motor+97) |
53 0056 F207 cpc r31,r18 |
54 0058 01F0 breq .L5 |
55 005a A82F mov r26,r24 |
56 005c 00C0 rjmp .L6 |
57 .L5: |
58 005e 8093 0000 sts Capacity+6,r24 |
59 0062 452B or r20,r21 |
60 0064 01F4 brne .L7 |
61 0066 8091 0000 lds r24,SumCurrentOffset.2245 |
62 006a 9091 0000 lds r25,(SumCurrentOffset.2245)+1 |
63 006e A091 0000 lds r26,(SumCurrentOffset.2245)+2 |
64 0072 B091 0000 lds r27,(SumCurrentOffset.2245)+3 |
65 0076 292F mov r18,r25 |
66 0078 3A2F mov r19,r26 |
67 007a 4B2F mov r20,r27 |
68 007c 5527 clr r21 |
69 007e 3093 0000 sts (CurrentOffset.2244)+1,r19 |
70 0082 2093 0000 sts CurrentOffset.2244,r18 |
71 0086 40E0 ldi r20,lo8(0) |
72 0088 50E0 ldi r21,hi8(0) |
73 008a 821B sub r24,r18 |
74 008c 930B sbc r25,r19 |
75 008e A40B sbc r26,r20 |
76 0090 B50B sbc r27,r21 |
77 0092 9B01 movw r18,r22 |
78 0094 40E0 ldi r20,lo8(0) |
79 0096 50E0 ldi r21,hi8(0) |
80 0098 820F add r24,r18 |
81 009a 931F adc r25,r19 |
82 009c A41F adc r26,r20 |
83 009e B51F adc r27,r21 |
84 00a0 8093 0000 sts SumCurrentOffset.2245,r24 |
85 00a4 9093 0000 sts (SumCurrentOffset.2245)+1,r25 |
86 00a8 A093 0000 sts (SumCurrentOffset.2245)+2,r26 |
87 00ac B093 0000 sts (SumCurrentOffset.2245)+3,r27 |
88 00b0 E5E0 ldi r30,lo8(5) |
89 00b2 F0E0 ldi r31,hi8(5) |
90 00b4 00C0 rjmp .L8 |
91 .L7: |
92 00b6 4091 0000 lds r20,CurrentOffset.2244 |
93 00ba 5091 0000 lds r21,(CurrentOffset.2244)+1 |
94 00be 4617 cp r20,r22 |
95 00c0 5707 cpc r21,r23 |
96 00c2 00F0 brlo .L9 |
97 00c4 20E0 ldi r18,lo8(0) |
98 00c6 30E0 ldi r19,hi8(0) |
99 00c8 00C0 rjmp .L10 |
100 .L9: |
101 00ca 9B01 movw r18,r22 |
102 00cc 241B sub r18,r20 |
103 00ce 350B sbc r19,r21 |
104 .L10: |
105 00d0 E92F mov r30,r25 |
106 00d2 F0E0 ldi r31,lo8(0) |
107 00d4 EE0F lsl r30 |
108 00d6 FF1F rol r31 |
109 00d8 3596 adiw r30,5 |
110 00da E20F add r30,r18 |
111 00dc F31F adc r31,r19 |
112 .L8: |
113 00de F093 0000 sts (Capacity)+1,r31 |
114 00e2 E093 0000 sts Capacity,r30 |
115 00e6 EF3F cpi r30,255 |
116 00e8 F105 cpc r31,__zero_reg__ |
117 00ea 00F4 brsh .L11 |
118 00ec 8091 0000 lds r24,UBat |
119 00f0 9091 0000 lds r25,(UBat)+1 |
120 00f4 AC01 movw r20,r24 |
121 00f6 E49F mul r30,r20 |
122 00f8 C001 movw r24,r0 |
123 00fa E59F mul r30,r21 |
124 00fc 900D add r25,r0 |
125 00fe F49F mul r31,r20 |
126 0100 900D add r25,r0 |
127 0102 1124 clr r1 |
128 0104 64E6 ldi r22,lo8(100) |
129 0106 70E0 ldi r23,hi8(100) |
130 0108 00C0 rjmp .L14 |
131 .L11: |
132 010a 8091 0000 lds r24,UBat |
133 010e 9091 0000 lds r25,(UBat)+1 |
134 0112 9F01 movw r18,r30 |
135 0114 3695 lsr r19 |
136 0116 2795 ror r18 |
137 0118 3695 lsr r19 |
138 011a 2795 ror r18 |
139 011c AC01 movw r20,r24 |
140 011e 249F mul r18,r20 |
141 0120 C001 movw r24,r0 |
142 0122 259F mul r18,r21 |
143 0124 900D add r25,r0 |
144 0126 349F mul r19,r20 |
145 0128 900D add r25,r0 |
146 012a 1124 clr r1 |
147 012c 69E1 ldi r22,lo8(25) |
148 012e 70E0 ldi r23,hi8(25) |
149 .L14: |
150 0130 0E94 0000 call __udivmodhi4 |
151 0134 7093 0000 sts (Capacity+2)+1,r23 |
152 0138 6093 0000 sts Capacity+2,r22 |
153 013c 2091 0000 lds r18,SubCounter.2243 |
154 0140 3091 0000 lds r19,(SubCounter.2243)+1 |
155 0144 2E0F add r18,r30 |
156 0146 3F1F adc r19,r31 |
157 0148 3093 0000 sts (SubCounter.2243)+1,r19 |
158 014c 2093 0000 sts SubCounter.2243,r18 |
159 0150 5EE0 ldi r21,hi8(3601) |
160 0152 2131 cpi r18,lo8(3601) |
161 0154 3507 cpc r19,r21 |
162 0156 00F0 brlo .L13 |
163 0158 8091 0000 lds r24,Capacity+4 |
164 015c 9091 0000 lds r25,(Capacity+4)+1 |
165 0160 0196 adiw r24,1 |
166 0162 9093 0000 sts (Capacity+4)+1,r25 |
167 0166 8093 0000 sts Capacity+4,r24 |
168 016a 2051 subi r18,lo8(-(-3600)) |
169 016c 3E40 sbci r19,hi8(-(-3600)) |
170 016e 3093 0000 sts (SubCounter.2243)+1,r19 |
171 0172 2093 0000 sts SubCounter.2243,r18 |
172 .L13: |
173 0176 0895 ret |
175 .global Capacity_Init |
177 Capacity_Init: |
178 /* prologue: function */ |
179 /* frame size = 0 */ |
180 0178 1092 0000 sts (Capacity)+1,__zero_reg__ |
181 017c 1092 0000 sts Capacity,__zero_reg__ |
182 0180 1092 0000 sts (Capacity+4)+1,__zero_reg__ |
183 0184 1092 0000 sts Capacity+4,__zero_reg__ |
184 0188 1092 0000 sts (Capacity+2)+1,__zero_reg__ |
185 018c 1092 0000 sts Capacity+2,__zero_reg__ |
186 0190 1092 0000 sts Capacity+6,__zero_reg__ |
187 0194 8AE0 ldi r24,lo8(10) |
188 0196 90E0 ldi r25,hi8(10) |
189 0198 0E94 0000 call SetDelay |
190 019c 9093 0000 sts (update_timer)+1,r25 |
191 01a0 8093 0000 sts update_timer,r24 |
192 /* epilogue start */ |
193 01a4 0895 ret |
195 .global update_timer |
196 .global update_timer |
197 .section .bss |
200 update_timer: |
201 0000 0000 .skip 2,0 |
202 .lcomm SumCurrentOffset.2245,4 |
203 .lcomm CurrentOffset.2244,2 |
204 .lcomm SubCounter.2243,2 |
205 .comm Capacity,7,1 |
206 .global __do_clear_bss |
DEFINED SYMBOLS |
*ABS*:00000000 capacity.c |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:15 .bss:00000000 update_timer |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:20 .text:00000000 Capacity_Init |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:2 *ABS*:0000003f __SREG__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:3 *ABS*:0000003e __SP_H__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:4 *ABS*:0000003d __SP_L__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:5 *ABS*:00000034 __CCP__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:6 *ABS*:00000000 __tmp_reg__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:7 *ABS*:00000001 __zero_reg__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:11 .text:00000000 Capacity_Update |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:200 .bss:00000000 update_timer |
*COM*:00000007 Capacity |
.bss:00000002 SubCounter.0 |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:40 .bss:00000004 CurrentOffset.1 |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:41 .bss:00000006 SumCurrentOffset.2 |
C:\Users\Arthur-P\AppData\Local\Temp/cckHbaaa.s:45 .text:0000002e Capacity_Update |
.bss:00000002 SumCurrentOffset.2245 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:202 .bss:00000006 CurrentOffset.2244 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:203 .bss:00000008 SubCounter.2243 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc3DnvEP.s:177 .text:00000178 Capacity_Init |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
SetDelay |
CheckDelay |
Motor |
UBat |
__udivmodhi4 |
SetDelay |
__do_clear_bss |