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-Abhängigkeitsdiagramm für boot.c:

gehe zum Quellcode dieser Datei

Funktionen

void task_CaptSeq ()
 
void task_InitFileModules ()
 
void task_RotaryEncoder ()
 
void task_MovieRecord ()
 
void task_ExpDrv ()
 
void handle_jogdial ()
 
void spytask (long ua, long ub, long uc, long ud, long ue, long uf)
 
void CreateTask_spytask ()
 
void __attribute__ ((naked, noinline))
 
void init_required_fw_features (void)
 

Variablen

const char *const new_sa = &_end
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 43 der Datei boot.c.

43  {
44  asm volatile (
45 " movw r0, #0x4000\n"
46 " movt r0, #0\n"
47 " mov sp, r0\n"
48 " bl sub_fc02006a\n"
49 " ldr r2, =0xc0242010\n"
50 " ldr r1, [r2]\n"
51 " orr r1, r1, #1\n"
52 " str r1, [r2]\n"
53 " ldr r0, =0xfcd67020\n"
54 " ldr r1, =0x010e1000\n"
55 " ldr r3, =0x0110dc1c\n"
56 "loc_fc02002a:\n"
57 " cmp r1, r3\n"
58 " itt lo\n"
59 " ldrlo r2, [r0], #4\n"
60 " strlo r2, [r1], #4\n"
61 " blo loc_fc02002a\n"
62 // Install CreateTask patch
63 // use half words in case source or destination not word aligned
64  "adr r0, patch_CreateTask\n" // src: Patch data
65  "ldr r1, =hook_CreateTask\n" // dest: Address to patch (hook_ has thumb bit off)
66  "add r2, r0, #8\n" // two words
67 "task_hook_loop:\n"
68  "ldrh r3, [r0],#2\n"
69  "strh r3, [r1],#2\n"
70  "cmp r0,r2\n"
71  "blo task_hook_loop\n"
72 " ldr r0, =0x010e1000\n"
73 " ldr r1, =0x0002cc1c\n"
74 " bl sub_fc133dae\n"
75 " ldr r0, =0xfcd39d68\n"
76 " ldr r1, =0x00008000\n"
77 " ldr r3, =0x000352b8\n"
78 "loc_fc020046:\n"
79 " cmp r1, r3\n"
80 " itt lo\n"
81 " ldrlo r2, [r0], #4\n"
82 " strlo r2, [r1], #4\n"
83 " blo loc_fc020046\n"
84 " ldr r3, =0x000352b8\n"
85 " ldr r1, =0x0036a354\n"
86 " mov.w r2, #0\n"
87 "loc_fc02005c:\n"
88 " cmp r3, r1\n"
89 " it lo\n"
90 " strlo r2, [r3], #4\n"
91 " blo loc_fc02005c\n"
92 " b.w sub_fc064300_my\n"
93 
94  "patch_CreateTask:\n"
95  "ldr.w pc, [pc,#0]\n" // Do jump to absolute address CreateTask_my
96  ".long CreateTask_my + 1\n" // has to be a thumb address
97 );
98 }
void CreateTask_spytask ( )

Definiert in Zeile 29 der Datei boot.c.

30 {
31  _CreateTask("SpyTask", 0x19, 0x2000, spytask, 0);
32 }
void handle_jogdial ( )

Definiert in Zeile 115 der Datei kbd.c.

116 {
117  if (jogdial_stopped) {
118  // update positions in RAM
121  return 0; // return 0 to disable fw's dial handler
122  }
123  return 1;
124 }
void init_required_fw_features ( void  )

Definiert in Zeile 447 der Datei boot.c.

447  {
448  extern void _init_focus_eventflag();
449  extern void _init_nd_eventflag();
450 // extern void _init_nd_semaphore();
451  //extern void _init_zoom_semaphore(); // for MoveZoomLensWithPoint
452 
453  _init_focus_eventflag();
454  _init_nd_eventflag();
455  // for MoveIrisWithAv, based on fc3d1a74 (but without registers eventprocs)
456  extern int av_override_semaphore;
457  extern int _CreateBinarySemaphoreStrictly(int x, int y);
458  av_override_semaphore = _CreateBinarySemaphoreStrictly(0,0);
459 // _init_nd_semaphore();
460 }
void spytask ( long  ua,
long  ub,
long  uc,
long  ud,
long  ue,
long  uf 
)

Definiert in Zeile 20 der Datei boot.c.

21 {
22  (void)ua; (void)ub; (void)uc; (void)ud; (void)ue; (void)uf;
23  core_spytask();
24 }
void task_CaptSeq ( )
void task_ExpDrv ( )
void task_InitFileModules ( )
void task_MovieRecord ( )
void task_RotaryEncoder ( )

Variablen-Dokumentation

const char* const new_sa = &_end

Definiert in Zeile 5 der Datei boot.c.