Hi chr !Congrats, it seems udumper2008 is really universal (well, at least A590 = ok )
To make it easier to use for noobs, I was thinking aboutintegrating it in CardTricks, is that OK with you ?
BTW, is there any reason why you're using a 16M empty.bin,so far all known firms fitted in 8M ?
Maybe the LED blinking code should be stripped out ? Just likein the original udumper, to minimize risk on other cams. Wouldgladly do that myself, but porting decode.s to C is (way) out ofmy league ...
// Extracted method: (ff81cd28-ff81cd80)void __attribute__((naked,noinline)) task_Startup_my() { //#fs blink_LED_GREEN(); asm volatile ( "stmdb sp!, {r4, lr} \n" "BL sub_FF8151BC \n" // <taskcreate_ClockSave -31600> "BL sub_FF822E14 \n" "BL sub_FF81FEB8 \n" "BL sub_FF829FE4 \n" "BL sub_FF82A1AC \n"// "BL sub_FF82A06C \n" // <StartDiskboot +54060> ); CreateTask_blinker();// CreateTask_spytask(); // + asm volatile ( "BL sub_FF82A360 \n" "BL sub_FF82A1FC \n" "BL sub_FF82786C \n" "BL sub_FF82A364 \n" "BL sub_FF821BC8 \n" // <taskcreate_PhySw +20084> ); //CreateTask_PhySw; // + asm volatile ( "BL sub_FF824D7C \n" // task_ShootSeqTask// "BL sub_FF824D7C_my \n" // ------------------------> ok "BL sub_FF82A37C \n" "BL sub_FF81FBD8 \n" "BL sub_FF821084 \n" "BL sub_FF829D6C \n" // <taskcreate_Bye +53252> "BL sub_FF8216F8 \n" "BL sub_FF820F74 \n" // <taskcreate_TempCheck +16900> "BL sub_FF82ACC4 \n" // for SDHC and movie rec// "BL sub_FF82ACC4_my \n" // ------------------------> clock dead "BL sub_FF820F30 \n" "BL sub_FF815070 \n"//"bl blink_LED_PR \n"//"BL udump \n"//"bl blink_LED_PR \n""BL blink_LED_YELLOW \n""BL blink_LED_YELLOW \n""BL blink_LED_YELLOW \n""BL blink_LED_YELLOW \n""BL blink_LED_YELLOW \n""BL blink_LED_YELLOW \n"//"rofl: \n"//" b rofl \n" "ldmia sp!, {r4, pc} \n" // "ldmia sp!, {r4, lr} \n"// "B sub_FF815070 \n" );}; //#fe
The cam boots, but it shuts down.
Without any hooks, the cam must power up normal, no?!
Code: (c) [Select] "ldmia sp!, {r4, pc} \n"// "ldmia sp!, {r4, lr} \n"// "B sub_FF815070 \n" );}; //#fe
"ldmia sp!, {r4, pc} \n"// "ldmia sp!, {r4, lr} \n"// "B sub_FF815070 \n" );}; //#fe
ROM:FF815070 sub_FF815070 ; CODE XREF: task_Startup+58pROM:FF815070 STMFD SP!, {R4,LR}ROM:FF815074 BL j_IRQdisableROM:FF815078 LDR R2, =0x1998ROM:FF81507C LDR R1, [R2,#4]ROM:FF815080 CMP R1, #0ROM:FF815084 SUBNE R1, R1, #1ROM:FF815088 STRNE R1, [R2,#4]ROM:FF81508C LDMNEFD SP!, {R4,LR}ROM:FF815090 BNE j_IRQrestoreROM:FF815094 BL j_IRQrestoreROM:FF815098 LDMFD SP!, {R4,LR}ROM:FF81509C MOV R1, #0x90ROM:FF8150A0 ADR R0, aClkenabler_c ; "ClkEnabler.c"ROM:FF8150A4 B DebugAssertROM:FF8150A4 ; End of function sub_FF815070
void sub_FF815070() { IRQdisable(); if ([0x1998+4] != 0) { [0x1998+4]--; IRQenable(); } else { IRQenable(); DebugAssert(); }}
Quote from: chr on 17 / August / 2008, 07:06:14The cam boots, but it shuts down.It starts normally, i.e. lens extracts, OSD shows and so on?
QuoteWithout any hooks, the cam must power up normal, no?!One exception: start_diskboot must be prevented - which you do. So, yes, the cam should start up normally.
QuoteCode: (c) [Select] "ldmia sp!, {r4, pc} \n"// "ldmia sp!, {r4, lr} \n"// "B sub_FF815070 \n" );}; //#feYou realize, that you skip sub_FF815070 that way?
Another Idea: If the cam starts and runs normally as long as task_startyp_my is running, you may just need to prevent it from returning => while (1) {};
"rofl: \n"" b rofl \n"
In general: If the cam doesn't work after task_startup has run, something before must have gone wrong. I had the situation where my code has been overwritten. I moved it 64k (or so) higher and everything worked.Cheers.
IO write 0xc0800018, 0x0IO write 0xc0800008, 0x8881IO write 0xc0220134, 0x46 <- green led ;)IO write 0xc0220134, 0x44IO read 0xc02200f8< Error Exception > TYPE : undefined ISR : FALSE TASK ID : 131074 TASK Name : init R 0 : 19980218 R 1 : 19980218 R 2 : 00001000 R 3 : 00000000 R 4 : 19980218 R 5 : 19980218 R 6 : 19980218 R 7 : 19980218 R 8 : 19980218 R 9 : 19980218 R10 : 19980218 R11 : 19980218 R12 : 00000000 R13 : 0000ee8c R14 : ff811904 PC : ff811904 CPSR : 00000093IO write 0xc0220134, 0x46IO write 0xc0220134, 0x44IO write 0xc0400030, 0x1IO read 0xc040004c
Started by dcollett General Help and Assistance on using CHDK stable releases
Started by wordsonapage RAW Shooting and Processing
Started by dascooby General Help and Assistance on using CHDK stable releases
Started by dudemeister General Help and Assistance on using CHDK stable releases
Started by maniattico General Help and Assistance on using CHDK stable releases