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 "dryos31.h"
+ Include-Abhängigkeitsdiagramm für boot.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define offsetof(TYPE, MEMBER)   ((int) &((TYPE *)0)->MEMBER)
 
#define DP   (void*)0xC02200C4
 
#define LED_PR   0xc02200C4
 
#define LED_RED   0xc02200C8
 
#define LED_GRN   0xc02200CC
 
#define LED_PWR   0xc02200D0
 

Funktionen

void CreateTask_blinker ()
 
void __attribute__ ((naked, noinline))
 
void CreateTask_spytask ()
 
void boot ()
 

Variablen

const char *const new_sa = &_end
 

Makro-Dokumentation

#define DP   (void*)0xC02200C4

Definiert in Zeile 8 der Datei boot.c.

#define LED_GRN   0xc02200CC

Definiert in Zeile 11 der Datei boot.c.

#define LED_PR   0xc02200C4

Definiert in Zeile 9 der Datei boot.c.

#define LED_PWR   0xc02200D0

Definiert in Zeile 12 der Datei boot.c.

#define LED_RED   0xc02200C8

Definiert in Zeile 10 der Datei boot.c.

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

Definiert in Zeile 6 der Datei boot.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

Definiert in Zeile 17 der Datei boot.c.

26  {
27  task_t *tcb=(task_t*)((char*)context-offsetof(task_t, context));
28 
29  // Replace firmware task addresses with ours
30  if(tcb->entry == (void*)task_PhySw) tcb->entry = (void*)mykbd_task;
31  if(tcb->entry == (void*)task_CaptSeq) tcb->entry = (void*)capt_seq_task;
32  if(tcb->entry == (void*)task_InitFileModules) tcb->entry = (void*)init_file_modules_task;
33  if(tcb->entry == (void*)task_MovieRecord) tcb->entry = (void*)movie_record_task;
34  if(tcb->entry == (void*)task_ExpDrv) tcb->entry = (void*)exp_drv_task;
35  if(tcb->entry == (void*)task_FileWrite) tcb->entry = (void*)filewritetask;
36 }
void boot ( )

Definiert in Zeile 43 der Datei boot.c.

43  {
44 
45  long *canon_data_src = (void*)0xFFEDAC70; // value taken at ROM:FFC00188
46  long *canon_data_dst = (void*)0x1900;
47  long canon_data_len = 0xDF84 - 0x1900; // data_end - data_start 0xDF7C taken at ROM:FFC00138
48  long *canon_bss_start = (void*)0xDF84; // just after data
49  long canon_bss_len = 0xD4F38 - 0xDF84; // d4ec8 taken at ROM:FFC00FB4
50 
51  long i;
52 
53  // enable caches and write buffer...
54  // this is a carryover from old dryos ports, may not be useful
55  asm volatile (
56  "MRC p15, 0, R0,c1,c0\n"
57  "ORR R0, R0, #0x1000\n"
58  "ORR R0, R0, #4\n"
59  "ORR R0, R0, #1\n"
60  "MCR p15, 0, R0,c1,c0\n"
61  :::"r0"
62  );
63 
64  for(i=0;i<canon_data_len/4;i++)
65  canon_data_dst[i]=canon_data_src[i];
66 
67  for(i=0;i<canon_bss_len/4;i++)
68  canon_bss_start[i]=0;
69 
70  asm volatile ("B sub_FFC001A4_my\n");
71 };
void CreateTask_blinker ( )

Definiert in Zeile 624 der Datei boot.c.

624  {
625  _CreateTask("Blinker", 0x1, 0x200, task_blinker, 0);
626 };
void CreateTask_spytask ( )

Definiert in Zeile 38 der Datei boot.c.

38  {
39  _CreateTask("SpyTask", 0x19, 0x2000, core_spytask, 0);
40 };

Variablen-Dokumentation

const char* const new_sa = &_end

Definiert in Zeile 14 der Datei boot.c.