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

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define LED_ISO   (void*) 0xC02200D0
 
#define LED_DP   (void*) 0xC02200D4
 
#define LED_ECL   (void*) 0xC02200D8
 
#define LED_PWR   (void*) 0xC02200DC
 

Funktionen

void task_CaptSeq ()
 
void task_InitFileModules ()
 
void task_RotaryEncoder ()
 
void task_MovieRecord ()
 
void task_ExpDrv ()
 
void task_FileWrite ()
 
void CreateTask_PhySw ()
 
void CreateTask_spytask ()
 
void JogDial_task_my (void)
 
void taskCreateHook (int *p)
 
void taskCreateHook2 (int *p)
 
void __attribute__ ((naked, noinline))
 

Variablen

const char *const new_sa = &_end
 
volatile int jogdial_stopped
 

Makro-Dokumentation

#define LED_DP   (void*) 0xC02200D4

Definiert in Zeile 18 der Datei boot.c.

#define LED_ECL   (void*) 0xC02200D8

Definiert in Zeile 19 der Datei boot.c.

#define LED_ISO   (void*) 0xC02200D0

Definiert in Zeile 17 der Datei boot.c.

#define LED_PWR   (void*) 0xC02200DC

Definiert in Zeile 20 der Datei boot.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 110 der Datei boot.c.

110  {
111 asm volatile (
112 " LDR R1, =0xC0410000 \n"
113 " MOV R0, #0 \n"
114 " STR R0, [R1] \n"
115 " MOV R1, #0x78 \n"
116 " MCR p15, 0, R1, c1, c0 \n"
117 " MOV R1, #0 \n"
118 " MCR p15, 0, R1, c7, c10, 4 \n"
119 " MCR p15, 0, R1, c7, c5 \n"
120 " MCR p15, 0, R1, c7, c6 \n"
121 " MOV R0, #0x3D \n"
122 " MCR p15, 0, R0, c6, c0 \n"
123 " MOV R0, #0xC000002F \n"
124 " MCR p15, 0, R0, c6, c1 \n"
125 " MOV R0, #0x35 \n"
126 " MCR p15, 0, R0, c6, c2 \n"
127 " MOV R0, #0x40000035 \n"
128 " MCR p15, 0, R0, c6, c3 \n"
129 " MOV R0, #0x80000017 \n"
130 " MCR p15, 0, R0, c6, c4 \n"
131 " LDR R0, =0xFF80002D \n"
132 " MCR p15, 0, R0, c6, c5 \n"
133 " MOV R0, #0x34 \n"
134 " MCR p15, 0, R0, c2, c0 \n"
135 " MOV R0, #0x34 \n"
136 " MCR p15, 0, R0, c2, c0, 1 \n"
137 " MOV R0, #0x34 \n"
138 " MCR p15, 0, R0, c3, c0 \n"
139 " LDR R0, =0x3333330 \n"
140 " MCR p15, 0, R0, c5, c0, 2 \n"
141 " LDR R0, =0x3333330 \n"
142 " MCR p15, 0, R0, c5, c0, 3 \n"
143 " MRC p15, 0, R0, c1, c0 \n"
144 " ORR R0, R0, #0x1000 \n"
145 " ORR R0, R0, #4 \n"
146 " ORR R0, R0, #1 \n"
147 " MCR p15, 0, R0, c1, c0 \n"
148 " MOV R1, #0x80000006 \n"
149 " MCR p15, 0, R1, c9, c1 \n"
150 " MOV R1, #6 \n"
151 " MCR p15, 0, R1, c9, c1, 1 \n"
152 " MRC p15, 0, R1, c1, c0 \n"
153 " ORR R1, R1, #0x50000 \n"
154 " MCR p15, 0, R1, c1, c0 \n"
155 " LDR R2, =0xC0200000 \n"
156 " MOV R1, #1 \n"
157 " STR R1, [R2, #0x10C] \n"
158 " MOV R1, #0xFF \n"
159 " STR R1, [R2, #0xC] \n"
160 " STR R1, [R2, #0x1C] \n"
161 " STR R1, [R2, #0x2C] \n"
162 " STR R1, [R2, #0x3C] \n"
163 " STR R1, [R2, #0x4C] \n"
164 " STR R1, [R2, #0x5C] \n"
165 " STR R1, [R2, #0x6C] \n"
166 " STR R1, [R2, #0x7C] \n"
167 " STR R1, [R2, #0x8C] \n"
168 " STR R1, [R2, #0x9C] \n"
169 " STR R1, [R2, #0xAC] \n"
170 " STR R1, [R2, #0xBC] \n"
171 " STR R1, [R2, #0xCC] \n"
172 " STR R1, [R2, #0xDC] \n"
173 " STR R1, [R2, #0xEC] \n"
174 " STR R1, [R2, #0xFC] \n"
175 " LDR R1, =0xC0400008 \n"
176 " LDR R2, =0x430005 \n"
177 " STR R2, [R1] \n"
178 " MOV R1, #1 \n"
179 " LDR R2, =0xC0243100 \n"
180 " STR R2, [R1] \n"
181 " LDR R2, =0xC0242010 \n"
182 " LDR R1, [R2] \n"
183 " ORR R1, R1, #1 \n"
184 " STR R1, [R2] \n"
185 " LDR R0, =0xFFBA09DC \n"
186 " LDR R1, =0x1900 \n"
187 " LDR R3, =0x10834 \n"
188 
189 "loc_FF81013C:\n"
190 " CMP R1, R3 \n"
191 " LDRCC R2, [R0], #4 \n"
192 " STRCC R2, [R1], #4 \n"
193 " BCC loc_FF81013C \n"
194 " LDR R1, =0xEEECC \n"
195 " MOV R2, #0 \n"
196 
197 "loc_FF810154:\n"
198 " CMP R3, R1 \n"
199 " STRCC R2, [R3], #4 \n"
200 " BCC loc_FF810154 \n"
201 " B sub_FF8101A0_my \n" // --> Patched. Old value = 0xFF8101A0.
202 );
203 }
void CreateTask_PhySw ( )
void CreateTask_spytask ( )

