CHDK_DE Vorschauversion  Trunk Rev. 5546
 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))
 *-------------------------------------------------------------------— Mehr ...
 

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

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

!!

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 60 der Datei capt_seq.c.

60  {
61  asm volatile (
62 " push {r3, r4, r5, r6, r7, lr}\n"
63 " ldr r4, =0x00039e5c\n"
64 " movs r6, #0\n"
65 " ldr r5, =0x0000ba40\n"
66 "loc_fc0646ba:\n"
67 " movs r2, #0\n"
68 " mov r1, sp\n"
69 " ldr r0, [r5, #8]\n"
70 " blx sub_fc2c7ca8\n" // j_ReceiveMessageQueue
71 " lsls r0, r0, #0x1f\n"
72 " beq loc_fc0646dc\n"
73 " movw r2, #0x44e\n"
74 " ldr r1, =0xfc064364\n" // *"SsShootTask.c"
75 " movs r0, #0\n"
76 " blx sub_fc2c7de8\n" // j_DebugAssert
77 " blx sub_fc2c7d00\n" // -> ExitTask
78 " pop {r3, r4, r5, r6, r7, pc}\n"
79 "loc_fc0646dc:\n"
80 " ldr r0, [sp]\n"
81 " ldr r0, [r0]\n"
82 " cmp r0, #1\n"
83 " beq loc_fc0646f4\n"
84 " cmp r0, #0x29\n"
85 " beq loc_fc0646f4\n"
86 " cmp r0, #0x1e\n"
87 " beq loc_fc0646f4\n"
88 " cmp r0, #0x21\n"
89 " beq loc_fc0646f4\n"
90 " bl sub_fc080fbc\n"
91 "loc_fc0646f4:\n"
92 #ifdef CAPTSEQ_DEBUG_LOG
93 // debug message
94 "ldr r0, [sp]\n"
95 "ldr r0, [r0]\n"
96 "bl log_capt_seq\n"
97 #endif
98 " ldr r0, [sp]\n"
99 " ldr r1, [r0]\n"
100 " cmp r1, #0x2b\n"
101 " bhs loc_fc0647b6\n"
102 " tbb [pc, r1]\n" // (jumptable r1 43 elements)
103 "branchtable_fc064700:\n"
104 " .byte((loc_fc06472c - branchtable_fc064700) / 2)\n" // (case 0)
105 " .byte((loc_fc064742 - branchtable_fc064700) / 2)\n" // (case 1)
106 " .byte((loc_fc06474a - branchtable_fc064700) / 2)\n" // (case 2)
107 " .byte((loc_fc064758 - branchtable_fc064700) / 2)\n" // (case 3)
108 " .byte((loc_fc064752 - branchtable_fc064700) / 2)\n" // (case 4)
109 " .byte((loc_fc064762 - branchtable_fc064700) / 2)\n" // (case 5)
110 " .byte((loc_fc064768 - branchtable_fc064700) / 2)\n" // (case 6)
111 " .byte((loc_fc06476e - branchtable_fc064700) / 2)\n" // (case 7)
112 " .byte((loc_fc064776 - branchtable_fc064700) / 2)\n" // (case 8)
113 " .byte((loc_fc0647a8 - branchtable_fc064700) / 2)\n" // (case 9)
114 " .byte((loc_fc064780 - branchtable_fc064700) / 2)\n" // (case 10)
115 " .byte((loc_fc064788 - branchtable_fc064700) / 2)\n" // (case 11)
116 " .byte((loc_fc06478e - branchtable_fc064700) / 2)\n" // (case 12)
117 " .byte((loc_fc064796 - branchtable_fc064700) / 2)\n" // (case 13)
118 " .byte((loc_fc06479c - branchtable_fc064700) / 2)\n" // (case 14)
119 " .byte((loc_fc0647a2 - branchtable_fc064700) / 2)\n" // (case 15)
120 " .byte((loc_fc0647b0 - branchtable_fc064700) / 2)\n" // (case 16)
121 " .byte((loc_fc0647c4 - branchtable_fc064700) / 2)\n" // (case 17)
122 " .byte((loc_fc0647ca - branchtable_fc064700) / 2)\n" // (case 18)
123 " .byte((loc_fc0647d0 - branchtable_fc064700) / 2)\n" // (case 19)
124 " .byte((loc_fc0647d6 - branchtable_fc064700) / 2)\n" // (case 20)
125 " .byte((loc_fc0647dc - branchtable_fc064700) / 2)\n" // (case 21)
126 " .byte((loc_fc0647e0 - branchtable_fc064700) / 2)\n" // (case 22)
127 " .byte((loc_fc0647e6 - branchtable_fc064700) / 2)\n" // (case 23)
128 " .byte((loc_fc0647ec - branchtable_fc064700) / 2)\n" // (case 24)
129 " .byte((loc_fc0647f2 - branchtable_fc064700) / 2)\n" // (case 25)
130 " .byte((loc_fc0647f8 - branchtable_fc064700) / 2)\n" // (case 26)
131 " .byte((loc_fc0647fe - branchtable_fc064700) / 2)\n" // (case 27)
132 " .byte((loc_fc064806 - branchtable_fc064700) / 2)\n" // (case 28)
133 " .byte((loc_fc06480c - branchtable_fc064700) / 2)\n" // (case 29)
134 " .byte((loc_fc064810 - branchtable_fc064700) / 2)\n" // (case 30)
135 " .byte((loc_fc064818 - branchtable_fc064700) / 2)\n" // (case 31)
136 " .byte((loc_fc06481e - branchtable_fc064700) / 2)\n" // (case 32)
137 " .byte((loc_fc064824 - branchtable_fc064700) / 2)\n" // (case 33)
138 " .byte((loc_fc06482a - branchtable_fc064700) / 2)\n" // (case 34)
139 " .byte((loc_fc064830 - branchtable_fc064700) / 2)\n" // (case 35)
140 " .byte((loc_fc064836 - branchtable_fc064700) / 2)\n" // (case 36)
141 " .byte((loc_fc06483c - branchtable_fc064700) / 2)\n" // (case 37)
142 " .byte((loc_fc064844 - branchtable_fc064700) / 2)\n" // (case 38)
143 " .byte((loc_fc06484a - branchtable_fc064700) / 2)\n" // (case 39)
144 " .byte((loc_fc06486e - branchtable_fc064700) / 2)\n" // (case 40)
145 " .byte((loc_fc064874 - branchtable_fc064700) / 2)\n" // (case 41)
146 " .byte((loc_fc06488e - branchtable_fc064700) / 2)\n" // (case 42)
147 ".align 1\n"
148 "loc_fc06472c:\n" // case 0: preshoot, quick press shoot
149 " ldr r0, [r0, #0xc]\n"
150 " bl sub_fc073cbc\n"
151 #ifdef CAPTSEQ_DEBUG_LOG
152 "bl log_capt_seq_override\n"
153 #endif
154 " BL clear_current_raw_addr\n" // +
155 " BL shooting_expo_param_override\n" // +
156 " bl sub_fc079112\n"
157 " ldr r0, [r4, #0x28]\n"
158 " cmp r0, #0\n"
159 " beq loc_fc064740\n"
160 " bl sub_fc07b6ba_my\n" // quick press
161 "loc_fc064740:\n"
162 " b loc_fc06488e\n"
163 "loc_fc064742:\n" // case 1: normal shoot
164 " ldr r0, [r0, #0x10]\n"
165 " bl sub_fc07b4ee_my\n" // regular shoot
166 " b loc_fc06488e\n"
167 "loc_fc06474a:\n"
168 " movs r0, #1\n"
169 " bl sub_fc073f74\n"
170 " b loc_fc06488e\n"
171 "loc_fc064752:\n"
172 " bl sub_fc073a32\n"
173 " b loc_fc06475e\n"
174 "loc_fc064758:\n"
175 " ldr r0, [r0, #0xc]\n"
176 " bl sub_fc073ca4\n"
177 "loc_fc06475e:\n"
178 " str r6, [r4, #0x28]\n"
179 " b loc_fc06488e\n"
180 "loc_fc064762:\n"
181 " bl sub_fc073caa\n"
182 " b loc_fc06488e\n"
183 "loc_fc064768:\n"
184 " bl sub_fc073e9a\n"
185 " b loc_fc06477a\n"
186 "loc_fc06476e:\n"
187 " ldr r0, [r0, #0x10]\n"
188 " bl sub_fc07b766\n"
189 " b loc_fc06488e\n"
190 "loc_fc064776:\n"
191 " bl sub_fc073efc\n"
192 "loc_fc06477a:\n"
193 " bl sub_fc079112\n"
194 " b loc_fc06488e\n"
195 "loc_fc064780:\n"
196 " ldr r0, [r4, #0x54]\n"
197 " bl sub_fc06f596\n"
198 " b loc_fc06488e\n"
199 "loc_fc064788:\n"
200 " bl sub_fc06f806\n"
201 " b loc_fc06488e\n"
202 "loc_fc06478e:\n"
203 " ldr r0, [r0, #0xc]\n"
204 " bl sub_fc06f852\n"
205 " b loc_fc06488e\n"
206 "loc_fc064796:\n"
207 " bl sub_fc06f986\n"
208 " b loc_fc06488e\n"
209 "loc_fc06479c:\n"
210 " bl sub_fc06fd52\n"
211 " b loc_fc06488e\n"
212 "loc_fc0647a2:\n"
213 " bl sub_fc06fde8\n"
214 " b loc_fc06488e\n"
215 "loc_fc0647a8:\n"
216 " ldr r0, [r0, #0xc]\n"
217 " bl sub_fc073ca4\n"
218 " b loc_fc06488e\n"
219 "loc_fc0647b0:\n"
220 " bl sub_fc071190\n"
221 " b loc_fc06488e\n"
222 "loc_fc0647b6:\n"
223 " b loc_fc064880\n"
224 ".ltorg\n"
225 // firmware had literal pool here
226 // 0x0003a05c
227 // 0x00039e5c
228 // 0x0000ba40
229 "loc_fc0647c4:\n"
230 " bl sub_fc071338\n"
231 " b loc_fc06488e\n"
232 "loc_fc0647ca:\n"
233 " bl sub_fc0713b0\n"
234 " b loc_fc06488e\n"
235 "loc_fc0647d0:\n"
236 " bl sub_fc07144c\n"
237 " b loc_fc06488e\n"
238 "loc_fc0647d6:\n"
239 " bl sub_fc0714ee\n"
240 " b loc_fc06488e\n"
241 "loc_fc0647dc:\n"
242 " movs r0, #0\n"
243 " b loc_fc064800\n"
244 "loc_fc0647e0:\n"
245 " bl sub_fc071808\n"
246 " b loc_fc06488e\n"
247 "loc_fc0647e6:\n"
248 " bl sub_fc071868\n"
249 " b loc_fc06488e\n"
250 "loc_fc0647ec:\n"
251 " bl sub_fc07186c\n"
252 " b loc_fc06488e\n"
253 "loc_fc0647f2:\n"
254 " bl sub_fc07187c\n"
255 " b loc_fc06488e\n"
256 "loc_fc0647f8:\n"
257 " bl sub_fc0718f4\n"
258 " b loc_fc06488e\n"
259 "loc_fc0647fe:\n"
260 " movs r0, #1\n"
261 "loc_fc064800:\n"
262 " bl sub_fc0716e8\n"
263 " b loc_fc06488e\n"
264 "loc_fc064806:\n"
265 " bl sub_fc074056\n"
266 " b loc_fc06488e\n"
267 "loc_fc06480c:\n"
268 " movs r0, #0\n"
269 " b loc_fc064812\n"
270 "loc_fc064810:\n"
271 " ldr r0, [r0, #0xc]\n"
272 "loc_fc064812:\n"
273 " bl sub_fc0740b6\n"
274 " b loc_fc06488e\n"
275 "loc_fc064818:\n"
276 " bl sub_fc071614\n"
277 " b loc_fc06488e\n"
278 "loc_fc06481e:\n"
279 " bl sub_fc07167a\n"
280 " b loc_fc06488e\n"
281 "loc_fc064824:\n"
282 " bl sub_fc07bf10\n"
283 " b loc_fc06488e\n"
284 "loc_fc06482a:\n"
285 " bl sub_fc079a30\n"
286 " b loc_fc06488e\n"
287 "loc_fc064830:\n"
288 " bl sub_fc29d326\n"
289 " b loc_fc06488e\n"
290 "loc_fc064836:\n"
291 " bl sub_fc29d3e0\n"
292 " b loc_fc06488e\n"
293 "loc_fc06483c:\n"
294 " ldr r0, [r0, #0xc]\n"
295 " bl sub_fc0719d0\n"
296 " b loc_fc06488e\n"
297 "loc_fc064844:\n"
298 " bl sub_fc071a38\n"
299 " b loc_fc06488e\n"
300 "loc_fc06484a:\n"
301 " bl sub_fc0748be\n"
302 " ldrh.w r0, [r4, #0x1a4]\n"
303 " cmp r0, #4\n"
304 " beq loc_fc064860\n"
305 " ldrh r0, [r4]\n"
306 " sub.w r1, r0, #0x4200\n"
307 " subs r1, #0x36\n"
308 " bne loc_fc06488e\n"
309 "loc_fc064860:\n"
310 " bl sub_fc29d3e0\n"
311 " bl sub_fc29d8f6\n"
312 " bl sub_fc29d73e\n"
313 " b loc_fc06488e\n"
314 "loc_fc06486e:\n"
315 " movs r2, #0\n"
316 " movs r1, #0x11\n"
317 " b loc_fc064878\n"
318 "loc_fc064874:\n"
319 " movs r2, #0\n"
320 " movs r1, #0x10\n"
321 "loc_fc064878:\n"
322 " movs r0, #0\n"
323 " bl sub_fc079cf0\n"
324 " b loc_fc06488e\n"
325 "loc_fc064880:\n"
326 " movw r2, #0x57e\n"
327 " ldr r1, =0xfc064364\n" // *"SsShootTask.c"
328 " movs r0, #0\n"
329 " blx sub_fc2c7de8\n" // j_DebugAssert
330 "loc_fc06488e:\n"
331 // debug after message handled
332 #ifdef CAPTSEQ_DEBUG_LOG
333 "ldr r0, [sp]\n"
334 "ldr r0, [r0]\n"
335 "bl log_capt_seq2\n"
336 #endif
337 " ldr r0, [sp]\n"
338 " ldr r1, [r0, #4]\n"
339 " ldr r0, [r5, #4]\n"
340 " blx sub_fc2c7cd0\n" // j_SetEventFlag
341 " ldr r7, [sp]\n"
342 " ldr r0, [r7, #8]\n"
343 " cbnz r0, loc_fc0648ac\n"
344 " movw r2, #0x12b\n"
345 " ldr r1, =0xfc064364\n" // *"SsShootTask.c"
346 " movs r0, #0\n"
347 " blx sub_fc2c7de8\n" // j_DebugAssert
348 "loc_fc0648ac:\n"
349 " str r6, [r7, #8]\n"
350 " b loc_fc0646ba\n"
351 ".ltorg\n"
352  );
353 }
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 46 der Datei capt_seq.c.

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

Definiert in Zeile 54 der Datei capt_seq.c.

54  {
56 }

Variablen-Dokumentation

char* current_raw_addr

Definiert in Zeile 44 der Datei capt_seq.c.