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

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

Definiert in Zeile 33 der Datei boot.c.

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

Definiert in Zeile 463 der Datei boot.c.

463  {
464  extern int _CreateBinarySemaphore(int, int);
465 
466  // aperture related semaphore
467  *(int*)0x2E804 = _CreateBinarySemaphore(0, 0);
468  // focuslens related semaphore (may not be needed as sd override does not work)
469  *(int*)(0x2E7E0+0xC) = _CreateBinarySemaphore(0, 0);
470 }
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  core_spytask();
28 }
void support_fi2_boot ( void  )

Definiert in Zeile 472 der Datei boot.c.

472  {
473  // following is for FI2 boot, see sub_FC07ED70
474  if (*(int*)0x9bbc == 0) *(int*)0x9bbc = 0x8000000; // playback
475 }
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.