CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
capt_seq.c-Dateireferenz
#include "lolevel.h"
#include "platform.h"
#include "core.h"
#include "../../../generic/capt_seq.c"
+ Include-Abhängigkeitsdiagramm für capt_seq.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define USE_STUBS_NRFLAG   1
 
#define NR_AUTO   (0)
 

Funktionen

void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 

Makro-Dokumentation

#define NR_AUTO   (0)

Definiert in Zeile 9 der Datei capt_seq.c.

#define USE_STUBS_NRFLAG   1

Definiert in Zeile 8 der Datei capt_seq.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

*-------------------------------------------------------------------—

!!

IS_ERROR( hSoundHandle )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

__MovieRecorder_c__100

__MovieRecorder_c__100

ASM1989 -> In sx200:FF857190 //"Mounter.c"

ASM1989 -> In sx200:FF81B284 // DebugAssert

Definiert in Zeile 62 der Datei capt_seq.c.

62  {
63  asm volatile (
64 " push {r3, r4, r5, r6, r7, lr}\n"
65 " ldr r4, =0x00037518\n"
66 " movs r6, #0\n"
67 " ldr r5, =0x0000ba6c\n"
68 "loc_fc12dedc:\n"
69 " movs r2, #0\n"
70 " mov r1, sp\n"
71 " ldr r0, [r5, #4]\n"
72 " blx sub_fc29b440\n" // j_ReceiveMessageQueue
73 " lsls r0, r0, #0x1f\n"
74 " beq loc_fc12defe\n"
75 " movw r2, #0x429\n"
76 " ldr r1, =0xfc12db64\n" // *"SsShootTask.c"
77 " movs r0, #0\n"
78 " blx sub_fc29b538\n" // j_DebugAssert
79 " blx sub_fc29b458\n" // -> ExitTask
80 " pop {r3, r4, r5, r6, r7, pc}\n"
81 "loc_fc12defe:\n"
82 " ldr r0, [sp]\n"
83 " ldr r0, [r0]\n"
84 " cmp r0, #1\n"
85 " beq loc_fc12df16\n"
86 " cmp r0, #0x2a\n"
87 " beq loc_fc12df16\n"
88 " cmp r0, #0x1e\n"
89 " beq loc_fc12df16\n"
90 " cmp r0, #0x21\n"
91 " beq loc_fc12df16\n"
92 " bl sub_fc1ba538\n"
93 "loc_fc12df16:\n"
94 #ifdef CAPTSEQ_DEBUG_LOG
95 // debug message
96 "ldr r0, [sp]\n"
97 "ldr r0, [r0]\n"
98 "bl log_capt_seq1\n"
99 #endif
100 " ldr r0, [sp]\n"
101 " ldr r1, [r0]\n"
102 " cmp r1, #0x2c\n"
103 " bhs loc_fc12dffe\n"
104 " tbb [pc, r1]\n" // (jumptable r1 44 elements)
105 "branchtable_fc12df22:\n"
106 " .byte((loc_fc12df4e - branchtable_fc12df22) / 2)\n" // (case 0)
107 " .byte((loc_fc12df62 - branchtable_fc12df22) / 2)\n" // (case 1)
108 " .byte((loc_fc12df6a - branchtable_fc12df22) / 2)\n" // (case 2)
109 " .byte((loc_fc12df78 - branchtable_fc12df22) / 2)\n" // (case 3)
110 " .byte((loc_fc12df72 - branchtable_fc12df22) / 2)\n" // (case 4)
111 " .byte((loc_fc12df80 - branchtable_fc12df22) / 2)\n" // (case 5)
112 " .byte((loc_fc12df86 - branchtable_fc12df22) / 2)\n" // (case 6)
113 " .byte((loc_fc12df8c - branchtable_fc12df22) / 2)\n" // (case 7)
114 " .byte((loc_fc12df94 - branchtable_fc12df22) / 2)\n" // (case 8)
115 " .byte((loc_fc12dfd0 - branchtable_fc12df22) / 2)\n" // (case 9)
116 " .byte((loc_fc12df9e - branchtable_fc12df22) / 2)\n" // (case 10)
117 " .byte((loc_fc12dfa6 - branchtable_fc12df22) / 2)\n" // (case 11)
118 " .byte((loc_fc12dfac - branchtable_fc12df22) / 2)\n" // (case 12)
119 " .byte((loc_fc12dfb4 - branchtable_fc12df22) / 2)\n" // (case 13)
120 " .byte((loc_fc12dfc4 - branchtable_fc12df22) / 2)\n" // (case 14)
121 " .byte((loc_fc12dfca - branchtable_fc12df22) / 2)\n" // (case 15)
122 " .byte((loc_fc12dfd6 - branchtable_fc12df22) / 2)\n" // (case 16)
123 " .byte((loc_fc12dfdc - branchtable_fc12df22) / 2)\n" // (case 17)
124 " .byte((loc_fc12dfe2 - branchtable_fc12df22) / 2)\n" // (case 18)
125 " .byte((loc_fc12dfe8 - branchtable_fc12df22) / 2)\n" // (case 19)
126 " .byte((loc_fc12dfee - branchtable_fc12df22) / 2)\n" // (case 20)
127 " .byte((loc_fc12dff4 - branchtable_fc12df22) / 2)\n" // (case 21)
128 " .byte((loc_fc12dff8 - branchtable_fc12df22) / 2)\n" // (case 22)
129 " .byte((loc_fc12e000 - branchtable_fc12df22) / 2)\n" // (case 23)
130 " .byte((loc_fc12e006 - branchtable_fc12df22) / 2)\n" // (case 24)
131 " .byte((loc_fc12e00c - branchtable_fc12df22) / 2)\n" // (case 25)
132 " .byte((loc_fc12e012 - branchtable_fc12df22) / 2)\n" // (case 26)
133 " .byte((loc_fc12e018 - branchtable_fc12df22) / 2)\n" // (case 27)
134 " .byte((loc_fc12e020 - branchtable_fc12df22) / 2)\n" // (case 28)
135 " .byte((loc_fc12e026 - branchtable_fc12df22) / 2)\n" // (case 29)
136 " .byte((loc_fc12e02a - branchtable_fc12df22) / 2)\n" // (case 30)
137 " .byte((loc_fc12e032 - branchtable_fc12df22) / 2)\n" // (case 31)
138 " .byte((loc_fc12e038 - branchtable_fc12df22) / 2)\n" // (case 32)
139 " .byte((loc_fc12e03e - branchtable_fc12df22) / 2)\n" // (case 33)
140 " .byte((loc_fc12e044 - branchtable_fc12df22) / 2)\n" // (case 34)
141 " .byte((loc_fc12e04a - branchtable_fc12df22) / 2)\n" // (case 35)
142 " .byte((loc_fc12e050 - branchtable_fc12df22) / 2)\n" // (case 36)
143 " .byte((loc_fc12e056 - branchtable_fc12df22) / 2)\n" // (case 37)
144 " .byte((loc_fc12e05e - branchtable_fc12df22) / 2)\n" // (case 38)
145 " .byte((loc_fc12e064 - branchtable_fc12df22) / 2)\n" // (case 39)
146 " .byte((loc_fc12e06e - branchtable_fc12df22) / 2)\n" // (case 40)
147 " .byte((loc_fc12e09a - branchtable_fc12df22) / 2)\n" // (case 41)
148 " .byte((loc_fc12e0a0 - branchtable_fc12df22) / 2)\n" // (case 42)
149 " .byte((loc_fc12e0ba - branchtable_fc12df22) / 2)\n" // (case 43)
150 ".align 1\n"
151 "loc_fc12df4e:\n" // case 0: preshoot, quick press shoot
152 " bl sub_fc12e3f2\n"
153 #ifdef CAPTSEQ_DEBUG_LOG
154 "bl log_capt_seq3\n"
155 #endif
156 " BL shooting_expo_param_override\n" // +
157 " bl sub_fc12bbfa\n"
158 " ldr r0, [r4, #0x28]\n"
159 " cmp r0, #0\n"
160 " beq loc_fc12df60\n"
161 //" bl sub_fc1b9426\n"
162 " bl sub_fc1b9426_my\n" // quick press
163 "loc_fc12df60:\n"
164 " b loc_fc12e0ba\n"
165 "loc_fc12df62:\n" // case 1: normal shoot
166 " ldr r0, [r0, #0x10]\n"
167 //" bl sub_fc1b929a\n"
168 " bl sub_fc1b929a_my\n" // +
169 " b loc_fc12e0ba\n"
170 "loc_fc12df6a:\n"
171 " movs r0, #1\n"
172 " bl sub_fc12e672\n"
173 " b loc_fc12e0ba\n"
174 "loc_fc12df72:\n"
175 " bl sub_fc12e1be\n"
176 " b loc_fc12df7c\n"
177 "loc_fc12df78:\n"
178 " bl sub_fc12e3de\n"
179 "loc_fc12df7c:\n"
180 " str r6, [r4, #0x28]\n"
181 " b loc_fc12e0ba\n"
182 "loc_fc12df80:\n"
183 " bl sub_fc12e3e2\n"
184 " b loc_fc12e0ba\n"
185 "loc_fc12df86:\n"
186 " bl sub_fc12e57a\n"
187 " b loc_fc12df98\n"
188 "loc_fc12df8c:\n"
189 " ldr r0, [r0, #0x10]\n"
190 " bl sub_fc1b949a\n"
191 " b loc_fc12e0ba\n"
192 "loc_fc12df94:\n"
193 " bl sub_fc12e600\n"
194 "loc_fc12df98:\n"
195 " bl sub_fc12bbfa\n"
196 " b loc_fc12e0ba\n"
197 "loc_fc12df9e:\n"
198 " ldr r0, [r4, #0x50]\n"
199 " bl sub_fc12ebd8\n"
200 " b loc_fc12e0ba\n"
201 "loc_fc12dfa6:\n"
202 " bl sub_fc12ee6c\n"
203 " b loc_fc12e0ba\n"
204 "loc_fc12dfac:\n"
205 " ldr r0, [r0, #0xc]\n"
206 " bl sub_fc12eeb8\n"
207 " b loc_fc12e0ba\n"
208 "loc_fc12dfb4:\n"
209 " bl sub_fc12f032\n"
210 " b loc_fc12e0ba\n"
211 // literal pool in original firmware
212 ".ltorg\n"
213 /*
214 " movs r0, r0\n"
215 " strb r0, [r3, #0x14]\n"
216 " movs r3, r0\n"
217 " rev16 r4, r5\n"
218 " movs r0, r0\n"
219 */
220 "loc_fc12dfc4:\n"
221 " bl sub_fc12f3f4\n"
222 " b loc_fc12e0ba\n"
223 "loc_fc12dfca:\n"
224 " bl sub_fc12f484\n"
225 " b loc_fc12e0ba\n"
226 "loc_fc12dfd0:\n"
227 " bl sub_fc12e3de\n"
228 " b loc_fc12e0ba\n"
229 "loc_fc12dfd6:\n"
230 " bl sub_fc1b8874\n"
231 " b loc_fc12e0ba\n"
232 "loc_fc12dfdc:\n"
233 " bl sub_fc1b8a02\n"
234 " b loc_fc12e0ba\n"
235 "loc_fc12dfe2:\n"
236 " bl sub_fc1b8a76\n"
237 " b loc_fc12e0ba\n"
238 "loc_fc12dfe8:\n"
239 " bl sub_fc1b8b08\n"
240 " b loc_fc12e0ba\n"
241 "loc_fc12dfee:\n"
242 " bl sub_fc1b8ba4\n"
243 " b loc_fc12e0ba\n"
244 "loc_fc12dff4:\n"
245 " movs r0, #0\n"
246 " b loc_fc12e01a\n"
247 "loc_fc12dff8:\n"
248 " bl sub_fc1b8e98\n"
249 " b loc_fc12e0ba\n"
250 "loc_fc12dffe:\n"
251 " b loc_fc12e0ac\n"
252 "loc_fc12e000:\n"
253 " bl sub_fc1b8ef6\n"
254 " b loc_fc12e0ba\n"
255 "loc_fc12e006:\n"
256 " bl sub_fc1b8efa\n"
257 " b loc_fc12e0ba\n"
258 "loc_fc12e00c:\n"
259 " bl sub_fc1b8f0c\n"
260 " b loc_fc12e0ba\n"
261 "loc_fc12e012:\n"
262 " bl sub_fc1b8f88\n"
263 " b loc_fc12e0ba\n"
264 "loc_fc12e018:\n"
265 " movs r0, #1\n"
266 "loc_fc12e01a:\n"
267 " bl sub_fc1b8d8c\n"
268 " b loc_fc12e0ba\n"
269 "loc_fc12e020:\n"
270 " bl sub_fc12e77e\n"
271 " b loc_fc12e0ba\n"
272 "loc_fc12e026:\n"
273 " movs r0, #0\n"
274 " b loc_fc12e02c\n"
275 "loc_fc12e02a:\n"
276 " ldr r0, [r0, #0xc]\n"
277 "loc_fc12e02c:\n"
278 " bl sub_fc12e7ce\n"
279 " b loc_fc12e0ba\n"
280 "loc_fc12e032:\n"
281 " bl sub_fc1b8cc0\n"
282 " b loc_fc12e0ba\n"
283 "loc_fc12e038:\n"
284 " bl sub_fc1b8d22\n"
285 " b loc_fc12e0ba\n"
286 "loc_fc12e03e:\n"
287 " bl sub_fc1b9ef6\n"
288 " b loc_fc12e0ba\n"
289 "loc_fc12e044:\n"
290 " bl sub_fc12c430\n"
291 " b loc_fc12e0ba\n"
292 "loc_fc12e04a:\n"
293 " bl sub_fc131580\n"
294 " b loc_fc12e0ba\n"
295 "loc_fc12e050:\n"
296 " bl sub_fc131630\n"
297 " b loc_fc12e0ba\n"
298 "loc_fc12e056:\n"
299 " ldr r0, [r0, #0xc]\n"
300 " bl sub_fc1b9048\n"
301 " b loc_fc12e0ba\n"
302 "loc_fc12e05e:\n"
303 " bl sub_fc1b90aa\n"
304 " b loc_fc12e0ba\n"
305 "loc_fc12e064:\n"
306 " bl sub_fc131720\n"
307 " bl sub_fc13166e\n"
308 " b loc_fc12e0ba\n"
309 "loc_fc12e06e:\n"
310 " movs r0, #1\n"
311 " bl sub_fc1b9b38\n"
312 " movs r0, #1\n"
313 " bl sub_fc1b9c02\n"
314 " ldrh.w r0, [r4, #0x198]\n"
315 " cmp r0, #4\n"
316 " beq loc_fc12e08c\n"
317 " ldrh r0, [r4]\n"
318 " sub.w r1, r0, #0x4200\n"
319 " subs r1, #0x31\n"
320 " bne loc_fc12e0ba\n"
321 "loc_fc12e08c:\n"
322 " bl sub_fc131630\n"
323 " bl sub_fc131b10\n"
324 " bl sub_fc131958\n"
325 " b loc_fc12e0ba\n"
326 "loc_fc12e09a:\n"
327 " movs r2, #0\n"
328 " movs r1, #0x10\n"
329 " b loc_fc12e0a4\n"
330 "loc_fc12e0a0:\n"
331 " movs r2, #0\n"
332 " movs r1, #0xf\n"
333 "loc_fc12e0a4:\n"
334 " movs r0, #0\n"
335 " bl sub_fc12c5fc\n"
336 " b loc_fc12e0ba\n"
337 "loc_fc12e0ac:\n"
338 " movw r2, #0x54d\n"
339 " ldr r1, =0xfc12db64\n" // *"SsShootTask.c"
340 " movs r0, #0\n"
341 " blx sub_fc29b538\n" // j_DebugAssert
342 "loc_fc12e0ba:\n"
343 // debug after message handled
344 #ifdef CAPTSEQ_DEBUG_LOG
345 "ldr r0, [sp]\n"
346 "ldr r0, [r0]\n"
347 "bl log_capt_seq2\n"
348 #endif
349 " bl capt_seq_hook_set_nr\n" // ---->> dark frame control
350 " ldr r0, [sp]\n"
351 " ldr r1, [r0, #4]\n"
352 " ldr r0, [r5]\n"
353 " blx sub_fc29b420\n" // j_SetEventFlag
354 " ldr r7, [sp]\n"
355 " ldr r0, [r7, #8]\n"
356 " cbnz r0, loc_fc12e0d8\n"
357 " movw r2, #0x11e\n"
358 " ldr r1, =0xfc12db64\n" // *"SsShootTask.c"
359 " movs r0, #0\n"
360 " blx sub_fc29b538\n" // j_DebugAssert
361 "loc_fc12e0d8:\n"
362 " str r6, [r7, #8]\n"
363 " b loc_fc12dedc\n"
364 ".ltorg\n"
365  );
366 }