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

Funktionen

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

Variablen

static long * nrflag = (long*)0x67c0
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

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

!!

Definiert in Zeile 10 der Datei capt_seq.c.

10  {
11  asm volatile (
12  "PUSH {r3, r4, r5, r6, r7, r8, r9, lr}\n"
13  "LDR r6, =0x00002b9c\n" // was: "[pc, #-1152] ; ff879e9c"
14  "LDR r4, =0x00039644\n" // was: "[pc, #-1104] ; ff879ed0"
15  "LDR r9, =0x1\n" // was: "mov ..., #1"
16  "LDR r7, =0x0\n" // was: "mov ..., #0"
17 "loc_ff87a324:\n"
18  "LDR r0, [r6, #4]\n"
19  "LDR r2, =0x0\n" // was: "mov ..., #0"
20  "MOV r1, sp\n"
21  "BL sub_ff8396e4\n"
22  "TST r0, #1\n" // 0x1
23  "BEQ loc_ff87a350\n"
24  "LDR r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"
25  "LDR r0, =0xff879ea0\n" // was: "[pc, #1336] ; ff87a880" **"SsShootTask.c"
26  "BL sub_ff81eb14\n"
27  "BL sub_ff81eacc\n"
28  "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n"
29 "loc_ff87a350:\n"
30  "LDR r0, [sp]\n"
31  "LDR r1, [r0]\n"
32  "CMP r1, #29\n" // 0x1d
33  "ADDLS pc, pc, r1, lsl #2\n"
34  "B loc_ff87a5ec\n"
35  "B loc_ff87a3dc\n" // 0 jumptable start
36  "B loc_ff87a440\n" // 1
37  "B loc_ff87a47c\n" // 2
38  "B loc_ff87a490\n" // 3
39  "B loc_ff87a488\n" // 4
40  "B loc_ff87a498\n" // 5
41  "B loc_ff87a4a0\n" // 6
42  "B loc_ff87a4a8\n" // 7
43  "B loc_ff87a500\n" // 8
44  "B loc_ff87a528\n" // 9
45  "B loc_ff87a50c\n" // 10
46  "B loc_ff87a518\n" // 11
47  "B loc_ff87a520\n" // 12
48  "B loc_ff87a530\n" // 13
49  "B loc_ff87a538\n" // 14
50  "B loc_ff87a540\n" // 15
51  "B loc_ff87a548\n" // 16
52  "B loc_ff87a550\n" // 17
53  "B loc_ff87a55c\n" // 18
54  "B loc_ff87a564\n" // 19
55  "B loc_ff87a56c\n" // 20
56  "B loc_ff87a574\n" // 21
57  "B loc_ff87a57c\n" // 22
58  "B loc_ff87a588\n" // 23
59  "B loc_ff87a590\n" // 24
60  "B loc_ff87a598\n" // 25
61  "B loc_ff87a5a0\n" // 26
62  "B loc_ff87a5a8\n" // 27
63  "B loc_ff87a5b4\n" // 28
64  "B loc_ff87a5f8\n" // 29
65 "loc_ff87a3dc:\n" // jumptable entry 0
66  "BL sub_ff87aca0\n"
67  "BL shooting_expo_param_override\n" // added
68  "BL sub_ff8780ac\n"
69 
70  // this code added to avoid some incorrect behavior if overrides are used.
71  // but it can cause some unexpected side effects. In this case, remove this code!
72  "MOV r0, #0\n"
73  "STR r0, [r4, #36]\n" // 0x24 fixes overrides behavior at short shutter press
74  "B loc_ff87a5f8\n"
75 
76  // The following compare and conditional branch will always be taken with the above added code
77  // So just change it to an unconditional branch, and remove the rest of jumptable entry 0
78 /*
79  "LDR r0, [r4, #36]\n"
80  "CMP r0, #0\n" // 0x0
81  "BEQ loc_ff87a5f8\n"
82  "BL sub_ff879b80\n"
83  "MOV r5, r0\n"
84  "LDR r0, [r4, #36]\n"
85  "CMP r0, #0\n" // 0x0
86  "BEQ loc_ff87a424\n"
87  "LDR r0, =0xc\n" // was: "mov ..., #12"
88  "BL sub_ff87f174\n"
89  "TST r0, #1\n" // 0x1
90  "STRNE r9, [r6, #16]\n"
91  "LDRNE r0, [r5, #8]\n"
92  "ORRNE r0, r0, #1073741824\n" // 0x40000000
93  "STRNE r0, [r5, #8]\n"
94  "BNE loc_ff87a5f8\n"
95 "loc_ff87a424:\n"
96  "MOV r0, r5\n"
97  "BL sub_ff879e24\n"
98  "MOV r0, r5\n"
99 
100  "BL sub_ff95f120_my\n" // taskcreate_ShutterSoundTask()
101  "BL capt_seq_hook_raw_here\n" // added
102 
103  "TST r0, #1\n" // 0x1
104  "STRNE r9, [r6, #16]\n"
105  "B loc_ff87a5f8\n"
106 */
107 "loc_ff87a440:\n" // jumptable entry 1
108  "LDR r0, [r4, #36]\n"
109  "CMP r0, #0\n" // 0x0
110  "BNE loc_ff87a46c\n"
111  "LDR r0, =0xc\n" // was: "mov ..., #12"
112  "BL sub_ff87f174\n"
113  "TST r0, #1\n" // 0x1
114  "LDRNE r0, [sp]\n"
115  "LDRNE r1, =0x1\n" // was: "mov ..., #1"
116  "LDRNE r2, [r0, #12]\n"
117  "LDRNE r0, =0x1\n" // was: "mov ..., #1"
118  "BNE loc_ff87a4f8\n"
119 "loc_ff87a46c:\n"
120  "LDR r0, [sp]\n"
121  //"BL sub_ff87a714\n"
122  "BL sub_ff87a714_my\n"
123 "loc_ff87a474:\n" // 2 refs
124  "STR r7, [r4, #36]\n"
125  "B loc_ff87a5f8\n"
126 "loc_ff87a47c:\n" // jumptable entry 2
127  "LDR r0, =0x1\n" // was: "mov ..., #1"
128  "BL sub_ff87af44\n"
129  "B loc_ff87a5f8\n"
130 "loc_ff87a488:\n" // jumptable entry 4
131  "BL sub_ff87a8bc\n"
132  "B loc_ff87a474\n"
133 "loc_ff87a490:\n" // jumptable entry 3
134  "BL sub_ff87ac80\n"
135  "B loc_ff87a474\n"
136 "loc_ff87a498:\n" // jumptable entry 5
137  "BL sub_ff87ac88\n"
138  "B loc_ff87a5f8\n"
139 "loc_ff87a4a0:\n" // jumptable entry 6
140  "BL sub_ff87ae54\n"
141  "B loc_ff87a504\n"
142 "loc_ff87a4a8:\n" // jumptable entry 7
143  "LDR r5, [r0, #12]\n"
144  "BL sub_ff87ac90\n"
145  "MOV r0, r5\n"
146  "BL sub_ff95e0f4\n"
147  "TST r0, #1\n" // 0x1
148  "MOV r8, r0\n"
149  "BNE loc_ff87a4e8\n"
150  "BL sub_ff88c3d4\n"
151  "STR r0, [r5, #24]\n"
152  "MOV r0, r5\n"
153  "BL sub_ff95f038\n"
154  "MOV r0, r5\n"
155  "BL sub_ff95f3d4\n"
156  "MOV r8, r0\n"
157  "LDR r0, [r5, #24]\n"
158  "BL sub_ff88c60c\n"
159 "loc_ff87a4e8:\n"
160  "BL sub_ff87ac80\n"
161  "MOV r2, r5\n"
162  "LDR r1, =0x9\n" // was: "mov ..., #9"
163  "MOV r0, r8\n"
164 "loc_ff87a4f8:\n"
165  "BL sub_ff87856c\n"
166  "B loc_ff87a5f8\n"
167 "loc_ff87a500:\n" // jumptable entry 8
168  "BL sub_ff87aebc\n"
169 "loc_ff87a504:\n"
170  "BL sub_ff8780ac\n"
171  "B loc_ff87a5f8\n"
172 "loc_ff87a50c:\n" // jumptable entry 10
173  "LDR r0, [r4, #84]\n"
174  "BL sub_ff87b2e8\n"
175  "B loc_ff87a5f8\n"
176 "loc_ff87a518:\n" // jumptable entry 11
177  "BL sub_ff87b59c\n"
178  "B loc_ff87a5f8\n"
179 "loc_ff87a520:\n" // jumptable entry 12
180  "BL sub_ff87b630\n"
181  "B loc_ff87a5f8\n"
182 "loc_ff87a528:\n" // jumptable entry 9
183  "BL sub_ff87ac80\n"
184  "B loc_ff87a5f8\n"
185 "loc_ff87a530:\n" // jumptable entry 13
186  "BL sub_ff95e30c\n"
187  "B loc_ff87a5f8\n"
188 "loc_ff87a538:\n" // jumptable entry 14
189  "BL sub_ff95e520\n"
190  "B loc_ff87a5f8\n"
191 "loc_ff87a540:\n" // jumptable entry 15
192  "BL sub_ff95e5b8\n"
193  "B loc_ff87a5f8\n"
194 "loc_ff87a548:\n" // jumptable entry 16
195  "BL sub_ff95e688\n"
196  "B loc_ff87a5f8\n"
197 "loc_ff87a550:\n" // jumptable entry 17
198  "LDR r0, =0x0\n" // was: "mov ..., #0"
199  "BL sub_ff95e8f0\n"
200  "B loc_ff87a5f8\n"
201 "loc_ff87a55c:\n" // jumptable entry 18
202  "BL sub_ff95ea40\n"
203  "B loc_ff87a5f8\n"
204 "loc_ff87a564:\n" // jumptable entry 19
205  "BL sub_ff95ead0\n"
206  "B loc_ff87a5f8\n"
207 "loc_ff87a56c:\n" // jumptable entry 20
208  "BL sub_ff95eb90\n"
209  "B loc_ff87a5f8\n"
210 "loc_ff87a574:\n" // jumptable entry 21
211  "BL sub_ff87b0bc\n"
212  "B loc_ff87a5f8\n"
213 "loc_ff87a57c:\n" // jumptable entry 22
214  "BL sub_ff87b164\n"
215  "BL sub_ff8376fc\n"
216  "B loc_ff87a5f8\n"
217 "loc_ff87a588:\n" // jumptable entry 23
218  "BL sub_ff95e754\n"
219  "B loc_ff87a5f8\n"
220 "loc_ff87a590:\n" // jumptable entry 24
221  "BL sub_ff95e7c0\n"
222 "loc_ff87a594:\n"
223  "B loc_ff87a5f8\n"
224 "loc_ff87a598:\n" // jumptable entry 25
225  "BL sub_ff87d77c\n"
226  "B loc_ff87a5f8\n"
227 "loc_ff87a5a0:\n" // jumptable entry 26
228  "BL sub_ff87d804\n"
229  "B loc_ff87a5f8\n"
230 "loc_ff87a5a8:\n" // jumptable entry 27
231  "BL sub_ff87d860\n"
232  "BL sub_ff87d820\n"
233  "B loc_ff87a5f8\n"
234 "loc_ff87a5b4:\n" // jumptable entry 28
235  "LDR r0, =0x1\n" // was: "mov ..., #1"
236  "BL sub_ff95fd98\n"
237  "LDR r0, =0x1\n" // was: "mov ..., #1"
238  "BL sub_ff95fecc\n"
239  "LDRH r0, [r4, #148]\n"
240  "CMP r0, #4\n" // 0x4
241  "LDRNEH r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh
242  "SUBNE ip, r0, #33280\n" // 0x8200
243  "SUBNES ip, ip, #42\n" // 0x2a compiler doesn't like subsne, -> subnes
244  "BNE loc_ff87a5f8\n"
245  "BL sub_ff87d804\n"
246  "BL sub_ff87dd74\n"
247  "BL sub_ff87dc84\n"
248  "B loc_ff87a5f8\n"
249 "loc_ff87a5ec:\n" // jumptable default
250  "LDR r1, =0x0000070b\n" // was: "[pc, #668] ; ff87a890"
251  "LDR r0, =0xff879ea0\n" // was: "[pc, #648] ; ff87a880" **"SsShootTask.c"
252  "BL sub_ff81eb14\n"
253 "loc_ff87a5f8:\n" // 30 refs jumptable entry 29
254  "LDR r0, [sp]\n"
255  "LDR r1, [r0, #4]\n"
256  "LDR r0, [r6]\n"
257  "BL sub_ff883f9c\n"
258  "LDR r5, [sp]\n"
259  "LDR r0, [r5, #8]\n"
260  "CMP r0, #0\n" // 0x0
261  "LDREQ r1, =0x00000132\n" // was: "[pc, #632] ; ff87a894"
262  "LDREQ r0, =0xff879ea0\n" // was: "subeq r0, pc, #1920" *"SsShootTask.c"
263  "BLEQ sub_ff81eb14\n"
264  "STR r7, [r5, #8]\n"
265  "B loc_ff87a324\n"
266  );
267 }

Variablen-Dokumentation

long* nrflag = (long*)0x67c0
static

Definiert in Zeile 5 der Datei capt_seq.c.