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 42 der Datei boot.c.

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

442  {
443  extern void _init_focus_eventflag();
444  extern void _init_nd_eventflag();
445 // extern void _init_nd_semaphore();
446  //extern void _init_zoom_semaphore(); // for MoveZoomLensWithPoint
447 
448  _init_focus_eventflag();
449  _init_nd_eventflag();
450  // for MoveIrisWithAv, based on fc3d1a74 (but without registers eventprocs)
451  extern int av_override_semaphore;
452  extern int _CreateBinarySemaphoreStrictly(int x, int y);
453  av_override_semaphore = _CreateBinarySemaphoreStrictly(0,0);
454 // _init_nd_semaphore();
455 }
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.