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   (-1)
 

Funktionen

void _LogCameraEvent (int id, const char *fmt,...)
 
int _captseq_raw_addr_init (int raw_index, char **ptr)
 
void captseq_raw_addr_init_my (int raw_index, char **ptr)
 
void clear_current_raw_addr (void)
 
void __attribute__ ((naked, noinline))
 

Variablen

char * current_raw_addr
 

Makro-Dokumentation

#define NR_AUTO   (-1)

Definiert in Zeile 10 der Datei capt_seq.c.

#define USE_STUBS_NRFLAG   1

Definiert in Zeile 9 der Datei capt_seq.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

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, =0x0003fad4\n"
66 " movs r6, #0\n"
67 " ldr r5, =0x0000bd84\n"
68 "loc_fc1501e0:\n"
69 " movs r2, #0\n"
70 " mov r1, sp\n"
71 " ldr r0, [r5, #8]\n"
72 " blx sub_fc2ef8f8\n" // j_ReceiveMessageQueue
73 " lsls r0, r0, #0x1f\n"
74 " beq loc_fc150202\n"
75 " movw r2, #0x449\n"
76 " ldr r1, =0xfc14fe88\n" // *"SsShootTask.c"
77 " movs r0, #0\n"
78 " blx sub_fc2ef9f0\n" // j_DebugAssert
79 " blx sub_fc2ef918\n" // -> ExitTask
80 " pop {r3, r4, r5, r6, r7, pc}\n"
81 "loc_fc150202:\n"
82 " ldr r0, [sp]\n"
83 " ldr r0, [r0]\n"
84 " cmp r0, #1\n"
85 " beq loc_fc15021a\n"
86 " cmp r0, #0x28\n"
87 " beq loc_fc15021a\n"
88 " cmp r0, #0x1d\n"
89 " beq loc_fc15021a\n"
90 " cmp r0, #0x20\n"
91 " beq loc_fc15021a\n"
92 " bl sub_fc1e67ac\n"
93 "loc_fc15021a:\n"
94 #ifdef CAPTSEQ_DEBUG_LOG
95 // debug message
96 "ldr r0, [sp]\n"
97 "ldr r0, [r0]\n"
98 "bl log_capt_seq\n"
99 #endif
100 " ldr r0, [sp]\n"
101 " ldr r1, [r0]\n"
102 " cmp r1, #0x2b\n"
103 " bhs loc_fc150304\n"
104 " tbb [pc, r1]\n" // (jumptable r1 43 elements)
105 "branchtable_fc150226:\n"
106 " .byte((loc_fc150252 - branchtable_fc150226) / 2)\n" // (case 0)
107 " .byte((loc_fc150268 - branchtable_fc150226) / 2)\n" // (case 1)
108 " .byte((loc_fc150270 - branchtable_fc150226) / 2)\n" // (case 2)
109 " .byte((loc_fc15027e - branchtable_fc150226) / 2)\n" // (case 3)
110 " .byte((loc_fc150278 - branchtable_fc150226) / 2)\n" // (case 4)
111 " .byte((loc_fc150288 - branchtable_fc150226) / 2)\n" // (case 5)
112 " .byte((loc_fc15028e - branchtable_fc150226) / 2)\n" // (case 6)
113 " .byte((loc_fc150294 - branchtable_fc150226) / 2)\n" // (case 7)
114 " .byte((loc_fc15029c - branchtable_fc150226) / 2)\n" // (case 8)
115 " .byte((loc_fc1502da - branchtable_fc150226) / 2)\n" // (case 9)
116 " .byte((loc_fc1502a6 - branchtable_fc150226) / 2)\n" // (case 10)
117 " .byte((loc_fc1502ae - branchtable_fc150226) / 2)\n" // (case 11)
118 " .byte((loc_fc1502c0 - branchtable_fc150226) / 2)\n" // (case 12)
119 " .byte((loc_fc1502c8 - branchtable_fc150226) / 2)\n" // (case 13)
120 " .byte((loc_fc1502ce - branchtable_fc150226) / 2)\n" // (case 14)
121 " .byte((loc_fc1502d4 - branchtable_fc150226) / 2)\n" // (case 15)
122 " .byte((loc_fc1502e2 - branchtable_fc150226) / 2)\n" // (case 16)
123 " .byte((loc_fc1502e8 - branchtable_fc150226) / 2)\n" // (case 17)
124 " .byte((loc_fc1502ee - branchtable_fc150226) / 2)\n" // (case 18)
125 " .byte((loc_fc1502f4 - branchtable_fc150226) / 2)\n" // (case 19)
126 " .byte((loc_fc1502fa - branchtable_fc150226) / 2)\n" // (case 20)
127 " .byte((loc_fc1502fe - branchtable_fc150226) / 2)\n" // (case 21)
128 " .byte((loc_fc150306 - branchtable_fc150226) / 2)\n" // (case 22)
129 " .byte((loc_fc15030c - branchtable_fc150226) / 2)\n" // (case 23)
130 " .byte((loc_fc150312 - branchtable_fc150226) / 2)\n" // (case 24)
131 " .byte((loc_fc150318 - branchtable_fc150226) / 2)\n" // (case 25)
132 " .byte((loc_fc15031e - branchtable_fc150226) / 2)\n" // (case 26)
133 " .byte((loc_fc150326 - branchtable_fc150226) / 2)\n" // (case 27)
134 " .byte((loc_fc15032c - branchtable_fc150226) / 2)\n" // (case 28)
135 " .byte((loc_fc150330 - branchtable_fc150226) / 2)\n" // (case 29)
136 " .byte((loc_fc150338 - branchtable_fc150226) / 2)\n" // (case 30)
137 " .byte((loc_fc15033e - branchtable_fc150226) / 2)\n" // (case 31)
138 " .byte((loc_fc150344 - branchtable_fc150226) / 2)\n" // (case 32)
139 " .byte((loc_fc15034a - branchtable_fc150226) / 2)\n" // (case 33)
140 " .byte((loc_fc150350 - branchtable_fc150226) / 2)\n" // (case 34)
141 " .byte((loc_fc150356 - branchtable_fc150226) / 2)\n" // (case 35)
142 " .byte((loc_fc15035c - branchtable_fc150226) / 2)\n" // (case 36)
143 " .byte((loc_fc150364 - branchtable_fc150226) / 2)\n" // (case 37)
144 " .byte((loc_fc15036a - branchtable_fc150226) / 2)\n" // (case 38)
145 " .byte((loc_fc15039a - branchtable_fc150226) / 2)\n" // (case 39)
146 " .byte((loc_fc1503a0 - branchtable_fc150226) / 2)\n" // (case 40)
147 " .byte((loc_fc15038e - branchtable_fc150226) / 2)\n" // (case 41)
148 " .byte((loc_fc1503ba - branchtable_fc150226) / 2)\n" // (case 42)
149 ".align 1\n"
150 "loc_fc150252:\n" // case 0: preshoot, quick press shoot
151 " ldr r0, [r0, #0xc]\n"
152 " bl sub_fc15073a\n"
153 #ifdef CAPTSEQ_DEBUG_LOG
154 "bl log_capt_seq_override\n"
155 #endif
156 " BL clear_current_raw_addr\n" // +
157 " BL shooting_expo_param_override\n" // +
158 " bl sub_fc14dc2e\n"
159 " ldr r0, [r4, #0x28]\n"
160 " cmp r0, #0\n"
161 " beq loc_fc150266\n"
162 " bl sub_fc1e58d8_my\n" // -> nr?, remote hook, raw hook (quick, no half press)
163 "loc_fc150266:\n"
164 " b loc_fc1503ba\n"
165 "loc_fc150268:\n" // case 1: (normal shoot)
166 " ldr r0, [r0, #0x10]\n"
167 " bl sub_fc1e56a6_my\n" // -> nr?, remote hook, raw hook
168 " b loc_fc1503ba\n"
169 "loc_fc150270:\n"
170 " movs r0, #1\n"
171 " bl sub_fc1509dc\n"
172 " b loc_fc1503ba\n"
173 "loc_fc150278:\n"
174 " bl sub_fc1504c2\n"
175 " b loc_fc150284\n"
176 "loc_fc15027e:\n"
177 " ldr r0, [r0, #0xc]\n"
178 " bl sub_fc150722\n"
179 "loc_fc150284:\n"
180 " str r6, [r4, #0x28]\n"
181 " b loc_fc1503ba\n"
182 "loc_fc150288:\n"
183 " bl sub_fc150728\n"
184 " b loc_fc1503ba\n"
185 "loc_fc15028e:\n"
186 " bl sub_fc150902\n"
187 " b loc_fc1502a0\n"
188 "loc_fc150294:\n"
189 " ldr r0, [r0, #0x10]\n"
190 " bl sub_fc1e5980\n"
191 " b loc_fc1503ba\n"
192 "loc_fc15029c:\n"
193 " bl sub_fc150964\n"
194 "loc_fc1502a0:\n"
195 " bl sub_fc14dc2e\n"
196 " b loc_fc1503ba\n"
197 "loc_fc1502a6:\n"
198 " ldr r0, [r4, #0x54]\n"
199 " bl sub_fc150f38\n"
200 " b loc_fc1503ba\n"
201 "loc_fc1502ae:\n"
202 " bl sub_fc15118a\n"
203 " b loc_fc1503ba\n"
204 ".ltorg\n"
205 // firmware had literal pool here
206 /*
207 fcd0 0003
208 fad4 0003
209 bd84 0000
210 */
211 "loc_fc1502c0:\n"
212 " ldr r0, [r0, #0xc]\n"
213 " bl sub_fc1511d6\n"
214 " b loc_fc1503ba\n"
215 "loc_fc1502c8:\n"
216 " bl sub_fc15138e\n"
217 " b loc_fc1503ba\n"
218 "loc_fc1502ce:\n"
219 " bl sub_fc151770\n"
220 " b loc_fc1503ba\n"
221 "loc_fc1502d4:\n"
222 " bl sub_fc151806\n"
223 " b loc_fc1503ba\n"
224 "loc_fc1502da:\n"
225 " ldr r0, [r0, #0xc]\n"
226 " bl sub_fc150722\n"
227 " b loc_fc1503ba\n"
228 "loc_fc1502e2:\n"
229 " bl sub_fc1e432c\n"
230 " b loc_fc1503ba\n"
231 "loc_fc1502e8:\n"
232 " bl sub_fc1e44d4\n"
233 " b loc_fc1503ba\n"
234 "loc_fc1502ee:\n"
235 " bl sub_fc1e4568\n"
236 " b loc_fc1503ba\n"
237 "loc_fc1502f4:\n"
238 " bl sub_fc1e45f4\n"
239 " b loc_fc1503ba\n"
240 "loc_fc1502fa:\n"
241 " movs r0, #0\n"
242 " b loc_fc150320\n"
243 "loc_fc1502fe:\n"
244 " bl sub_fc1e48e8\n"
245 " b loc_fc1503ba\n"
246 "loc_fc150304:\n"
247 " b loc_fc1503ac\n"
248 "loc_fc150306:\n"
249 " bl sub_fc1e4948\n"
250 " b loc_fc1503ba\n"
251 "loc_fc15030c:\n"
252 " bl sub_fc1e494c\n"
253 " b loc_fc1503ba\n"
254 "loc_fc150312:\n"
255 " bl sub_fc1e495c\n"
256 " b loc_fc1503ba\n"
257 "loc_fc150318:\n"
258 " bl sub_fc1e49d4\n"
259 " b loc_fc1503ba\n"
260 "loc_fc15031e:\n"
261 " movs r0, #1\n"
262 "loc_fc150320:\n"
263 " bl sub_fc1e47c8\n"
264 " b loc_fc1503ba\n"
265 "loc_fc150326:\n"
266 " bl sub_fc150abe\n"
267 " b loc_fc1503ba\n"
268 "loc_fc15032c:\n"
269 " movs r0, #0\n"
270 " b loc_fc150332\n"
271 "loc_fc150330:\n"
272 " ldr r0, [r0, #0xc]\n"
273 "loc_fc150332:\n"
274 " bl sub_fc150b1e\n"
275 " b loc_fc1503ba\n"
276 "loc_fc150338:\n"
277 " bl sub_fc1e46f2\n"
278 " b loc_fc1503ba\n"
279 "loc_fc15033e:\n"
280 " bl sub_fc1e4758\n"
281 " b loc_fc1503ba\n"
282 "loc_fc150344:\n"
283 " bl sub_fc1e6188\n"
284 " b loc_fc1503ba\n"
285 "loc_fc15034a:\n"
286 " bl sub_fc14e6c0\n"
287 " b loc_fc1503ba\n"
288 "loc_fc150350:\n"
289 " bl sub_fc2bff72\n"
290 " b loc_fc1503ba\n"
291 "loc_fc150356:\n"
292 " bl sub_fc2c004c\n"
293 " b loc_fc1503ba\n"
294 "loc_fc15035c:\n"
295 " ldr r0, [r0, #0xc]\n"
296 " bl sub_fc1e4aa8\n"
297 " b loc_fc1503ba\n"
298 "loc_fc150364:\n"
299 " bl sub_fc1e4b10\n"
300 " b loc_fc1503ba\n"
301 "loc_fc15036a:\n"
302 " bl sub_fc155bea\n"
303 " ldrh.w r0, [r4, #0x1a4]\n"
304 " cmp r0, #4\n"
305 " beq loc_fc150380\n"
306 " ldrh r0, [r4]\n"
307 " sub.w r1, r0, #0x4200\n"
308 " subs r1, #0x36\n"
309 " bne loc_fc1503ba\n"
310 "loc_fc150380:\n"
311 " bl sub_fc2c004c\n"
312 " bl sub_fc2c0562\n"
313 " bl sub_fc2c03aa\n"
314 " b loc_fc1503ba\n"
315 "loc_fc15038e:\n"
316 " bl sub_fc151a02\n"
317 " movs r0, #1\n"
318 " bl sub_fc154066\n"
319 " b loc_fc1503ba\n"
320 "loc_fc15039a:\n"
321 " movs r2, #0\n"
322 " movs r1, #0x11\n"
323 " b loc_fc1503a4\n"
324 "loc_fc1503a0:\n"
325 " movs r2, #0\n"
326 " movs r1, #0x10\n"
327 "loc_fc1503a4:\n"
328 " movs r0, #0\n"
329 " bl sub_fc14e934\n"
330 " b loc_fc1503ba\n"
331 "loc_fc1503ac:\n"
332 " movw r2, #0x575\n"
333 " ldr r1, =0xfc14fe88\n" // *"SsShootTask.c"
334 " movs r0, #0\n"
335 " blx sub_fc2ef9f0\n" // j_DebugAssert
336 "loc_fc1503ba:\n"
337 #ifdef CAPTSEQ_DEBUG_LOG
338 // debug after message handled
339 "ldr r0, [sp]\n"
340 "ldr r0, [r0]\n"
341 "bl log_capt_seq2\n"
342 #endif
343 " ldr r0, [sp]\n"
344 " ldr r1, [r0, #4]\n"
345 " ldr r0, [r5, #4]\n"
346 " blx sub_fc2ef858\n" // j_SetEventFlag
347 " ldr r7, [sp]\n"
348 " ldr r0, [r7, #8]\n"
349 " cbnz r0, loc_fc1503d8\n"
350 " movw r2, #0x12a\n"
351 " ldr r1, =0xfc14fe88\n" // *"SsShootTask.c"
352 " movs r0, #0\n"
353 " blx sub_fc2ef9f0\n" // j_DebugAssert
354 "loc_fc1503d8:\n"
355 " str r6, [r7, #8]\n"
356 " b loc_fc1501e0\n"
357 ".ltorg\n"
358  );
359 }
int _captseq_raw_addr_init ( int  raw_index,
char **  ptr 
)
void _LogCameraEvent ( int  id,
const char *  fmt,
  ... 
)
void captseq_raw_addr_init_my ( int  raw_index,
char **  ptr 
)

Definiert in Zeile 48 der Datei capt_seq.c.

48  {
49  _captseq_raw_addr_init(raw_index,ptr);
50  current_raw_addr=*(ptr + 0x5c/4); // @0xfc1527b2, ptr+0x5c
51 #ifdef CAPTSEQ_DEBUG_LOG
52  _LogCameraEvent(0x60,"rawinit i:0x%x p:0x%x v:0x%x",raw_index,ptr,current_raw_addr);
53 #endif
54 }
void clear_current_raw_addr ( void  )

Definiert in Zeile 56 der Datei capt_seq.c.

56  {
58 }

Variablen-Dokumentation

char* current_raw_addr

Definiert in Zeile 46 der Datei capt_seq.c.