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 NUM_FL   (int)(sizeof(fl_tbl)/sizeof(fl_tbl[0]))
 
#define CF_EFL   56666
 

Funktionen

void boot ()
 
long get_sensor_width ()
 
void startup ()
 
int get_mav (int zp)
 
int get_xav (int zp)
 
int get_fov (int zp)
 
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
 
struct {
   int   zp
 
   int   fl
 
fl_tbl []
 
const int zoom_points = NUM_FL
 
static const int fov_tbl [] = {63,54,48,42,36,32,27,23,20,18}
 
static const int mav_tbl [] = {294,311,348,371,393,418,445,474,500}
 
static const int xav_tbl [] = {582,599,636,659,681,706,733,762,788}
 

Makro-Dokumentation

#define CF_EFL   56666

Definiert in Zeile 53 der Datei main.c.

#define NUM_FL   (int)(sizeof(fl_tbl)/sizeof(fl_tbl[0]))

Definiert in Zeile 48 der Datei main.c.

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

78  {
79  return (CF_EFL*get_focal_length(zp))/10000;
80 }
int get_focal_length ( int  zp)

Definiert in Zeile 82 der Datei main.c.

82  {
83  int i;
84 
85  if (zp<fl_tbl[0].zp)
86  return fl_tbl[0].fl;
87  else if (zp>fl_tbl[NUM_FL-1].zp)
88  return fl_tbl[NUM_FL-1].fl;
89  else
90  for (i=1; i<NUM_FL; ++i) {
91  if (zp==fl_tbl[i-1].zp)
92  return fl_tbl[i-1].fl;
93  else if (zp==fl_tbl[i].zp)
94  return fl_tbl[i].fl;
95  else if (zp<fl_tbl[i].zp)
96  return fl_tbl[i-1].fl+(zp-fl_tbl[i-1].zp)*(fl_tbl[i].fl-fl_tbl[i-1].fl)/(fl_tbl[i].zp-fl_tbl[i-1].zp);
97  }
98  return fl_tbl[NUM_FL-1].fl;
99 }
int get_fov ( int  zp)

Definiert in Zeile 71 der Datei main.c.

72 {
73  if (zp<0) return fov_tbl[0];
74  else if (zp>NUM_FL-1) return fov_tbl[NUM_FL-1];
75  else return fov_tbl[zp];
76 }
int get_mav ( int  zp)

Definiert in Zeile 61 der Datei main.c.

62 {
63  return mav_tbl[zp];
64 }
long get_sensor_width ( )

Definiert in Zeile 11 der Datei main.c.

12 {
13  return 6160; // 1/2.3"
14 }
long get_vbatt_max ( )

Definiert in Zeile 110 der Datei main.c.

111 {
112  return 4100;
113 }
long get_vbatt_min ( )

Definiert in Zeile 105 der Datei main.c.

106 {
107  return 3000;
108 }
int get_xav ( int  zp)

Definiert in Zeile 66 der Datei main.c.

67 {
68  return xav_tbl[zp];
69 }
int get_zoom_x ( int  zp)

Definiert in Zeile 101 der Datei main.c.

101  {
102  return get_focal_length(zp)*10/fl_tbl[0].fl;
103 }
void startup ( )

Definiert in Zeile 16 der Datei main.c.

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

Variablen-Dokumentation

int fl

Definiert in Zeile 35 der Datei main.c.

struct { ... } fl_tbl[]
Initialisierung:
= {
{ 0, 5000},
{ 1, 6000},
{ 2, 7000},
{ 3, 8000},
{ 4, 9500},
{ 5, 10900},
{ 6, 12800},
{ 7, 15000},
{ 8, 17300},
{ 9, 20000},
}
const int fov_tbl[] = {63,54,48,42,36,32,27,23,20,18}
static

Definiert in Zeile 57 der Datei main.c.

long link_bss_end
long link_bss_start
const int mav_tbl[] = {294,311,348,371,393,418,445,474,500}
static

Definiert in Zeile 58 der Datei main.c.

const int xav_tbl[] = {582,599,636,659,681,706,733,762,788}
static

Definiert in Zeile 59 der Datei main.c.

const int zoom_points = NUM_FL

Definiert in Zeile 55 der Datei main.c.

int zp

Definiert in Zeile 35 der Datei main.c.