Definiert in Zeile 34 der Datei boot.c.

34  {
35  _CreateTask("SpyTask", 0x19, 0x2000, core_spytask, 0);
36 };
void JogDial_task_my ( void  )
void task_CaptSeq ( )
void task_ExpDrv ( )
void task_FileWrite ( )
void task_InitFileModules ( )
void task_MovieRecord ( )
void task_RotaryEncoder ( )
void taskCreateHook ( int *  p)

Definiert in Zeile 84 der Datei boot.c.

84  {
85  p-=17;
86 
87  if (p[0]==(int)task_InitFileModules) p[0]=(int)init_file_modules_task;
88  if (p[0]==(int)task_MovieRecord) p[0]=(int)movie_record_task;
89  if (p[0]==(int)task_CaptSeq) p[0]=(int)capt_seq_task;
90  if (p[0]==(int)task_ExpDrv) p[0]=(int)exp_drv_task;
91  if (p[0]==(int)task_RotaryEncoder) p[0]=(int)JogDial_task_my;
92  if (p[0]==(int)task_FileWrite) p[0]=(int)filewritetask;
93 }
void taskCreateHook2 ( int *  p)

Definiert in Zeile 95 der Datei boot.c.

95  {
96  p-=17;
97  if (p[0]==(int)task_InitFileModules) p[0]=(int)init_file_modules_task;
98  if (p[0]==(int)task_ExpDrv) p[0]=(int)exp_drv_task;
99  if (p[0]==(int)task_FileWrite) p[0]=(int)filewritetask;
100 }

Variablen-Dokumentation

volatile int jogdial_stopped

Definiert in Zeile 81 der Datei kbd.c.

const char* const new_sa = &_end

Definiert in Zeile 15 der Datei boot.c.