CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
filewrite.c-Dateireferenz
#include "lolevel.h"
#include "platform.h"
#include "../../../generic/filewrite.c"
+ Include-Abhängigkeitsdiagramm für filewrite.c:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  cam_ptp_data_chunk
 
struct  fwt_data_struct
 

Makrodefinitionen

#define MAX_CHUNKS_FOR_FWT   7
 

Funktionen

void __attribute__ ((naked, noinline))
 

Makro-Dokumentation

#define MAX_CHUNKS_FOR_FWT   7

Definiert in Zeile 9 der Datei filewrite.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 37 der Datei filewrite.c.

39 {
40  asm volatile (
41  //capdis -f=chdk -s=0xfc4e848d -c=43 -stubs PRIMARY.BIN 0xfc000000
42  " push {r3, r4, r5, r6, r7, lr}\n"
43  " ldr r6, =0x09200001\n"
44  " movw r7, #0x476\n"
45  " ldr r5, =0x000264c0\n"
46  " adds r6, #0x12\n"
47  "loc_fc4e8498:\n"
48  " mov r1, sp\n"
49  " movs r2, #0\n"
50  " ldr r0, [r5, #0x14]\n"
51  " blx sub_fc34d07c\n"
52  " cbz r0, loc_fc4e84ae\n"
53  " movs r0, #0\n"
54  " mov r2, r7\n"
55  " ldr r1, =0xfc4e8558\n" // *"dwFWrite.c"
56  " blx sub_fc34d28c\n"
57  "loc_fc4e84ae:\n"
58  " ldr r0, [sp]\n"
59  " ldr r1, [r0]\n"
60  " cmp r1, #0xd\n"
61  " bhs loc_fc4e8498\n"
62  " tbb [pc, r1]\n" // (jumptable r1 13 elements)
63  "branchtable_fc4e84ba:\n"
64  " .byte((loc_fc4e84fc - branchtable_fc4e84ba) / 2)\n" // (case 0)
65  " .byte((loc_fc4e84fc - branchtable_fc4e84ba) / 2)\n" // (case 1)
66  " .byte((loc_fc4e84fc - branchtable_fc4e84ba) / 2)\n" // (case 2)
67  " .byte((loc_fc4e84fc - branchtable_fc4e84ba) / 2)\n" // (case 3)
68  " .byte((loc_fc4e84fc - branchtable_fc4e84ba) / 2)\n" // (case 4)
69  " .byte((loc_fc4e84fc - branchtable_fc4e84ba) / 2)\n" // (case 5)
70  " .byte((loc_fc4e84fc - branchtable_fc4e84ba) / 2)\n" // (case 6)
71  " .byte((loc_fc4e8502 - branchtable_fc4e84ba) / 2)\n" // (case 7)
72  " .byte((loc_fc4e84c8 - branchtable_fc4e84ba) / 2)\n" // (case 8)
73  " .byte((loc_fc4e84da - branchtable_fc4e84ba) / 2)\n" // (case 9)
74  " .byte((loc_fc4e84f6 - branchtable_fc4e84ba) / 2)\n" // (case 10)
75  " .byte((loc_fc4e84ce - branchtable_fc4e84ba) / 2)\n" // (case 11)
76  " .byte((loc_fc4e84d4 - branchtable_fc4e84ba) / 2)\n" // (case 12)
77  ".align 1\n"
78  "loc_fc4e84c8:\n"
79  " bl sub_fc4e867a\n"
80  " b loc_fc4e8498\n"
81  "loc_fc4e84ce:\n"
82  " bl sub_fc4e86c6\n"
83  " b loc_fc4e8498\n"
84  "loc_fc4e84d4:\n"
85  " bl sub_fc4e8210_my\n" // Patched
86  " b loc_fc4e8498\n"
87  "loc_fc4e84da:\n"
88  " ldr r1, [r0, #4]\n"
89  " movs r2, #0\n"
90  " mov r4, r0\n"
91  " ldr r0, [r5, #8]\n"
92  " bl sub_fc3b5e3e\n"
93  " adds r0, r0, #1\n"
94  " bne loc_fc4e8498\n"
95  " movs r0, #7\n"
96  " mov r1, r4\n"
97  " str r6, [r4, #0x14]\n"
98  " bl sub_fc4e8196\n"
99  " b loc_fc4e8498\n"
100  "loc_fc4e84f6:\n"
101  " bl sub_fc4e8724\n"
102  " b loc_fc4e8498\n"
103  "loc_fc4e84fc:\n"
104  " bl sub_fc4e8796_my\n" // Patched
105  " b loc_fc4e8498\n"
106  "loc_fc4e8502:\n"
107  " bl sub_fc4e8342_my\n" // Patched
108  " b loc_fc4e8498\n"
109  );
110 }