CHDK_DE Vorschauversion  Trunk Rev. 6014
 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 LED_PR   0xd20b0994
 
#define LED_PWR   0xd20b0884
 
#define LED_ORANGE   0xd20b0888
 
#define XDELAY   4000000
 
#define CF_EFL   280
 
#define CF_EFL_DIV   61
 
#define NUM_FL   122
 
#define NUM_DATA   2
 

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   280

Definiert in Zeile 57 der Datei main.c.

#define CF_EFL_DIV   61

Definiert in Zeile 58 der Datei main.c.

#define LED_ORANGE   0xd20b0888
#define LED_PR   0xd20b0994
#define LED_PWR   0xd20b0884
#define NUM_DATA   2

Definiert in Zeile 60 der Datei main.c.

#define NUM_FL   122

Definiert in Zeile 59 der Datei main.c.

#define XDELAY   4000000

Dokumentation der Funktionen

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 };
int get_effective_focal_length ( int  zp)

Definiert in Zeile 65 der Datei main.c.

66 {
68 }
int get_focal_length ( int  zp)

Definiert in Zeile 70 der Datei main.c.

71 {
72  if (zp < 0) zp = 0;
73  else if (zp >= NUM_FL) zp = NUM_FL-1;
74  return focus_len_table[zp*NUM_DATA];
75 }
long get_vbatt_max ( )

Definiert in Zeile 85 der Datei main.c.

85 { return 8250; }
long get_vbatt_min ( )

Definiert in Zeile 84 der Datei main.c.

84 { return 6450; }
int get_zoom_x ( int  zp)

Definiert in Zeile 77 der Datei main.c.

78 {
79  return get_focal_length(zp)*10/focus_len_table[0];
80 }
void startup ( )

Definiert in Zeile 10 der Datei main.c.

11 {
12 
13  long *bss = &link_bss_start;
14 
15  // sanity check
16  if ((long)&link_bss_end > (MEMISOSTART + MEMISOSIZE)) {
17  //started();
18  #define LED_PR 0xd20b0994 // G16 green LED on OVF bezel
19  #define LED_PWR 0xd20b0884 // G16 green LED on power button
20  #define LED_ORANGE 0xd20b0888 // G16 orange LED on OVF bezel
21  #define XDELAY 4000000
22  int j = 1000 ;
23  while(j-- > 0) {
24  int i;
25  *(volatile int*)LED_PR = 0x4d0002;
26  *(volatile int*)LED_PWR = 0x4d0002;
27  *(volatile int*)LED_ORANGE = 0x4d0002;
28  for(i=0;i<XDELAY/10;i++) {
29  asm volatile(
30  "nop\n"
31  );
32  }
33  *(volatile int*)LED_PR = 0x4c0003;
34  *(volatile int*)LED_PWR = 0x4c0003;
35  *(volatile int*)LED_ORANGE = 0x4c0003;
36  for(i=0;i<XDELAY;i++) {
37  asm volatile(
38  "nop\n"
39  );
40  }
41  }
42  shutdown();
43  }
44 
45  // initialize .bss senment
46  while (bss<&link_bss_end)
47  *bss++ = 0;
48  boot();
49 }

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 63 der Datei main.c.