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

gehe zum Quellcode dieser Datei

Funktionen

void task_CaptSeq ()
 
void task_InitFileModules ()
 
void task_ExpDrv ()
 
void CreateTask_spytask ()
 
void __attribute__ ((naked, noinline))
 
void patch_mzrm_sendmsg ()
 
void init_required_fw_features (void)
 

Variablen

const char *const new_sa = &_end
 
int physw0_override
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 32 der Datei boot.c.

34 {
35  asm volatile ( // 0xfc02000c
36  //capdis -f=chdk -s=0xfc02000d -c=43 -stubs PRIMARY.BIN 0xfc000000
37  " movw r0, #0x4000\n"
38  " movt r0, #0\n"
39  " mov sp, r0\n"
40  " bl sub_fc02007e\n"
41  " ldr r2, =0xc0242010\n"
42  " ldr r1, [r2]\n"
43  " orr r1, r1, #1\n"
44  " str r1, [r2]\n"
45  " ldr r0, =0xfcee2140\n"
46  " ldr r1, =0x010e1000\n"
47  " ldr r3, =0x010fbd18\n"
48  "loc_fc02002a:\n"
49  " cmp r1, r3\n"
50  " itt lo\n"
51  " ldrlo r2, [r0], #4\n"
52  " strlo r2, [r1], #4\n"
53  " blo loc_fc02002a\n"
54  " ldr r0, =0x010e1000\n"
55  " ldr r1, =0x0001ad18\n"
56  " bl sub_fc150d5a\n"
57  " ldr r0, =0xfcefce58\n"
58  " ldr r1, =0xbfe10800\n"
59  " ldr r3, =0xbfe176a9\n"
60  "loc_fc020046:\n"
61  " cmp r1, r3\n"
62  " itt lo\n"
63  " ldrlo r2, [r0], #4\n"
64  " strlo r2, [r1], #4\n"
65  " blo loc_fc020046\n"
66 
67  // Install CreateTask patch
68  " adr r0, patch_CreateTask\n" // Patch data
69  " ldm r0, {r1,r2}\n" // Get two patch instructions
70  " ldr r0, =hook_CreateTask\n" // Address to patch, thumb bit is clear in stubs_entry.S
71  " stm r0, {r1,r2}\n" // Store patch instructions
72 
73  " ldr r0, =0xfceacacc\n"
74  " ldr r1, =0x00008000\n"
75  " ldr r3, =0x0003d674\n"
76  "loc_fc02005a:\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_fc02005a\n"
82  " ldr r3, =0x0003d674\n"
83  " ldr r1, =0x0039124c\n"
84  " mov.w r2, #0\n"
85  "loc_fc020070:\n"
86  " cmp r3, r1\n"
87  " it lo\n"
88  " strlo r2, [r3], #4\n"
89  " blo loc_fc020070\n"
90 
91  " blx patch_mzrm_sendmsg\n"
92 
93  " b.w sub_fc066258_my\n" // Patched
94 
95  "patch_CreateTask:\n"
96  " ldr.w pc, [pc,#0]\n" // Do jump to absolute address CreateTask_my
97  " .long CreateTask_my + 1\n" // has to be a thumb address
98  );
99 }
void CreateTask_spytask ( )

Definiert in Zeile 20 der Datei boot.c.

21 {
22  _CreateTask ("SpyTask", 0x19, 0x2000, core_spytask, 0);
23 }
void init_required_fw_features ( void  )

Definiert in Zeile 467 der Datei boot.c.

468 {
469 // extern void _init_focus_eventflag();
470 // _init_focus_eventflag();
471 // extern void _init_nd_eventflag();
472 // _init_nd_eventflag();
473  extern int av_override_semaphore;
474  extern int _CreateBinarySemaphoreStrictly(int x, int y);
475  av_override_semaphore = _CreateBinarySemaphoreStrictly(0,0);
476 }
void patch_mzrm_sendmsg ( )

Definiert in Zeile 134 der Datei boot.c.

135 {
136  extern int debug_logging_flag;
137  extern void (*debug_logging_ptr)(char* fmt, ...);
138 
139  // Each bit in debug_logging_flag enables logging in different areas of the firmware code - only set the bit required for mzrm logging.
140  debug_logging_flag = 0x200;
141  debug_logging_ptr = debug_logging_my;
142 }
void task_CaptSeq ( )
void task_ExpDrv ( )
void task_InitFileModules ( )

Variablen-Dokumentation

const char* const new_sa = &_end

Definiert in Zeile 8 der Datei boot.c.

int physw0_override

Definiert in Zeile 122 der Datei kbd.c.