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

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NUM_FL   8
 
#define NUM_DATA   3
 
#define CF_EFL   350
 
#define CF_EFL_DIV   62
 

Funktionen

void boot ()
 
void startup ()
 
int get_effective_focal_length (int zp)
 
int get_focal_length (int zp)
 
int get_zoom_x (int zp)
 
long get_vbatt_min ()
 
long get_vbatt_max ()
 

Variablen

long link_bss_start
 
long link_bss_end
 
int focus_len_table [NUM_FL *NUM_DATA]
 
const int zoom_points = NUM_FL
 

Makro-Dokumentation

#define CF_EFL   350

Definiert in Zeile 40 der Datei main.c.

#define CF_EFL_DIV   62

Definiert in Zeile 41 der Datei main.c.

#define NUM_DATA   3

Definiert in Zeile 32 der Datei main.c.

#define NUM_FL   8

Definiert in Zeile 31 der Datei main.c.

Dokumentation der Funktionen

void boot ( )

Definiert in Zeile 38 der Datei boot.c.

38  { //#fs
39  long *canon_data_src = (void*)0xFFEBFB4C;
40  long *canon_data_dst = (void*)0x1900;
41  long canon_data_len = 0xD700 - 0x1900; // data_end - data_start
42  long *canon_bss_start = (void*)0xD700; // just after data
43  long canon_bss_len = 0xA47E0 - 0xD700;
44 
45  long i;
46 
47 
48  // Code taken from VxWorks CHDK. Changes CPU speed?
49  asm volatile (
50  "MRC p15, 0, R0,c1,c0\n"
51  "ORR R0, R0, #0x1000\n"
52  "ORR R0, R0, #4\n"
53  "ORR R0, R0, #1\n"
54  "MCR p15, 0, R0,c1,c0\n"
55  :::"r0");
56 
57  for(i=0;i<canon_data_len/4;i++)
58  canon_data_dst[i]=canon_data_src[i];
59 
60  for(i=0;i<canon_bss_len/4;i++)
61  canon_bss_start[i]=0;
62 
63 /* asm volatile (
64  "MRC p15, 0, R0,c1,c0\n"
65  "ORR R0, R0, #0x1000\n"
66  "BIC R0, R0, #4\n"
67  "ORR R0, R0, #1\n"
68  "MCR p15, 0, R0,c1,c0\n"
69  :::"r0");
70 */
71 
72  *(int*)0x1930=(int)taskCreateHook;
73  *(int*)0x1934=(int)taskCreateHook;
74  *(int*)0x1938=(int)taskCreateHook2;
75 
76  // jump to init-sequence that follows the data-copy-routine
77  asm volatile ("B sub_FFC001A4_my\n");
78 }; //#fe
int get_effective_focal_length ( int  zp)

Definiert in Zeile 45 der Datei main.c.

45  {
47 }
int get_focal_length ( int  zp)

Definiert in Zeile 49 der Datei main.c.

49  {
50  if (zp < 0) zp = 0;
51  else if (zp >= NUM_FL) zp = NUM_FL-1;
52  return focus_len_table[zp*NUM_DATA];
53 }
long get_vbatt_max ( )

Definiert in Zeile 64 der Datei main.c.

65 {
66  return 2550;
67 }
long get_vbatt_min ( )

Definiert in Zeile 59 der Datei main.c.

60 {
61  return 2300;
62 }
int get_zoom_x ( int  zp)

Definiert in Zeile 55 der Datei main.c.

55  {
56  return get_focal_length(zp)*10/focus_len_table[0];
57 }
void startup ( )

Definiert in Zeile 12 der Datei main.c.

13 {
14  long *bss = &link_bss_start;
15 
16  // sanity check
17  if ((long)&link_bss_end > (MEMISOSTART + MEMISOSIZE)){
18  started();
19  shutdown();
20  }
21 
22  // initialize .bss senment
23  while (bss<&link_bss_end)
24  *bss++ = 0;
25 
26 
27  boot();
28 }

Variablen-Dokumentation

int focus_len_table[NUM_FL *NUM_DATA]
long link_bss_end
long link_bss_start
const int zoom_points = NUM_FL

Definiert in Zeile 43 der Datei main.c.