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 "dryos31.h"
#include "cache.h"
+ Include-Abhängigkeitsdiagramm für boot.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define offsetof(TYPE, MEMBER)   ((int) &((TYPE *)0)->MEMBER)
 

Funktionen

void JogDial_task_my (void)
 
void task_CaptSeq ()
 
void task_InitFileModules ()
 
void task_MovieRecord ()
 
void task_ExpDrv ()
 
void spytask (long ua, long ub, long uc, long ud, long ue, long uf)
 
void CreateTask_spytask ()
 
void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 
void init_required_fw_features (void)
 
void support_fi2_boot (void)
 

Variablen

const char *const new_sa = &_end
 
volatile int jogdial_stopped
 

Makro-Dokumentation

#define offsetof (   TYPE,
  MEMBER 
)    ((int) &((TYPE *)0)->MEMBER)

Definiert in Zeile 8 der Datei boot.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

*-------------------------------------------------------------------—

!!

IS_ERROR( hSoundHandle )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

__MovieRecorder_c__100

__MovieRecorder_c__100

Definiert in Zeile 51 der Datei boot.c.

51  {
52  asm volatile ( // capdis -f=chdk -s=0xfc02000d -c=43 PRIMARY.BIN 0xfc000000
53 " movw r0, #0x4000\n"
54 " movt r0, #0\n"
55 " mov sp, r0\n"
56 " bl sub_fc02007e\n"
57 " ldr r2, =0xc0242010\n"
58 " ldr r1, [r2]\n"
59 " orr r1, r1, #1\n"
60 " str r1, [r2]\n"
61 " ldr r0, =0xfceb1938\n"
62 " ldr r1, =0x010e1000\n"
63 " ldr r3, =0x01107d60\n"
64 "loc_fc02002a:\n"
65 " cmp r1, r3\n"
66 " itt lo\n"
67 " ldrlo r2, [r0], #4\n"
68 " strlo r2, [r1], #4\n"
69 " blo loc_fc02002a\n"
70 " ldr r0, =0x010e1000\n"
71 " ldr r1, =0x00026d60\n"
72 " bl sub_fc1267ca\n"
73 " ldr r0, =0xfced8698\n"
74 " ldr r1, =0xbfe10800\n"
75 " ldr r3, =0xbfe1741d\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 
83 // Install CreateTask patch
84 // use half words in case source or destination not word aligned
85  "adr r0, patch_CreateTask\n" // src: Patch data
86  "ldr r1, =hook_CreateTask\n" // dest: Address to patch (hook_ has thumb bit off)
87  "add r2, r0, #8\n" // two words
88 "task_hook_loop:\n"
89  "ldrh r3, [r0],#2\n"
90  "strh r3, [r1],#2\n"
91  "cmp r0,r2\n"
92  "blo task_hook_loop\n"
93 
94 " ldr r0, =0xfce64604\n"
95 " ldr r1, =0x00008000\n"
96 " ldr r3, =0x00055334\n"
97 "loc_fc02005a:\n"
98 " cmp r1, r3\n"
99 " itt lo\n"
100 " ldrlo r2, [r0], #4\n"
101 " strlo r2, [r1], #4\n"
102 " blo loc_fc02005a\n"
103 " ldr r3, =0x00055334\n"
104 " ldr r1, =0x003d6ffc\n"
105 " mov.w r2, #0\n"
106 "loc_fc020070:\n"
107 " cmp r3, r1\n"
108 " it lo\n"
109 " strlo r2, [r3], #4\n"
110 " blo loc_fc020070\n"
111 " b.w sub_fc06c500_my\n" // ->
112 
113 // CreateTask patch, must be aligned as the original
114  ".align 2\n"
115 "patch_CreateTask:\n"
116  "ldr.w pc, _createtask_my\n" // Do jump to absolute address CreateTask_my
117 "_createtask_my:\n"
118  ".long CreateTask_my + 1\n" // has to be a thumb address
119  ".align 1\n"
120 
121 );
122 }
void CreateTask_spytask ( )

Definiert in Zeile 34 der Datei boot.c.

35 {
36  _CreateTask("SpyTask", 0x19, 0x2000, spytask, 0);
37 }
void init_required_fw_features ( void  )

Definiert in Zeile 462 der Datei boot.c.

462  {
463  extern int _CreateBinarySemaphore(int, int);
464 
465  // aperture related semaphore
466  *(int*)0x2E804 = _CreateBinarySemaphore(0, 0);
467  // focuslens related semaphore (may not be needed as sd override does not work)
468  *(int*)(0x2E7E0+0xC) = _CreateBinarySemaphore(0, 0);
469 }
void JogDial_task_my ( void  )
void spytask ( long  ua,
long  ub,
long  uc,
long  ud,
long  ue,
long  uf 
)

Definiert in Zeile 25 der Datei boot.c.

26 {
27  (void)ua; (void)ub; (void)uc; (void)ud; (void)ue; (void)uf;
28  core_spytask();
29 }
void support_fi2_boot ( void  )

Definiert in Zeile 471 der Datei boot.c.

471  {
472  // following is for FI2 boot, see sub_FC07ED70
473  if (*(int*)0x9bbc == 0) *(int*)0x9bbc = 0x8000000; // playback
474 }
void task_CaptSeq ( )
void task_ExpDrv ( )
void task_InitFileModules ( )
void task_MovieRecord ( )

Variablen-Dokumentation

volatile int jogdial_stopped

Definiert in Zeile 81 der Datei kbd.c.

const char* const new_sa = &_end

Definiert in Zeile 10 der Datei boot.c.