Changeset 1268
- Timestamp:
- 08/04/11 20:12:49 (22 months ago)
- Location:
- trunk/platform/ixus300_sd4000
- Files:
-
- 7 edited
-
kbd.c (modified) (2 diffs)
-
lib.c (modified) (1 diff)
-
platform_camera.h (modified) (2 diffs)
-
shooting.c (modified) (1 diff)
-
sub/100d/lib.c (modified) (5 diffs)
-
sub/100d/stubs_entry_2.S (modified) (14 diffs)
-
sub/100d/stubs_min.S (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/platform/ixus300_sd4000/kbd.c
r1196 r1268 271 271 } 272 272 273 // Base values in Play Mode273 // Base values in playback 274 274 // physw_status[0] = 0x800C91F // 1 275 275 // physw_status[1] = 0xFFE // 2 (Mode Switch: Auto) … … 281 281 // physw_status[2] 0x20000 SD-Card READONLY 282 282 static KeyMap keymap[] = { 283 { 0, KEY_UP , 0x00000004 }, 284 { 0, KEY_DOWN , 0x00000001 }, 285 { 0, KEY_LEFT , 0x00000008 }, 286 { 0, KEY_RIGHT , 0x00000002 }, 287 { 1, KEY_SET , 0x00000040 }, 288 { 0, KEY_SHOOT_FULL , 0x00000800 },289 //{ 0, KEY_SHOOT_FULL , 0x00000900 }, // 0x00000800(KEY_SHOOT_FULL) + 0x00000100 (KEY_SHOOT_HALF)290 { 0, KEY_SHOOT_HALF , 0x00000100 }, 291 { 1, KEY_ZOOM_IN , 0x00000010 }, 292 { 1, KEY_ZOOM_OUT , 0x00000020 }, 293 { 1, KEY_MENU , 0x00000080 }, 283 { 0, KEY_UP , 0x00000004 }, // finsig2 284 { 0, KEY_DOWN , 0x00000001 }, // finsig2 285 { 0, KEY_LEFT , 0x00000008 }, // finsig2 286 { 0, KEY_RIGHT , 0x00000002 }, // finsig2 287 { 1, KEY_SET , 0x00000040 }, // finsig2 288 //{ 0, KEY_SHOOT_FULL , 0x00000800 }, 289 { 0, KEY_SHOOT_FULL , 0x00000900 }, // 0x00000800(KEY_SHOOT_FULL) + 0x00000100 (KEY_SHOOT_HALF), ToDo: still not shure if correct (related to problems with shoot_full?), finsig2 290 { 0, KEY_SHOOT_HALF , 0x00000100 }, // finsig2 291 { 1, KEY_ZOOM_IN , 0x00000010 }, // finsig2 292 { 1, KEY_ZOOM_OUT , 0x00000020 }, // finsig2 293 { 1, KEY_MENU , 0x00000080 }, // finsig2 294 294 { 0, KEY_PRINT , 0x0000000C }, // ALT Key workaround: KEY_UP + KEY_LEFT (camera has no print key) 295 295 { 0, 0, 0 } -
trunk/platform/ixus300_sd4000/lib.c
r1196 r1268 48 48 //ROM:FF997634 CMP R4, #0x94 <--- 49 49 int get_flash_params_count(void) { 50 return 148; // 0x94 = 148 50 return 148; // 0x94 = 148, finsig2 51 51 } 52 52 -
trunk/platform/ixus300_sd4000/platform_camera.h
r1265 r1268 31 31 32 32 #undef CAM_UNCACHED_BIT // shut up compiler 33 #define CAM_UNCACHED_BIT 0x40000000 // ROM:FF88A248 via ExMem.FreeCacheable() 33 #define CAM_UNCACHED_BIT 0x40000000 // ROM:FF88A248 via ExMem.FreeCacheable(), finsig2 34 34 35 35 #undef CAM_HAS_ERASE_BUTTON … … 75 75 #define cam_CalibrationIlluminant1 1 // ToDo: Daylight ? 76 76 77 #define CAM_RAW_ROWPIX 3816 // ROM:FFB28EEC 78 #define CAM_RAW_ROWS 2784 // ROM:FFB28EF4 77 #define CAM_RAW_ROWPIX 3816 // ROM:FFB28EEC or ROM:ff93c408, finsig2 78 #define CAM_RAW_ROWS 2784 // ROM:FFB28EF4 or ROM:ff93c414, finsig2 79 79 80 80 #define CAM_JPEG_WIDTH 3648 // JPEG Exif data or ROM:FFB28EFC -
trunk/platform/ixus300_sd4000/shooting.c
r1196 r1268 101 101 // PROPCASE 49 102 102 // Mapping between camera mode and PROPCASE_SHOOTING_MODE (modelist.h) 103 // finsig2 found 33324, 33323, 33320, 33322, 33321, 33288, 33289 in firmware but not in modemap 103 104 static const CapturemodeMap modemap[] = { 104 105 { MODE_AUTO, 32768 }, -
trunk/platform/ixus300_sd4000/sub/100d/lib.c
r1196 r1268 63 63 ***/ 64 64 long hook_raw_size() { 65 return 0xF32880; // 15935616 65 return 0xF32880; // 15935616, finsig2 66 66 } 67 67 … … 110 110 // ROM:FF919AD4 LDR R0, =0x40471000 <--- 111 111 void *vid_get_bitmap_fb() { 112 return (void*)0x40471000; // ROM:FF919AD4 or ROM:FFA347DC or ROM:FF85B154 112 return (void*)0x40471000; // ROM:FF919AD4 or ROM:FFA347DC or ROM:FF85B154, finsig2 113 113 } 114 114 … … 121 121 ***/ 122 122 void *vid_get_viewport_fb() { 123 return (void*)0x40587700; // ROM:FFB25ED8 or ROM:FFB25DFC 123 return (void*)0x40587700; // ROM:FFB25ED8 or ROM:FFB25DFC, finsig2 124 124 } 125 125 … … 127 127 // possible future use 128 128 void *vid_get_viewport_fb_d() { 129 return (void*)(*(int*)0x2AA4); // ROM:FF874770 0x2A50 + 0x54 129 return (void*)(*(int*)0x2AA4); // ROM:FF874770 0x2A50 + 0x54, value changes between 0x404ef900 and 0x40f210a0 in playback, record ist always 0x40f210a0 130 130 } 131 131 … … 134 134 // ROM:FFA04F84 ADR R1, a9999 ; "9999" 135 135 char *camera_jpeg_count_str() { 136 return (char*)0xA15B8; 136 return (char*)0xA15B8; // finsig2 137 137 } -
trunk/platform/ixus300_sd4000/sub/100d/stubs_entry_2.S
r1266 r1268 6 6 #define NULLSUB 0xFF810B1C 7 7 8 // --- not found by sigfinder8 // --- not found by finsig 9 9 NHSTUB(Lseek, 0xFF836ED4) // OK, same as lseek, like G11 10 10 NHSTUB(RefreshPhysicalScreen, 0xFFA12124) // OK, search String "ScreenUnLock", like G11 … … 50 50 51 51 52 // --- NULLSTUBS (not found by sigfinder)52 // --- NULLSTUBS (not found by finsig) 53 53 NHSTUB(UnsetZoomForMovie, NULLSUB) // nullsub_1, does not exist since canon firmware allow Zoom for Movie 54 54 NHSTUB(SetZoomActuatorSpeedPercent, NULLSUB) // ToDo: nullsub_1 … … 63 63 64 64 65 // --- stubs_entry.S ( sigfinder)65 // --- stubs_entry.S (finsig) 66 66 // ROM:FF96CBFC register libc function 67 67 //NHSTUB(AllocateMemory, 0xffab8cf0) // OK!! (malloc) … … 72 72 //NHSTUB(DeleteFile_Fut, 0xff836730) // OK! 73 73 //NHSTUB(ExecuteEventProcedure, 0xFF88B9C0) // cause shutdown, referens from FactoryMode Stuff and eventproc_export_ExecuteEventProcedure() 74 //NHSTUB(ExecuteEventProcedure, 0xFF88B948) // sigfinder, like SD990, OK74 //NHSTUB(ExecuteEventProcedure, 0xFF88B948) // finsig, like SD990, OK 75 75 //NHSTUB(ExitTask, 0xff81eacc) // OK!, eventproc 76 76 //NHSTUB(Fclose_Fut, 0xff8368ac) // OK!, eventproc … … 81 81 //NHSTUB(Fread_Fut, 0xff836958) // OK!, eventproc 82 82 //NHSTUB(FreeMemory, 0xffab8ce8) // OK!, eventproc 83 //NHSTUB(FreeUncacheableMemory, 0xff83a45c) // OK!! 83 //NHSTUB(FreeUncacheableMemory, 0xff83a45c) // OK!!, finsig2 84 84 //NHSTUB(Fseek_Fut, 0xff836a4c) // OK!, eventproc 85 85 //NHSTUB(Fwrite_Fut, 0xff8369ac) // OK!, eventproc 86 86 //NHSTUB(GetBatteryTemperature, 0xff8652a0) // OK 87 87 //NHSTUB(GetCCDTemperature, 0xff86522c) // OK 88 //NHSTUB(GetDrive_ClusterSize, 0xff871e30) // maybe ok, like D10 89 //NHSTUB(GetDrive_TotalClusters, 0xff871e64) // maybe ok 88 //NHSTUB(GetDrive_ClusterSize, 0xff871e30) // maybe ok, like D10, finsig2 89 //NHSTUB(GetDrive_TotalClusters, 0xff871e64) // maybe ok, finsig2 90 90 //NHSTUB(GetFocusLensSubjectDistance, 0xff9629b8) // maybe ok 91 //NHSTUB(GetFocusLensSubjectDistanceFromLens, 0xff962d40) // maybe ok 91 //NHSTUB(GetFocusLensSubjectDistanceFromLens, 0xff962d40) // maybe ok, finsig2 92 92 //NHSTUB(GetOpticalTemperature, 0xff865314) // maybe ok 93 93 //NHSTUB(GetParameterData, 0xff9975f4) // OK!, like SX210 … … 99 99 //NHSTUB(LocalTime, 0xff88923c) // OK 100 100 //NHSTUB(LockMainPower, 0xff895b78) // OK! 101 //NHSTUB(MakeDirectory_Fut, 0xff8367a4) // OK, like SD990 102 //NHSTUB(MoveFocusLensToDistance, 0xffb228b0) 101 //NHSTUB(MakeDirectory_Fut, 0xff8367a4) // OK, like SD990, finsig2 102 //NHSTUB(MoveFocusLensToDistance, 0xffb228b0) // finsig2 103 103 NHSTUB(MoveFocusLensToDistance, 0xFFB2289C) // ?!? 104 104 //NHSTUB(MoveZoomLensWithPoint, 0xffab6b64) // maybe ok 105 105 //NHSTUB(NewTaskShell, 0xff88f06c) // OK 106 //NHSTUB(Open, 0xff86f13c) // sigfinder, WRONG ?106 //NHSTUB(Open, 0xff86f13c) // finsig, WRONG ? 107 107 //NHSTUB(Open, 0xFF81A9E4) // open, don't cause shutdown 108 108 //NHSTUB(Open, 0xFF836D4C) // eventproc, like SX210, cause shutdown … … 110 110 //NHSTUB(PostLogicalEventToUI, 0xff893994) // OK!, eventproc 111 111 //NHSTUB(Read, 0xff81ac7c) // OK!! 112 //NHSTUB(RenameFile_Fut, 0xff836868) // sigfinder, WRONG!, does not point to function start112 //NHSTUB(RenameFile_Fut, 0xff836868) // finsig, WRONG!, does not point to function start, finsig2 113 113 NHSTUB(RenameFile_Fut, 0xFF83669C) // OK, like SD990 and G11 114 114 //NHSTUB(SetAutoShutdownTime, 0xff895bec) // OK 115 115 //NHSTUB(SetCurrentCaptureModeType, 0xff89e550) // OK 116 //NHSTUB(SetFileTimeStamp, 0xff9514c0) // sigfinder, WRONG!, does not point to function start116 //NHSTUB(SetFileTimeStamp, 0xff9514c0) // finsig, WRONG!, does not point to function start, finsig2 117 117 NHSTUB(SetFileTimeStamp, 0xFF837054) // maybe ok, like G11 and SX210 118 118 //NHSTUB(SetLogicalEventActive, 0xff8958b4) // OK … … 123 123 //NHSTUB(UnlockMainPower, 0xff895acc) // OK eventproc 124 124 125 //NHSTUB(UpdateMBROnFlash, 0xFF871CB0) // sigfinder, OK, "Make card bootable" does work (ROM:FFAB92B8 MakeScriptDisk -> ROM:FF871D5C aMakeScriptDisk -> ROM:FF871CB0 UpdateMBROnFlash)125 //NHSTUB(UpdateMBROnFlash, 0xFF871CB0) // finsig, OK, "Make card bootable" does work (ROM:FFAB92B8 MakeScriptDisk -> ROM:FF871D5C aMakeScriptDisk -> ROM:FF871CB0 UpdateMBROnFlash), finsig2 126 126 //NHSTUB(MakeSDCardBootable, 0xFF871D30) // not used 127 127 … … 132 132 //NHSTUB(_sqrt, 0xffb5cf50) 133 133 //NHSTUB(close, 0xff81aa94) // OK!!!, like D10 134 //NHSTUB(closedir, 0xffa95e28) // does not point to function start 134 //NHSTUB(closedir, 0xffa95e28) // does not point to function start, finsig2 135 135 NHSTUB(closedir, 0xFFA95C40) // OK, like SX210 136 //NHSTUB(closefastdir, 0xffa95e28) // sigfinder, WRONG!, does not point to function start136 //NHSTUB(closefastdir, 0xffa95e28) // finsig, WRONG!, does not point to function start, finsig2 137 137 NHSTUB(closefastdir, 0xFFA95C40) // aka. closedir 138 138 //NHSTUB(free, 0xff81415c) // OK! … … 141 141 //NHSTUB(kbd_p2_f, 0xff8340d0) // maybe ok 142 142 //NHSTUB(kbd_read_keys_r2, 0xff86122c) // OK! 143 //NHSTUB(lseek, 0xff836ee0) // sigfinder, WRONG!, does not point to function start143 //NHSTUB(lseek, 0xff836ee0) // finsig, WRONG!, does not point to function start 144 144 NHSTUB(lseek, 0xFF836ED4) // OK, same as Lseek 145 145 //NHSTUB(malloc, 0xff814100) // OK!, referens from AllocateUncacheableMemory, D10 is different … … 147 147 //NHSTUB(memcpy, 0xff83fae8) // OK!!, eventproc, like D10 148 148 //NHSTUB(memset, 0xffa15ddc) // OK!, eventproc 149 //NHSTUB(mkdir, 0xff837254) // OK!, like SX210 and G11 149 //NHSTUB(mkdir, 0xff837254) // OK!, like SX210 and G11, finsig2 150 150 //NHSTUB(mktime_ext, 0xff8ac9f0) // OK!, like SD990 and G11 151 151 //NHSTUB(open, 0xff81a9e4) // OK!!!, like D10 152 //NHSTUB(opendir, 0xffa95c90) // looks OK, AKA openfastdir, D10 is different 153 //NHSTUB(rand, 0xff820774) // OK 152 //NHSTUB(opendir, 0xffa95c90) // looks OK, AKA openfastdir, D10 is different, finsig2 153 //NHSTUB(rand, 0xff820774) // OK, finsig2 154 154 //NHSTUB(read, 0xff81ac7c) // OK! 155 //NHSTUB(srand, 0xff820768) // OK 155 //NHSTUB(srand, 0xff820768) // OK, finsig2 156 156 //NHSTUB(stat, 0xff836f1c) // OK, like G11 157 //NHSTUB(strcat, 0xff813f5c) // WRONG, does point to strncpy 157 //NHSTUB(strcat, 0xff813f5c) // WRONG, does point to strncpy, finsig2 158 158 NHSTUB(strcat, 0xFF8AC1AC) // OK!!, like G11 and D10 159 //NHSTUB(strchr, 0xff813fe4) // OK!!, like D10 159 //NHSTUB(strchr, 0xff813fe4) // OK!!, like D10, finsig2 160 160 //NHSTUB(strcmp, 0xff820628) // OK 161 161 //NHSTUB(strcpy, 0xff820610) // OK … … 163 163 //NHSTUB(strlen, 0xff814030) // OK 164 164 //NHSTUB(strncmp, 0xff813f98) // OK!, like D10 165 //NHSTUB(strncpy, 0xff813f5c) // OK! 166 //NHSTUB(strrchr, 0xff83fac0) // sigfinder, WRONG!165 //NHSTUB(strncpy, 0xff813f5c) // OK!, finsig2 166 //NHSTUB(strrchr, 0xff83fac0) // finsig, WRONG!, finsig2 167 167 NHSTUB(strrchr, 0xFF814008) // OK!!, like G11 and D10 168 168 //NHSTUB(strtol, 0xff83fdc8) // OK 169 169 //NHSTUB(strtolx, 0xff83fbcc) // OK 170 //NHSTUB(time, 0xff88981c) // looks simular to A720 170 //NHSTUB(time, 0xff88981c) // looks simular to A720, finsig2 171 171 //NHSTUB(vsprintf, 0xff8205d4) // OK! 172 172 //NHSTUB(write, 0xff81acdc) // OK, like SD990 and G11 … … 189 189 //NHSTUB(initialise_ptp_handlers_data, 0xFFA4E898) 190 190 NHSTUB(get_ptp_handler, 0xFFA4EC7C) 191 //NHSTUB(add_ptp_handler, 0xFFA4EABC) // sigfinderaddress ok191 //NHSTUB(add_ptp_handler, 0xFFA4EABC) // finsig address ok 192 192 NHSTUB(remove_ptp_handler, 0xFFA4EBB0) 193 193 NHSTUB(get_task_lists, 0xFF83544C) … … 196 196 NHSTUB(Rec2PB, 0xFF897590) // search String "AC:Rec2PB" 197 197 //NHSTUB(set_control_event, 0xFF8955C4) // via eventproc_export_IsControlEventActive (last call), levent_table contains control event id's (Logical Event Table) 198 //NHSTUB(set_control_event, 0xff895504) // sigfinderok (ptpcam --chdk mode command does work)199 //NHSTUB(reboot_fw_update, 0xffa9b228) // sigfinder address ok198 //NHSTUB(set_control_event, 0xff895504) // finsig ok (ptpcam --chdk mode command does work) 199 //NHSTUB(reboot_fw_update, 0xffa9b228) // finsig address ok, finsig2 200 200 201 201 -
trunk/platform/ixus300_sd4000/sub/100d/stubs_min.S
r1266 r1268 4 4 5 5 // --- already changed but unshure if 100% correct 6 DEF(physw_status, 0x32E94) // ROM:FF8347D4, in ShowPhySwStatus() search "GpioStatus" or ROM:FF833F4C 6 DEF(physw_status, 0x32E94) // ROM:FF8347D4, in ShowPhySwStatus() search "GpioStatus" or ROM:FF833F4C, finsig2 7 7 8 DEF(physw_run, 0x1C34) // ROM:FF834400, in task_PhySw() 0x1C28 + 0xC = 0x1C34 8 DEF(physw_run, 0x1C34) // ROM:FF834400, in task_PhySw() 0x1C28 + 0xC = 0x1C34, finsig2 9 9 10 10 // ROM:FF860864 LDR R0, =0x24A4 <--- … … 20 20 DEF(led_table, 0x24AC) // R0 -> 0x24A4 + 0x8 21 21 22 DEF(playrec_mode,0x2D78) // ROM:FF838AE4 (ROM:FF882328) search for String "MenuIn" 0x2D74 + 4, OK, play: 0x3, rec: 0x222 DEF(playrec_mode,0x2D78) // ROM:FF838AE4 (ROM:FF882328) search for String "MenuIn" 0x2D74 + 4, play: 0x3, rec: 0x2, finsig2 23 23 24 24 // like SX210 … … 39 39 // ROM:FFAC96BC LDR R0, [R1,R0,LSL#2] 40 40 // ROM:FFAC96C0 BX LR 41 DEF(FlashParamsTable, 0xFFC00624) // referenced at ROM:FFAC96B8 41 DEF(FlashParamsTable, 0xFFC00624) // referenced at ROM:FFAC96B8, finsig2 42 42 43 // ToDo: check if correct,in playback CHDK OSD does not hide if function menu is active43 // ToDo: in playback CHDK OSD does not hide if function menu is active 44 44 // ROM:FF890234, in function StartRecModeMenu() or eventproc_StartRecModeMenu() 45 //DEF(canon_menu_active, 0x303C) // ROM:FF890234 0x303C 46 DEF(canon_menu_active, 0x3040) // ROM:FF890234 0x303C + ROM:FF890238 4 45 DEF(canon_menu_active, 0x3040) // ROM:FF890234 0x303C + ROM:FF890238 4, finsig2 47 46 48 // ToDo: check if correct49 47 // if canon_shoot_menu_active is wrong enable CAM_SHOW_OSD_IN_SHOOT_MENU as a workaround to display CHDK OSD in record mode 50 DEF(canon_shoot_menu_active, 0x7B5D) // ROM:FF9ABD94 0x7B5C + ROM:FF9ABD98 1 48 DEF(canon_shoot_menu_active, 0x7B5D) // ROM:FF9ABD94 0x7B5C + ROM:FF9ABD98 1, finsig2 51 49 50 // Canon Logical Event Table 52 51 // search for string "PressRightButton" 53 DEF(levent_table, 0xFFB9F59C) 52 DEF(levent_table, 0xFFB9F59C) // finsig2 54 53 55 54 // ROM:FF96B418 or ROM:FF96A780 or ROM:FF96B0F8, found in task_MovieRecord() 56 DEF(movie_status, 0x6A14) // 0x69D8 + 0x3C, OK55 DEF(movie_status, 0x6A14) // 0x69D8 + 0x3C, finsig2 57 56 58 57 // ROM:FF99D340 … … 65 64 DEF(focus_busy, 0x67F0) // 0x67E8 + 0x8 ?!? 66 65 67 // ROM:FFACC8B4, search for "ZoomCon_EnterCaptModeChange" 68 DEF(zoom_status, 0x315B) // ?!? 66 // ROM:FFACC8B4, search for "ZoomCon_EnterCaptModeChange" ? 67 //DEF(zoom_status, 0x315B) // probably wrong... 68 DEF(zoom_status, 0xCEA4) // ToDo: verify, finsig2 69 69 70 70 // ROM:FFA114FC, called by RefreshPhysicalScreen() 71 DEF(full_screen_refresh, 0x926C) 71 DEF(full_screen_refresh, 0x926C) // finsig2 72 72 73 73 // ROM:FF96F398, like SX210 and SD990 74 DEF(some_flag_for_af_scan, 0x6DD8) 74 DEF(some_flag_for_af_scan, 0x6DD8) // finsig2 75 75 76 76 77 77 // --- ToDo: required ? 78 DEF(some_f_for_dng, 0xDEAD) // ??? TODO NOT FOUND!79 DEF(second_ext_for_dng, 0xDEAD) // ??? TODO NOT FOUND!78 DEF(some_f_for_dng, 0xDEAD) // ToDo: required or outdated? 79 DEF(second_ext_for_dng, 0xDEAD) // ToDo: required or outdated?
Note: See TracChangeset
for help on using the changeset viewer.