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 captseq_get_raw_addr ()
 
void clear_current_raw_addr (void)
 
void __attribute__ ((naked, noinline))
 

Variablen

char * current_raw_addr
 
char * current_raw_alt_addr
 

Makro-Dokumentation

#define NR_AUTO   (-1)

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

!!

Definiert in Zeile 30 der Datei capt_seq.c.

30  {
31  asm volatile (
32  //capdis -f=chdk -s=0xe0032f57 -c=31 -stubs PRIMARY.BIN 0xe0000000
33  " push {r3, r4, r5, r6, r7, lr}\n"
34  " movs r6, #0\n"
35  " ldr r4, =0x00057d2c\n"
36  " ldr r5, =0x0000c098\n"
37  "loc_e0032f5e:\n"
38  " movs r2, #0\n"
39  " mov r1, sp\n"
40  " ldr r0, [r5, #8]\n"
41  " bl sub_dffc9de0\n"
42  " lsls r0, r0, #0x1f\n"
43  " beq loc_e0032f80\n"
44  " movw r2, #0x435\n"
45  " ldr r1, =0xe0032b9c\n" // *"SsShootTask.c"
46  " movs r0, #0\n"
47  " bl sub_dffc96f4\n"
48  " bl sub_dffc95ae\n"
49  " pop {r3, r4, r5, r6, r7, pc}\n"
50  "loc_e0032f80:\n"
51  " ldr r0, [sp]\n"
52  " ldr r0, [r0]\n"
53  " cmp r0, #1\n"
54  " beq loc_e0032f98\n"
55  " cmp r0, #0x2b\n"
56  " beq loc_e0032f98\n"
57  " cmp r0, #0x1f\n"
58  " beq loc_e0032f98\n"
59  " cmp r0, #0x23\n"
60  " beq loc_e0032f98\n"
61  " bl sub_e005333c\n"
62  "loc_e0032f98:\n"
63  " ldr r0, [sp]\n"
64  " ldr r1, [r0]\n"
65  " cmp r1, #0x33\n"
66  " bhs loc_e0033080\n"
67 
68  //capdis -f=chdk -s=0xe0032fa1 -c=147 -stubs PRIMARY.BIN 0xe0000000
69  " tbb [pc, r1]\n" // (jumptable r1 51 elements)
70  "branchtable_e0032fa4:\n"
71  " .byte((loc_e0032fd8 - branchtable_e0032fa4) / 2)\n" // (case 0)
72  " .byte((loc_e0032fee - branchtable_e0032fa4) / 2)\n" // (case 1)
73  " .byte((loc_e0033008 - branchtable_e0032fa4) / 2)\n" // (case 2)
74  " .byte((loc_e0033016 - branchtable_e0032fa4) / 2)\n" // (case 3)
75  " .byte((loc_e0033010 - branchtable_e0032fa4) / 2)\n" // (case 4)
76  " .byte((loc_e0033020 - branchtable_e0032fa4) / 2)\n" // (case 5)
77  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 6)
78  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 7)
79  " .byte((loc_e0033026 - branchtable_e0032fa4) / 2)\n" // (case 8)
80  " .byte((loc_e0033036 - branchtable_e0032fa4) / 2)\n" // (case 9)
81  " .byte((loc_e003303e - branchtable_e0032fa4) / 2)\n" // (case 10)
82  " .byte((loc_e0033044 - branchtable_e0032fa4) / 2)\n" // (case 11)
83  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 12)
84  " .byte((loc_e003304c - branchtable_e0032fa4) / 2)\n" // (case 13)
85  " .byte((loc_e0033052 - branchtable_e0032fa4) / 2)\n" // (case 14)
86  " .byte((loc_e0033058 - branchtable_e0032fa4) / 2)\n" // (case 15)
87  " .byte((loc_e003305e - branchtable_e0032fa4) / 2)\n" // (case 16)
88  " .byte((loc_e0033064 - branchtable_e0032fa4) / 2)\n" // (case 17)
89  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 18)
90  " .byte((loc_e003306a - branchtable_e0032fa4) / 2)\n" // (case 19)
91  " .byte((loc_e0033070 - branchtable_e0032fa4) / 2)\n" // (case 20)
92  " .byte((loc_e0033076 - branchtable_e0032fa4) / 2)\n" // (case 21)
93  " .byte((loc_e003307a - branchtable_e0032fa4) / 2)\n" // (case 22)
94  " .byte((loc_e0033082 - branchtable_e0032fa4) / 2)\n" // (case 23)
95  " .byte((loc_e0033088 - branchtable_e0032fa4) / 2)\n" // (case 24)
96  " .byte((loc_e003308e - branchtable_e0032fa4) / 2)\n" // (case 25)
97  " .byte((loc_e0033094 - branchtable_e0032fa4) / 2)\n" // (case 26)
98  " .byte((loc_e003309a - branchtable_e0032fa4) / 2)\n" // (case 27)
99  " .byte((loc_e00330a2 - branchtable_e0032fa4) / 2)\n" // (case 28)
100  " .byte((loc_e00330a8 - branchtable_e0032fa4) / 2)\n" // (case 29)
101  " .byte((loc_e00330ae - branchtable_e0032fa4) / 2)\n" // (case 30)
102  " .byte((loc_e00330b2 - branchtable_e0032fa4) / 2)\n" // (case 31)
103  " .byte((loc_e00330ba - branchtable_e0032fa4) / 2)\n" // (case 32)
104  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 33)
105  " .byte((loc_e00330c0 - branchtable_e0032fa4) / 2)\n" // (case 34)
106  " .byte((loc_e00330c6 - branchtable_e0032fa4) / 2)\n" // (case 35)
107  " .byte((loc_e00330cc - branchtable_e0032fa4) / 2)\n" // (case 36)
108  " .byte((loc_e00330d2 - branchtable_e0032fa4) / 2)\n" // (case 37)
109  " .byte((loc_e00330d8 - branchtable_e0032fa4) / 2)\n" // (case 38)
110  " .byte((loc_e00330e0 - branchtable_e0032fa4) / 2)\n" // (case 39)
111  " .byte((loc_e00330e6 - branchtable_e0032fa4) / 2)\n" // (case 40)
112  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 41)
113  " .byte((loc_e003311c - branchtable_e0032fa4) / 2)\n" // (case 42)
114  " .byte((loc_e0033122 - branchtable_e0032fa4) / 2)\n" // (case 43)
115  " .byte((loc_e0033106 - branchtable_e0032fa4) / 2)\n" // (case 44)
116  " .byte((loc_e0033148 - branchtable_e0032fa4) / 2)\n" // (case 45)
117  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 46)
118  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 47)
119  " .byte((loc_e003313a - branchtable_e0032fa4) / 2)\n" // (case 48)
120  " .byte((loc_e003312e - branchtable_e0032fa4) / 2)\n" // (case 49)
121  " .byte((loc_e0033134 - branchtable_e0032fa4) / 2)\n" // (case 50)
122  ".align 1\n"
123  "loc_e0032fd8:\n"
124  " ldr r0, [r0, #0xc]\n"
125  " bl sub_e0039274\n"
126  " BL shooting_expo_param_override\n" // +
127  " bl sub_e004f1e4\n"
128  " ldr r0, [r4, #0x28]\n"
129  " cmp r0, #0\n"
130  " beq loc_e0032fec\n"
131  " bl sub_e00464ae_my\n" // -> nr?, remote hook, raw hook (quick, no half press)
132  "loc_e0032fec:\n"
133  " b loc_e0033148\n"
134  "loc_e0032fee:\n"
135  " ldr r0, [r0, #0x10]\n"
136  " bl sub_e004644a_my\n" // -> nr?, remote hook, raw hook
137  " b loc_e0033148\n"
138  "loc_e0033008:\n"
139  " movs r0, #1\n"
140  " bl sub_e00395a2\n"
141  " b loc_e0033148\n"
142  "loc_e0033010:\n"
143  " bl sub_e0038f62\n"
144  " b loc_e003301c\n"
145  "loc_e0033016:\n"
146  " ldr r0, [r0, #0xc]\n"
147  " bl sub_e003925c\n"
148  "loc_e003301c:\n"
149  " str r6, [r4, #0x28]\n"
150  " b loc_e0033148\n"
151  "loc_e0033020:\n"
152  " bl sub_e0039262\n"
153  " b loc_e0033148\n"
154  "loc_e0033026:\n"
155  " bl sub_e0039532\n"
156  " bl sub_e004f1e4\n"
157  " movs r0, #0\n"
158  " bl sub_e0297bcc\n"
159  " b loc_e0033148\n"
160  "loc_e0033036:\n"
161  " ldr r0, [r4, #0x54]\n"
162  " bl sub_e0039b92\n"
163  " b loc_e0033148\n"
164  "loc_e003303e:\n"
165  " bl sub_e0039dfc\n"
166  " b loc_e0033148\n"
167  "loc_e0033044:\n"
168  " ldr r0, [r0, #0xc]\n"
169  " bl sub_e0039e48\n"
170  " b loc_e0033148\n"
171  "loc_e003304c:\n"
172  " bl sub_e003a030\n"
173  " b loc_e0033148\n"
174  "loc_e0033052:\n"
175  " bl sub_e003a41c\n"
176  " b loc_e0033148\n"
177  "loc_e0033058:\n"
178  " bl sub_e003a4b0\n"
179  " b loc_e0033148\n"
180  "loc_e003305e:\n"
181  " bl sub_e003bfc0\n"
182  " b loc_e0033148\n"
183  "loc_e0033064:\n"
184  " bl sub_e003c15c\n"
185  " b loc_e0033148\n"
186  "loc_e003306a:\n"
187  " bl sub_e003c1f8\n"
188  " b loc_e0033148\n"
189  "loc_e0033070:\n"
190  " bl sub_e003c274\n"
191  " b loc_e0033148\n"
192  "loc_e0033076:\n"
193  " movs r0, #0\n"
194  " b loc_e003309c\n"
195  "loc_e003307a:\n"
196  " bl sub_e003c57a\n"
197  " b loc_e0033148\n"
198  "loc_e0033080:\n"
199  " b loc_e003313a\n"
200  "loc_e0033082:\n"
201  " bl sub_e003c5da\n"
202  " b loc_e0033148\n"
203  "loc_e0033088:\n"
204  " bl sub_e003c5de\n"
205  " b loc_e0033148\n"
206  "loc_e003308e:\n"
207  " bl sub_e003c5f0\n"
208  " b loc_e0033148\n"
209  "loc_e0033094:\n"
210  " bl sub_e003c674\n"
211  " b loc_e0033148\n"
212  "loc_e003309a:\n"
213  " movs r0, #1\n"
214  "loc_e003309c:\n"
215  " bl sub_e003c458\n"
216  " b loc_e0033148\n"
217  "loc_e00330a2:\n"
218  " bl sub_e003c720\n"
219  " b loc_e0033148\n"
220  "loc_e00330a8:\n"
221  " bl sub_e0039672\n"
222  " b loc_e0033148\n"
223  "loc_e00330ae:\n"
224  " movs r0, #0\n"
225  " b loc_e00330b4\n"
226  "loc_e00330b2:\n"
227  " ldr r0, [r0, #0xc]\n"
228  "loc_e00330b4:\n"
229  " bl sub_e00396f2\n"
230  " b loc_e0033148\n"
231  "loc_e00330ba:\n"
232  " bl sub_e003c37c\n"
233  " b loc_e0033148\n"
234  "loc_e00330c0:\n"
235  " bl sub_e003c3e8\n"
236  " b loc_e0033148\n"
237  "loc_e00330c6:\n"
238  " bl sub_e0046668\n"
239  " b loc_e0033148\n"
240  "loc_e00330cc:\n"
241  " bl sub_e003afdc\n"
242  " b loc_e0033148\n"
243  "loc_e00330d2:\n"
244  " bl sub_e003b096\n"
245  " b loc_e0033148\n"
246  "loc_e00330d8:\n"
247  " ldr r0, [r0, #0xc]\n"
248  " bl sub_e003c7d8\n"
249  " b loc_e0033148\n"
250  "loc_e00330e0:\n"
251  " bl sub_e003c840\n"
252  " b loc_e0033148\n"
253  "loc_e00330e6:\n"
254  " bl sub_e00361dc\n"
255  " ldrh.w r0, [r4, #0x1a0]\n"
256  " cmp r0, #4\n"
257  " beq loc_e00330fc\n"
258  " ldrh r0, [r4]\n"
259  " sub.w r1, r0, #0x8200\n"
260  " subs r1, #0x37\n"
261  " bne loc_e0033148\n"
262  "loc_e00330fc:\n"
263  " bl sub_e003b096\n"
264  " bl sub_e003b410\n"
265  " b loc_e0033148\n"
266  "loc_e0033106:\n"
267  " bl sub_e003a6ba\n"
268  " movs r0, #1\n"
269  " bl sub_e0035df4\n"
270  " cbnz r0, loc_e0033148\n"
271  " movs r1, #0\n"
272  " movs r0, #6\n"
273  " bl sub_e003c978\n"
274  " b loc_e0033148\n"
275  "loc_e003311c:\n"
276  " movs r2, #0\n"
277  " movs r1, #0x11\n"
278  " b loc_e0033126\n"
279  "loc_e0033122:\n"
280  " movs r2, #0\n"
281  " movs r1, #0x10\n"
282  "loc_e0033126:\n"
283  " movs r0, #0\n"
284  " bl sub_e004ff4a\n"
285  " b loc_e0033148\n"
286  "loc_e003312e:\n"
287  " bl sub_e003d212\n"
288  " b loc_e0033148\n"
289  "loc_e0033134:\n"
290  " bl sub_e003d214\n"
291  " b loc_e0033148\n"
292  "loc_e003313a:\n"
293  " movw r2, #0x566\n"
294  " ldr r1, =0xe0032b9c\n" // *"SsShootTask.c"
295  " movs r0, #0\n"
296  " bl sub_dffc96f4\n"
297  "loc_e0033148:\n"
298  " BL capt_seq_hook_set_nr\n" // dark frame control
299  " ldr r0, [sp]\n"
300  " ldr r1, [r0, #4]\n"
301  " ldr r0, [r5, #4]\n"
302  " bl sub_dffc9938\n"
303  " ldr r7, [sp]\n"
304  " ldr r0, [r7, #8]\n"
305  " cbnz r0, loc_e0033164\n"
306  " movs r2, #0xff\n"
307  " ldr r1, =0xe0032bb8\n" // *"SsShootTask.c"
308  " movs r0, #0\n"
309  " bl sub_dffc96f4\n"
310  "loc_e0033164:\n"
311  " str r6, [r7, #8]\n"
312  " b loc_e0032f5e\n"
313  );
314 }
void captseq_get_raw_addr ( )

Definiert in Zeile 16 der Datei capt_seq.c.

17 {
18  extern char* raw_buffer_table[];
19  extern int raw_buffer_index;
20  current_raw_addr = raw_buffer_table[raw_buffer_index];
21  current_raw_alt_addr = raw_buffer_table[(raw_buffer_index+1)&0xF]; // 16 buffers, select next one as alt
22 }
void clear_current_raw_addr ( void  )

Definiert in Zeile 24 der Datei capt_seq.c.

25 {
27 }

Variablen-Dokumentation

char* current_raw_addr

Definiert in Zeile 13 der Datei capt_seq.c.

char* current_raw_alt_addr

Definiert in Zeile 14 der Datei capt_seq.c.