CHDK_DE Vorschauversion  Trunk Rev. 5426
 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 41 der Datei boot.c.

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

Definiert in Zeile 28 der Datei boot.c.

29 {
30  _CreateTask("SpyTask", 0x19, 0x2000, spytask, 0);
31 }
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 441 der Datei boot.c.

441  {
442  extern void _init_focus_eventflag();
443  extern void _init_nd_eventflag();
444 // extern void _init_nd_semaphore();
445  //extern void _init_zoom_semaphore(); // for MoveZoomLensWithPoint
446 
447  _init_focus_eventflag();
448  _init_nd_eventflag();
449  // for MoveIrisWithAv, based on fc3d1a74 (but without registers eventprocs)
450  extern int av_override_semaphore;
451  extern int _CreateBinarySemaphoreStrictly(int x, int y);
452  av_override_semaphore = _CreateBinarySemaphoreStrictly(0,0);
453 // _init_nd_semaphore();
454 }
void spytask ( long  ua,
long  ub,
long  uc,
long  ud,
long  ue,
long  uf 
)

Definiert in Zeile 20 der Datei boot.c.

21 {
22  core_spytask();
23 }
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.