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

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

#define USE_STUBS_NRFLAG   1

Definiert in Zeile 5 der Datei capt_seq.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 30 der Datei capt_seq.c.

32 {
33  asm volatile (
34  //capdis -f=chdk -s=0xfc07498d -c=31 -stubs PRIMARY.BIN 0xfc000000
35  " push {r3, r4, r5, r6, r7, lr}\n"
36  " ldr r4, =0x00046ee4\n"
37  " movs r6, #0\n"
38  " ldr r5, =0x0000c368\n"
39  "loc_fc074994:\n"
40  " movs r2, #0\n"
41  " mov r1, sp\n"
42  " ldr r0, [r5, #8]\n"
43  " blx sub_fc34d03c\n"
44  " lsls r0, r0, #0x1f\n"
45  " beq loc_fc0749b6\n"
46  " movw r2, #0x428\n"
47  " ldr r1, =0xfc07459c\n" // *"SsShootTask.c"
48  " movs r0, #0\n"
49  " blx sub_fc34d24c\n"
50  " blx sub_fc34d0dc\n"
51  " pop {r3, r4, r5, r6, r7, pc}\n"
52  "loc_fc0749b6:\n"
53  " ldr r0, [sp]\n"
54  " ldr r0, [r0]\n"
55  " cmp r0, #1\n"
56  " beq loc_fc0749ce\n"
57  " cmp r0, #0x2b\n"
58  " beq loc_fc0749ce\n"
59  " cmp r0, #0x1f\n"
60  " beq loc_fc0749ce\n"
61  " cmp r0, #0x23\n"
62  " beq loc_fc0749ce\n"
63  " bl sub_fc09df5c\n"
64  "loc_fc0749ce:\n"
65  " ldr r0, [sp]\n"
66  " ldr r1, [r0]\n"
67  " cmp r1, #0x34\n"
68  " bhs loc_fc074ab8\n"
69 
70  //capdis -f=chdk -s=0xfc0749e9 -c=155 -stubs PRIMARY.BIN 0xfc000000
71  " tbb [pc, r1]\n" // (jumptable r1 52 elements)
72  "branchtable_fc0749ec:\n"
73  " .byte((loc_fc074a20 - branchtable_fc0749ec) / 2)\n" // (case 0)
74  " .byte((loc_fc074a36 - branchtable_fc0749ec) / 2)\n" // (case 1)
75  " .byte((loc_fc074a3e - branchtable_fc0749ec) / 2)\n" // (case 2)
76  " .byte((loc_fc074a4c - branchtable_fc0749ec) / 2)\n" // (case 3)
77  " .byte((loc_fc074a46 - branchtable_fc0749ec) / 2)\n" // (case 4)
78  " .byte((loc_fc074a56 - branchtable_fc0749ec) / 2)\n" // (case 5)
79  " .byte((loc_fc074a5c - branchtable_fc0749ec) / 2)\n" // (case 6)
80  " .byte((loc_fc074a66 - branchtable_fc0749ec) / 2)\n" // (case 7)
81  " .byte((loc_fc074a6e - branchtable_fc0749ec) / 2)\n" // (case 8)
82  " .byte((loc_fc074a7e - branchtable_fc0749ec) / 2)\n" // (case 9)
83  " .byte((loc_fc074a86 - branchtable_fc0749ec) / 2)\n" // (case 10)
84  " .byte((loc_fc074a8c - branchtable_fc0749ec) / 2)\n" // (case 11)
85  " .byte((loc_fc074ba8 - branchtable_fc0749ec) / 2)\n" // (case 12)
86  " .byte((loc_fc074a94 - branchtable_fc0749ec) / 2)\n" // (case 13)
87  " .byte((loc_fc074a9a - branchtable_fc0749ec) / 2)\n" // (case 14)
88  " .byte((loc_fc074aa0 - branchtable_fc0749ec) / 2)\n" // (case 15)
89  " .byte((loc_fc074aa6 - branchtable_fc0749ec) / 2)\n" // (case 16)
90  " .byte((loc_fc074aac - branchtable_fc0749ec) / 2)\n" // (case 17)
91  " .byte((loc_fc074ba8 - branchtable_fc0749ec) / 2)\n" // (case 18)
92  " .byte((loc_fc074ab2 - branchtable_fc0749ec) / 2)\n" // (case 19)
93  " .byte((loc_fc074aba - branchtable_fc0749ec) / 2)\n" // (case 20)
94  " .byte((loc_fc074ac0 - branchtable_fc0749ec) / 2)\n" // (case 21)
95  " .byte((loc_fc074ac4 - branchtable_fc0749ec) / 2)\n" // (case 22)
96  " .byte((loc_fc074aca - branchtable_fc0749ec) / 2)\n" // (case 23)
97  " .byte((loc_fc074ad0 - branchtable_fc0749ec) / 2)\n" // (case 24)
98  " .byte((loc_fc074ad6 - branchtable_fc0749ec) / 2)\n" // (case 25)
99  " .byte((loc_fc074adc - branchtable_fc0749ec) / 2)\n" // (case 26)
100  " .byte((loc_fc074ae2 - branchtable_fc0749ec) / 2)\n" // (case 27)
101  " .byte((loc_fc074aea - branchtable_fc0749ec) / 2)\n" // (case 28)
102  " .byte((loc_fc074af0 - branchtable_fc0749ec) / 2)\n" // (case 29)
103  " .byte((loc_fc074af6 - branchtable_fc0749ec) / 2)\n" // (case 30)
104  " .byte((loc_fc074afa - branchtable_fc0749ec) / 2)\n" // (case 31)
105  " .byte((loc_fc074b02 - branchtable_fc0749ec) / 2)\n" // (case 32)
106  " .byte((loc_fc074b08 - branchtable_fc0749ec) / 2)\n" // (case 33)
107  " .byte((loc_fc074b32 - branchtable_fc0749ec) / 2)\n" // (case 34)
108  " .byte((loc_fc074b38 - branchtable_fc0749ec) / 2)\n" // (case 35)
109  " .byte((loc_fc074b3e - branchtable_fc0749ec) / 2)\n" // (case 36)
110  " .byte((loc_fc074b44 - branchtable_fc0749ec) / 2)\n" // (case 37)
111  " .byte((loc_fc074b4a - branchtable_fc0749ec) / 2)\n" // (case 38)
112  " .byte((loc_fc074b52 - branchtable_fc0749ec) / 2)\n" // (case 39)
113  " .byte((loc_fc074b58 - branchtable_fc0749ec) / 2)\n" // (case 40)
114  " .byte((loc_fc074ba8 - branchtable_fc0749ec) / 2)\n" // (case 41)
115  " .byte((loc_fc074b84 - branchtable_fc0749ec) / 2)\n" // (case 42)
116  " .byte((loc_fc074b8a - branchtable_fc0749ec) / 2)\n" // (case 43)
117  " .byte((loc_fc074b78 - branchtable_fc0749ec) / 2)\n" // (case 44)
118  " .byte((loc_fc074bb6 - branchtable_fc0749ec) / 2)\n" // (case 45)
119  " .byte((loc_fc074ba8 - branchtable_fc0749ec) / 2)\n" // (case 46)
120  " .byte((loc_fc074ba8 - branchtable_fc0749ec) / 2)\n" // (case 47)
121  " .byte((loc_fc074ba8 - branchtable_fc0749ec) / 2)\n" // (case 48)
122  " .byte((loc_fc074b9c - branchtable_fc0749ec) / 2)\n" // (case 49)
123  " .byte((loc_fc074ba2 - branchtable_fc0749ec) / 2)\n" // (case 50)
124  " .byte((loc_fc074b96 - branchtable_fc0749ec) / 2)\n" // (case 51)
125  ".align 1\n"
126  "loc_fc074a20:\n"
127  " ldr r0, [r0, #0xc]\n"
128  " bl sub_fc082d96\n"
129  " BL clear_current_raw_addr\n" // +
130  " BL shooting_expo_param_override\n" // +
131  " bl sub_fc08fbe8\n"
132  " ldr r0, [r4, #0x28]\n"
133  " cmp r0, #0\n"
134  " beq loc_fc074a34\n"
135  " bl sub_fc08ec20_my\n" // -> nr?, remote hook, raw hook (quick, no half press)
136  "loc_fc074a34:\n"
137  " b loc_fc074bb6\n"
138  "loc_fc074a36:\n"
139  " ldr r0, [r0, #0x10]\n"
140  " bl sub_fc08ebd4_my\n" // -> nr?, remote hook, raw hook
141  " b loc_fc074bb6\n"
142  "loc_fc074a3e:\n"
143  " movs r0, #1\n"
144  " bl sub_fc0830ca\n"
145  " b loc_fc074bb6\n"
146  "loc_fc074a46:\n"
147  " bl sub_fc082aec\n"
148  " b loc_fc074a52\n"
149  "loc_fc074a4c:\n"
150  " ldr r0, [r0, #0xc]\n"
151  " bl sub_fc082d7e\n"
152  "loc_fc074a52:\n"
153  " str r6, [r4, #0x28]\n"
154  " b loc_fc074bb6\n"
155  "loc_fc074a56:\n"
156  " bl sub_fc082d84\n"
157  " b loc_fc074bb6\n"
158  "loc_fc074a5c:\n"
159  " bl sub_fc082fec\n"
160  " bl sub_fc08fbe8\n"
161  " b loc_fc074bb6\n"
162  "loc_fc074a66:\n"
163  " ldr r0, [r0, #0x10]\n"
164  " bl sub_fc08ecce\n"
165  " b loc_fc074bb6\n"
166  "loc_fc074a6e:\n"
167  " bl sub_fc08306a\n"
168  " bl sub_fc08fbe8\n"
169  " movs r0, #0\n"
170  " bl sub_fc2d27d8\n"
171  " b loc_fc074bb6\n"
172  "loc_fc074a7e:\n"
173  " ldr r0, [r4, #0x54]\n"
174  " bl sub_fc083732\n"
175  " b loc_fc074bb6\n"
176  "loc_fc074a86:\n"
177  " bl sub_fc0839ce\n"
178  " b loc_fc074bb6\n"
179  "loc_fc074a8c:\n"
180  " ldr r0, [r0, #0xc]\n"
181  " bl sub_fc083a1a\n"
182  " b loc_fc074bb6\n"
183  "loc_fc074a94:\n"
184  " bl sub_fc083bfc\n"
185  " b loc_fc074bb6\n"
186  "loc_fc074a9a:\n"
187  " bl sub_fc083fe4\n"
188  " b loc_fc074bb6\n"
189  "loc_fc074aa0:\n"
190  " bl sub_fc08407a\n"
191  " b loc_fc074bb6\n"
192  "loc_fc074aa6:\n"
193  " bl sub_fc086d00\n"
194  " b loc_fc074bb6\n"
195  "loc_fc074aac:\n"
196  " bl sub_fc086ede\n"
197  " b loc_fc074bb6\n"
198  "loc_fc074ab2:\n"
199  " bl sub_fc086f7c\n"
200  " b loc_fc074bb6\n"
201  "loc_fc074ab8:\n"
202  " b loc_fc074ba8\n"
203  "loc_fc074aba:\n"
204  " bl sub_fc086ff8\n"
205  " b loc_fc074bb6\n"
206  "loc_fc074ac0:\n"
207  " movs r0, #0\n"
208  " b loc_fc074ae4\n"
209  "loc_fc074ac4:\n"
210  " bl sub_fc08719c\n"
211  " b loc_fc074bb6\n"
212  "loc_fc074aca:\n"
213  " bl sub_fc0871fc\n"
214  " b loc_fc074bb6\n"
215  "loc_fc074ad0:\n"
216  " bl sub_fc087200\n"
217  " b loc_fc074bb6\n"
218  "loc_fc074ad6:\n"
219  " bl sub_fc087210\n"
220  " b loc_fc074bb6\n"
221  "loc_fc074adc:\n"
222  " bl sub_fc08729a\n"
223  " b loc_fc074bb6\n"
224  "loc_fc074ae2:\n"
225  " movs r0, #1\n"
226  "loc_fc074ae4:\n"
227  " bl sub_fc08707c\n"
228  " b loc_fc074bb6\n"
229  "loc_fc074aea:\n"
230  " bl sub_fc087344\n"
231  " b loc_fc074bb6\n"
232  "loc_fc074af0:\n"
233  " bl sub_fc0831ba\n"
234  " b loc_fc074bb6\n"
235  "loc_fc074af6:\n"
236  " movs r0, #0\n"
237  " b loc_fc074afc\n"
238  "loc_fc074afa:\n"
239  " ldr r0, [r0, #0xc]\n"
240  "loc_fc074afc:\n"
241  " bl sub_fc0831ee\n"
242  " b loc_fc074bb6\n"
243  "loc_fc074b02:\n"
244  " bl sub_fc08b514\n"
245  " b loc_fc074bb6\n"
246  "loc_fc074b08:\n"
247  " ldr r1, =0x00046f46\n"
248  " movs r2, #2\n"
249  " movs r0, #0x77\n"
250  " bl sub_fc3b8322\n"
251  " lsls r0, r0, #0x1f\n"
252  " beq loc_fc074b24\n"
253  " movw r2, #0x4ee\n"
254  " ldr r1, =0xfc07459c\n" // *"SsShootTask.c"
255  " movs r0, #0\n"
256  " blx sub_fc34d24c\n"
257  "loc_fc074b24:\n"
258  " ldrh.w r0, [r4, #0x62]\n"
259  " cmp r0, #1\n"
260  " bne loc_fc074bb6\n"
261  " bl sub_fc08b50e\n"
262  " b loc_fc074bb6\n"
263  "loc_fc074b32:\n"
264  " bl sub_fc08b598\n"
265  " b loc_fc074bb6\n"
266  "loc_fc074b38:\n"
267  " bl sub_fc091c38\n"
268  " b loc_fc074bb6\n"
269  "loc_fc074b3e:\n"
270  " bl sub_fc084504\n"
271  " b loc_fc074bb6\n"
272  "loc_fc074b44:\n"
273  " bl sub_fc0845be\n"
274  " b loc_fc074bb6\n"
275  "loc_fc074b4a:\n"
276  " ldr r0, [r0, #0xc]\n"
277  " bl sub_fc0873f8\n"
278  " b loc_fc074bb6\n"
279  "loc_fc074b52:\n"
280  " bl sub_fc08744a\n"
281  " b loc_fc074bb6\n"
282  "loc_fc074b58:\n"
283  " bl sub_fc07d1ea\n"
284  " ldrh.w r0, [r4, #0x19c]\n"
285  " cmp r0, #4\n"
286  " beq loc_fc074b6e\n"
287  " ldrh r0, [r4]\n"
288  " sub.w r1, r0, #0x8200\n"
289  " subs r1, #0x36\n"
290  " bne loc_fc074bb6\n"
291  "loc_fc074b6e:\n"
292  " bl sub_fc0845be\n"
293  " bl sub_fc084a2e\n"
294  " b loc_fc074bb6\n"
295  "loc_fc074b78:\n"
296  " bl sub_fc08427e\n"
297  " movs r0, #1\n"
298  " bl sub_fc07ce46\n"
299  " b loc_fc074bb6\n"
300  "loc_fc074b84:\n"
301  " movs r2, #0\n"
302  " movs r1, #0x11\n"
303  " b loc_fc074b8e\n"
304  "loc_fc074b8a:\n"
305  " movs r2, #0\n"
306  " movs r1, #0x10\n"
307  "loc_fc074b8e:\n"
308  " movs r0, #0\n"
309  " bl sub_fc090918\n"
310  " b loc_fc074bb6\n"
311  "loc_fc074b96:\n"
312  " bl sub_fc08367e\n"
313  " b loc_fc074bb6\n"
314  "loc_fc074b9c:\n"
315  " bl sub_fc087cf0\n"
316  " b loc_fc074bb6\n"
317  "loc_fc074ba2:\n"
318  " bl sub_fc087cf2\n"
319  " b loc_fc074bb6\n"
320  "loc_fc074ba8:\n"
321  " movw r2, #0x557\n"
322  " ldr r1, =0xfc07459c\n" // *"SsShootTask.c"
323  " movs r0, #0\n"
324  " blx sub_fc34d24c\n"
325  "loc_fc074bb6:\n"
326  " BL capt_seq_hook_set_nr\n" // dark frame control
327  " ldr r0, [sp]\n"
328  " ldr r1, [r0, #4]\n"
329  " ldr r0, [r5, #4]\n"
330  " blx sub_fc34d0f4\n"
331  " ldr r7, [sp]\n"
332  " ldr r0, [r7, #8]\n"
333  " cbnz r0, loc_fc074bd2\n"
334  " movs r2, #0xff\n"
335  " ldr r1, =0xfc07459c\n" // *"SsShootTask.c"
336  " movs r0, #0\n"
337  " blx sub_fc34d24c\n"
338  "loc_fc074bd2:\n"
339  " str r6, [r7, #8]\n"
340  " b loc_fc074994\n"
341  );
342 }
int _captseq_raw_addr_init ( int  raw_index,
char **  ptr 
)
void captseq_raw_addr_init_my ( int  raw_index,
char **  ptr 
)

Definiert in Zeile 16 der Datei capt_seq.c.

17 {
18  _captseq_raw_addr_init (raw_index, ptr);
19  current_raw_addr = *(ptr + 0x5c / 4); // @0xfc09bf88, ptr+0x5c
20 }
void clear_current_raw_addr ( void  )

Definiert in Zeile 23 der Datei capt_seq.c.

24 {
26 }

Variablen-Dokumentation

char* current_raw_addr

Definiert in Zeile 13 der Datei capt_seq.c.