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

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define offsetof(TYPE, MEMBER)   ((int) &((TYPE *)0)->MEMBER)
 

Funktionen

void JogDial_task_my (void)
 
void task_CaptSeq ()
 
void task_InitFileModules ()
 
void task_RotaryEncoder ()
 
void task_MovieRecord ()
 
void task_ExpDrv ()
 
unsigned _ExecuteEventProcedure (const char *name,...)
 
unsigned _LCDMsg_Create (unsigned, unsigned, unsigned)
 
void _LCDMsg_SetStr (unsigned, char *)
 
void save_romlog2 (void)
 
void spytask_my (long ua, long ub, long uc, long ud, long ue, long uf)
 
void spytask (long ua, long ub, long uc, long ud, long ue, long uf)
 
void CreateTask_spytask ()
 
void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 

Variablen

const char *const new_sa = &_end
 
volatile int jogdial_stopped
 
static unsigned message
 

Makro-Dokumentation

#define offsetof (   TYPE,
  MEMBER 
)    ((int) &((TYPE *)0)->MEMBER)

Definiert in Zeile 9 der Datei boot.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

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

!!

IS_ERROR( hSoundHandle )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

__MovieRecorder_c__100

__MovieRecorder_c__100

Definiert in Zeile 105 der Datei boot.c.

105  {
106  asm volatile ( // 0xfc02000c
107  "mov r0, #0x4000\n"
108  "mov sp, r0\n"
109  "bl sub_fc02007e\n"
110  "ldr r2, =0xc0242010\n"
111  "ldr r1, [r2]\n"
112  "orr.w r1, r1, #1\n"
113  "str r1, [r2]\n"
114  "ldr r0, =0xfccabee8\n"
115  "ldr r1, =0x10e1000\n"
116  "ldr r3, =0x11074ac\n"
117  "loc_fc02002a: \n"
118  "cmp r1, r3\n"
119  "itt cc\n"
120  "ldrcc.w r2, [r0],#4\n"
121  "strcc.w r2, [r1],#4\n"
122  "bcc loc_fc02002a\n"
123  "ldr r0, =0x010e1000\n"
124  "ldr r1, =0x000264ac\n"
125  "bl sub_fc1300b2\n"
126  "ldr r0, =0xfccd2394\n"
127  "ldr r1, =0xbfe10800\n"
128  "ldr r3, =0xbfe17391\n"
129  "loc_fc020046:\n"
130  "cmp r1, r3\n"
131  "itt cc\n"
132  "ldrcc.w r2, [r0],#4\n"
133  "strcc.w r2, [r1],#4\n"
134  "bcc loc_fc020046\n"
135  "ldr r0, =0xfcc637a8\n"
136  "ldr r1, =0x00008000\n"
137  "ldr r3, =0x00050740\n"
138  "loc_fc02005a:\n"
139  "cmp r1, r3\n"
140  "itt cc\n"
141  "ldrcc.w r2, [r0],#4\n"
142  "strcc.w r2, [r1],#4\n"
143  "bcc loc_fc02005a\n"
144 
145  "mov.w r3, #0x01\n" // Enable TIO
146  "ldr r1, =0x00008000\n" // Enable TIO
147  "str.w r3, [r1]\n" // Enable TIO
148 
149  "ldr r3, =0x00050740\n"
150  "ldr r1, =0x003a7c80\n"
151  "mov.w r2, #0\n"
152  "loc_fc020070:\n"
153  "cmp r3, r1\n"
154  "it cc\n"
155  "strcc.w r2, [r3],#4\n"
156  "bcc loc_fc020070\n"
157 
158  // Install CreateTask patch
159  "adr r0, patch_CreateTask\n" // Patch data
160  "ldm r0, {r1,r2}\n" // Get two patch instructions
161  "ldr r0, =orig_CreateTask\n" // Address to patch
162  "bic r0, #1\n" // clear thumb bit
163  "stm r0, {r1,r2}\n" // Store patch instructions
164 
165  "b.w sub_fc062f48_my\n" // continue
166 
167  "patch_CreateTask:\n"
168  "ldr.w pc, [pc,#0]\n" // Do jump to absolute address CreateTask_my
169  ".long CreateTask_my + 1\n" // has to be a thumb address
170 );
171 }
unsigned _ExecuteEventProcedure ( const char *  name,
  ... 
)
unsigned _LCDMsg_Create ( unsigned  ,
unsigned  ,
unsigned   
)
void _LCDMsg_SetStr ( unsigned  ,
char *   
)
void CreateTask_spytask ( )

Definiert in Zeile 84 der Datei boot.c.

85 {
86  if ( *(int*)(0x9e5c) & 0x00600000 )
87  {
88  if (( *(int*)(0xD20BF4A0) & 0x00002000) == 0) _CreateTask("SpyTaskMY", 0x19, 0x2000, spytask_my, 0);
89  _CreateTask("SpyTask", 0x19, 0x2000, spytask, 0);
90  }
91 }
void JogDial_task_my ( void  )
void save_romlog2 ( void  )

Definiert in Zeile 33 der Datei boot.c.

34 {
35  unsigned args[4];
36  args[0] = (unsigned)"SystemEventInit";
38  args[0] = (unsigned)"UI.CreatePublic";
40  args[0] = (unsigned)"System.Create";
42  args[0] = (unsigned)"Driver.Create";
44 
45  args[0] = (unsigned)"GetLogToFile";
46  args[1] = (unsigned)"A/ROMLOG.LOG";
47  args[2] = 1;
49 
50  args[0] = (unsigned)"BeepDrive";
51  args[1] = (unsigned) 0x02;
53 
54  // *(int*)0xd20b0810 = 0x4d0002; // Orange Led = on
55 
56 }
void spytask ( long  ua,
long  ub,
long  uc,
long  ud,
long  ue,
long  uf 
)

Definiert in Zeile 75 der Datei boot.c.

76 {
77  core_spytask();
78 }
void spytask_my ( long  ua,
long  ub,
long  uc,
long  ud,
long  ue,
long  uf 
)

Definiert in Zeile 62 der Datei boot.c.

63 {
64  _SleepTask(2800);
65  save_romlog2();
66 
67  while (1){
68  _SleepTask(300);
69  }
70 }
void task_CaptSeq ( )
void task_ExpDrv ( )
void task_InitFileModules ( )
void task_MovieRecord ( )
void task_RotaryEncoder ( )

Variablen-Dokumentation

volatile int jogdial_stopped

Definiert in Zeile 81 der Datei kbd.c.

unsigned message
static

Definiert in Zeile 31 der Datei boot.c.

const char* const new_sa = &_end

Definiert in Zeile 11 der Datei boot.c.