Changeset 1581 for branches/release-1_0
- Timestamp:
- 01/20/12 02:35:19 (16 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/release-1_0/platform/sx150is/sub/100a/lib.c
r1415 r1581 7 7 #include "platform.h" 8 8 9 char *hook_raw_image_addr() 10 { 11 /* 12 ROM:FFB102F0 LDR R6, =0x41F3B020 <<<<<<<<<<<<<<< 13 ROM:FFB102F4 LDR R4, =0x41876740 14 ROM:FFB102F8 LDR R5, =0x409A0520 15 ROM:FFB10328 BL sub_FF93AC08 16 ROM:FFB1032C MOV R1, R4 17 ROM:FFB10330 ADR R0, aImgVramBuffP ; "IMG VRAM BUFF %p" 18 ROM:FFB10334 BL sub_FF93AC08 19 ROM:FFB10338 MOV R1, R5 20 ROM:FFB1033C ADR R0, aThumVramBuffP ; "THUM VRAM BUFF %p" 21 ROM:FFB10340 BL sub_FF93AC08 22 ROM:FFB10344 MOV R1, R6 23 ROM:FFB10348 ADR R0, aCrawBuffP ; "CRAW BUFF %p" 24 ROM:FFB1034C BL sub_FF93AC08 25 ROM:FFB10350 LDR R1, =0x11CA240 <<<<<<<<<<<<<< 26 ROM:FFB10354 ADR R0, aCrawBuffSizeP ; "CRAW BUFF SIZE %p" 27 */ 28 return (char*)(0x41F3B020); 29 } 30 31 /* 32 ROM:FFB0FF90 ; --------------------------------------------------------------------------- 33 ROM:FFB0FF90 34 ROM:FFB0FF90 loc_FFB0FF90 ; CODE XREF: sub_FFB0FF50+10j 35 ROM:FFB0FF90 MOV R0, #0xFF0 // raw sensor size X - 4080 36 ROM:FFB0FF94 STR R0, [R1] 37 ROM:FFB0FF98 LDR R0, =0xBE8 // raw sensor size Y - 3048 38 ROM:FFB0FF9C STR R0, [R1,#4] 39 ROM:FFB0FFA0 MOV R0, #0xFA0 // cropped size X - 4000 40 ROM:FFB0FFA4 STR R0, [R1,#8] 41 ROM:FFB0FFA8 SUB R0, R0, #0x3E8 // cropped size Y - (4000 - 1000) = 3000 42 ROM:FFB0FFAC 43 ROM:FFB0FFAC loc_FFB0FFAC ; CODE XREF: sub_FFB0FF50+3Cj 44 ROM:FFB0FFAC STR R0, [R1,#0xC] 45 ROM:FFB0FFB0 MOV R0, #0 46 ROM:FFB0FFB4 BX LR 47 ROM:FFB0FFB4 ; End of function sub_FFB0FF50 48 49 */ 50 51 /* 52 Raw buffer size 0x11CA240 / 12 * 8 = 0xBDC180 pixels ( RAW 12 bit per pixel) 53 4080 * 3048 = 12435840 pixels 54 0xFF0 * 0xBE8 = 0xBDC180 pixels 55 same senzor as SX200, SX20 ( probably?) 56 57 ROM:FF9397C8 loc_FF9397C8 ; CODE XREF: sub_FF939780+3Cj 58 ROM:FF9397C8 LDR R1, =0x41F3B020 59 ROM:FF9397CC MOV R2, #0xFF0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60 ROM:FF9397D0 LDR R3, =0xBE8 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 61 ROM:FF9397D4 STMFA SP, {R1,R2} 62 ROM:FF9397D8 ADR R0, aCrwaddressLxCr ; " CrwAddress %lx, CrwSize H %ld V %ld\r" 63 64 65 */ 66 long hook_raw_size() 9 char *hook_raw_image_addr() 10 { 11 /* 12 ROM:FFB4FFE8 LDR R5, =0x4159DBE0 13 ROM:FFB4FFEC LDR R4, =0x409DC9F0 14 ROM:FFB4FFF0 LDR R6, =0x41D65F00 <<<<<<<<<<<<<<< 15 ROM:FFB50008 ADR R0, aJpegBuffPLx ; "JPEG BUFF %p ( %lx )" 16 ROM:FFB50020 BL sub_FF950780 17 ROM:FFB50024 MOV R1, R5 18 ROM:FFB50028 ADR R0, aImgVramBuffP ; "IMG VRAM BUFF %p" 19 ROM:FFB5002C BL sub_FF950780 20 ROM:FFB50030 MOV R1, R4 21 ROM:FFB50034 ADR R0, aThumVramBuffP ; "THUM VRAM BUFF %p" 22 ROM:FFB50038 BL sub_FF950780 23 ROM:FFB5003C MOV R1, R6 24 ROM:FFB50040 ADR R0, aCrawBuffP ; "CRAW BUFF %p" 25 ROM:FFB50044 BL sub_FF950780 26 ROM:FFB50048 LDR R1, =0x14EB7E0 27 ROM:FFB5004C ADR R0, aCrawBuffSizeP ; "CRAW BUFF SIZE %p" 28 */ 29 return (char*)(0x41D65F00); 30 } 31 32 /* 33 ROM:FFB50048 LDR R1, =0x14EB7E0 <<<<<<<<<<<<<<< 34 ROM:FFB5004C ADR R0, aCrawBuffSizeP ; "CRAW BUFF SIZE %p" 35 */ 36 long hook_raw_size() 67 37 { 68 38 return 0x014eb7e0; … … 71 41 72 42 73 // Live picture buffer (shoot not pressed) 43 // Live picture buffer (shoot not pressed) 74 44 void *vid_get_viewport_live_fb() 75 45 { … … 86 56 { 87 57 /* 88 ROM:FF9177B8 ; =============== S U B R O U T I N E ======================================= 89 ROM:FF9177B8 90 ROM:FF9177B8 ; LOCATION: BmpDDev.c:0 91 ROM:FF9177B8 92 ROM:FF9177B8 EXPORT _sub_FF9177B8__BmpDDev.c__0 93 ROM:FF9177B8 _sub_FF9177B8__BmpDDev.c__0 ; CODE XREF: sub_FFA0D168+48p 94 ROM:FF9177B8 STMFD SP!, {R4-R8,LR} 95 ROM:FF9177BC LDR R8, =0x5BA0 96 ROM:FF9177C0 MOV R4, R0 97 ROM:FF9177C4 LDR R0, [R8,#0x10] 98 ROM:FF9177C8 MOV R5, R1 99 ROM:FF9177CC CMP R0, #1 100 ROM:FF9177D0 LDREQ R1, =0x17F 101 ROM:FF9177D4 ADREQ R0, aBmpddev_c ; "BmpDDev.c" 102 ROM:FF9177D8 MOV R7, R3 103 ROM:FF9177DC MOV R6, R2 104 ROM:FF9177E0 BLEQ DebugAssert 105 ROM:FF9177E4 CMP R4, #0 106 ROM:FF9177E8 CMPNE R5, #0 107 ROM:FF9177EC CMPNE R6, #0 108 ROM:FF9177F0 CMPNE R7, #0 109 ROM:FF9177F4 LDREQ R1, =0x182 110 ROM:FF9177F8 ADREQ R0, aBmpddev_c ; "BmpDDev.c" 111 ROM:FF9177FC BLEQ DebugAssert 112 ROM:FF917800 MOV R0, #0x2D0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Height 0x2D0 dec 720 113 ROM:FF917804 MOV R1, #0xF0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Width 0xF0 dec 240 114 ROM:FF917808 STR R0, [R4] 115 ROM:FF91780C STR R1, [R5] 116 ROM:FF917810 STR R0, [R6] 117 ROM:FF917814 LDR R0, =0x403F1000 <<<<<<<<<<<<<<<<< 118 ROM:FF917818 STR R0, [R7] 119 ROM:FF91781C MOV R0, #1 120 ROM:FF917820 STR R0, [R8,#0x10] 121 ROM:FF917824 MOV R0, #0 122 ROM:FF917828 LDMFD SP!, {R4-R8,PC} 123 ROM:FF917828 ; End of function _sub_FF9177B8__BmpDDev.c__0 124 ROM:FF917828 125 ROM:FF91782C 126 */ 127 return (void*)0x403f1000; 128 } 129 130 131 // Live picture buffer (shoot half-pressed) 58 ROM:FF92A878 sub_FF92A878 ; CODE XREF: sub_FFA2DAC0+48p 59 ROM:FF92A878 STMFD SP!, {R4-R8,LR} 60 ROM:FF92A87C LDR R8, =0x5D88 61 ROM:FF92A880 MOV R4, R0 62 ROM:FF92A884 LDR R0, [R8,#0x10] 63 ROM:FF92A888 MOV R5, R1 64 ROM:FF92A88C CMP R0, #1 65 ROM:FF92A890 MOV R6, R2 66 ROM:FF92A894 MOV R7, R3 67 ROM:FF92A898 MOVEQ R1, #0x18C 68 ROM:FF92A89C ADREQ R0, aBmpddev_c ; "BmpDDev.c" 69 ROM:FF92A8A0 BLEQ sub_FF81EDBC 70 ROM:FF92A8A4 CMP R4, #0 71 ROM:FF92A8A8 CMPNE R5, #0 72 ROM:FF92A8AC CMPNE R6, #0 73 ROM:FF92A8B0 CMPNE R7, #0 74 ROM:FF92A8B4 LDREQ R1, =0x18F 75 ROM:FF92A8B8 ADREQ R0, aBmpddev_c ; "BmpDDev.c" 76 ROM:FF92A8BC BLEQ sub_FF81EDBC 77 ROM:FF92A8C0 MOV R0, #0x2D0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Height 0x2D0 dec 720 78 ROM:FF92A8C4 MOV R1, #0xF0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Width 0xF0 dec 240 79 ROM:FF92A8C8 STR R0, [R4] 80 ROM:FF92A8CC STR R1, [R5] 81 ROM:FF92A8D0 STR R0, [R6] 82 ROM:FF92A8D4 LDR R0, =0x403F1000 <<<<<<<<<<<<<<<<< 83 ROM:FF92A8D8 STR R0, [R7] 84 ROM:FF92A8DC MOV R0, #1 85 ROM:FF92A8E0 STR R0, [R8,#0x10] 86 ROM:FF92A8E4 MOV R0, #0 87 ROM:FF92A8E8 LDMFD SP!, {R4-R8,PC} 88 ROM:FF92A8E8 ; End of function sub_FF92A878 89 */ 90 return (void*)0x403f1000; 91 } 92 93 94 // Live picture buffer (shoot half-pressed) 132 95 void *vid_get_viewport_fb() 133 96 { 134 97 /* 135 ROM:FFB 0CEB8 loc_FFB0CEB8 ; CODE XREF: sub_FFB0CE7C+28j136 ROM:FFB 0CEB8 MOV R2, R7137 ROM:FFB 0CEBC MOV R1, R6138 ROM:FFB 0CEC0 MOV R0, R5139 ROM:FFB 0CEC4 BL sub_FF85263C140 ROM:FFB 0CEC8 LDR R1, =0x40507700 <<<<<<<<<<<<<<<<<<<141 ROM:FFB 0CECC LDR R0, =0x3F480142 ROM:FFB 0CED0 STR R1, [R4]143 ROM:FFB 0CED4 STR R0, [R4,#4]144 ROM:FFB 0CED8 ADR R0, aVramAddressP ; "VRAM Address : %p\r"145 ROM:FFB 0CEDC BL sub_FF93AC08146 ROM:FFB 0CEE0 LDR R1, [R4,#4]147 ROM:FFB 0CEE4 ADR R0, aVramSize0xX ; "VRAM Size : 0x%x\r"148 ROM:FFB 0CEE8 BL sub_FF93AC08149 ROM:FFB 0CEEC MOV R0, #0150 ROM:FFB 0CEF0 LDMFD SP!, {R4-R8,PC}151 ROM:FFB 0CEF0 ; End of function sub_FFB0CE7C152 */ 153 154 155 return (void*)0x40546 b80;98 ROM:FFB4D218 loc_FFB4D218 ; CODE XREF: sub_FFB4D1DC+28j 99 ROM:FFB4D218 MOV R2, R7 100 ROM:FFB4D21C MOV R1, R6 101 ROM:FFB4D220 MOV R0, R5 102 ROM:FFB4D224 BL sub_FF855380 103 ROM:FFB4D228 LDR R1, =0x40546B80 <<<<<<<<<<<<<<<<<<< 104 ROM:FFB4D22C LDR R0, =0x3F480 105 ROM:FFB4D230 STR R1, [R4] 106 ROM:FFB4D234 STR R0, [R4,#4] 107 ROM:FFB4D238 ADR R0, aVramAddressP ; "VRAM Address : %p\r" 108 ROM:FFB4D23C BL sub_FF950780 109 ROM:FFB4D240 LDR R1, [R4,#4] 110 ROM:FFB4D244 ADR R0, aVramSize0xX ; "VRAM Size : 0x%x\r" 111 ROM:FFB4D248 BL sub_FF950780 112 ROM:FFB4D24C MOV R0, #0 113 ROM:FFB4D250 LDMFD SP!, {R4-R8,PC} 114 ROM:FFB4D250 ; End of function sub_FFB4D1DC 115 */ 116 117 118 return (void*)0x40546B80; 156 119 } 157 120 … … 161 124 162 125 /* 163 ROM:FF872090 ; =============== S U B R O U T I N E ======================================= 164 ROM:FF872090 165 ROM:FF872090 ; LOCATION: ImagePlayer.c:0 166 ROM:FF872090 167 ROM:FF872090 EXPORT _sub_FF872090__ImagePlayer.c__0 168 ROM:FF872090 _sub_FF872090__ImagePlayer.c__0 ; CODE XREF: _sub_FF882734__VisualHandle.c__154+1B4 p 169 ROM:FF872090 ; sub_FF882908+94 p ... 170 ROM:FF872090 STMFD SP!, {R1-R7,LR} 171 ROM:FF872094 LDR R7, =0x2710 172 ROM:FF872098 LDR R5, =0x2A70 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 173 ROM:FF87209C LDR R3, =0x6CE 174 ROM:FF8720A0 LDR R2, =aImageplayer_c ; "ImagePlayer.c" 175 ROM:FF8720A4 LDR R0, [R5,#0x4C] 176 ROM:FF8720A8 MOV R1, R7 177 ROM:FF8720AC BL sub_FF83A488 178 ROM:FF8720B0 MOV R0, #1 179 ROM:FF8720B4 BL sub_FF871280 180 ROM:FF8720B8 CMN R0, #1 181 ROM:FF8720BC BEQ loc_FF87218C 182 ROM:FF8720C0 LDR R4, =0x37A4C 183 ROM:FF8720C4 ADD R1, R0, R0,LSL#2 184 ROM:FF8720C8 LDR R0, [R4,R1,LSL#2] 185 ROM:FF8720CC MOV R3, #0 186 ROM:FF8720D0 ADR R2, sub_FF871988 187 ROM:FF8720D4 ADD R12, R4, R1,LSL#2 188 ROM:FF8720D8 STR R0, [R5,#0x58] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 189 ROM:FF8720DC LDR R1, [R12,#0xC] 190 ROM:FF8720E0 STMEA SP, {R1-R3} 191 ROM:FF8720E4 LDR R3, [R12,#8] 192 ROM:FF8720E8 MOV R2, #0 193 ROM:FF8720EC MOV R1, #0 194 ROM:FF8720F0 BL _sub_FF918DA8__ImgDDev.c__6 ; LOCATION: ImgDDev.c:6 195 ROM:FF8720F4 TST R0, #1 196 ROM:FF8720F8 LDRNE R1, =0x6F4 197 ROM:FF8720FC LDRNE R0, =aImageplayer_c ; "ImagePlayer.c" 198 */ 199 200 return (void*)(*(int*) (0x2A70+0x58)); 201 } 126 ROM:FF8780C4 ; =============== S U B R O U T I N E ======================================= 127 ROM:FF8780C4 128 ROM:FF8780C4 129 ROM:FF8780C4 sub_FF8780C4 ; CODE XREF: sub_FF889880+1BCp 130 ROM:FF8780C4 ; sub_FF889A5C+90p ... 131 ROM:FF8780C4 STMFD SP!, {R1-R7,LR} 132 ROM:FF8780C8 LDR R5, =0x2710 133 ROM:FF8780CC LDR R4, =0x2BA8 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 134 ROM:FF8780D0 LDR R3, =0x6D1 135 ROM:FF8780D4 LDR R2, =aImageplayer_c ; "ImagePlayer.c" 136 ROM:FF8780D8 LDR R0, [R4,#0x4C] 137 ROM:FF8780DC MOV R1, R5 138 ROM:FF8780E0 BL sub_FF83AB9C 139 ROM:FF8780E4 MOV R0, #1 140 ROM:FF8780E8 BL sub_FF8772A8 141 ROM:FF8780EC CMN R0, #1 142 ROM:FF8780F0 BEQ loc_FF8781C0 143 ROM:FF8780F4 LDR R6, =0x382F4 144 ROM:FF8780F8 ADD R1, R0, R0,LSL#2 145 ROM:FF8780FC LDR R0, [R6,R1,LSL#2] 146 ROM:FF878100 ADD R12, R6, R1,LSL#2 147 ROM:FF878104 STR R0, [R4,#0x58] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 148 ROM:FF878108 LDR R1, [R12,#0xC] 149 ROM:FF87810C LDR R2, =sub_FF8779C4 150 ROM:FF878110 MOV R3, #0 151 ROM:FF878114 STMEA SP, {R1-R3} 152 ROM:FF878118 MOV R2, #0 153 ROM:FF87811C LDR R3, [R12,#8] 154 ROM:FF878120 MOV R1, R2 155 ROM:FF878124 BL sub_FF92C098 156 ROM:FF878128 TST R0, #1 157 ROM:FF87812C LDRNE R1, =0x6F7 158 ROM:FF878130 LDRNE R0, =aImageplayer_c ; "ImagePlayer.c" 159 */ 160 161 return (void*)(*(int*) (0x2BA8+0x58)); 162 } 202 163 203 164 char *camera_jpeg_count_str() 204 165 /* 205 ROM:FF9FF420 loc_FF9FF420 ; CODE XREF: sub_FF9FF35C+50 j 206 ROM:FF9FF420 SUBS R12, R0, #0x2700 207 ROM:FF9FF424 SUBCSS R12, R12, #0xF 208 ROM:FF9FF428 BCC loc_FF9FF43C 209 ROM:FF9FF42C LDR R0, =0xB33A4 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 210 ROM:FF9FF430 ADR R1, a9999 ; "9999" 211 ROM:FF9FF434 BL eventproc_export_sprintf 212 ROM:FF9FF438 B loc_FF9FF44C 213 ROM:FF9FF43C ; --------------------------------------------------------------------------- 166 ROM:FFA1EA90 ; jumptable FFA1E9E8 entry 2 167 ROM:FFA1EA90 LDR R0, =0x270F 168 ROM:FFA1EA94 CMP R1, R0 169 ROM:FFA1EA98 BCC loc_FFA1EAAC 170 ROM:FFA1EA9C LDR R0, =0xBA380 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 171 ROM:FFA1EAA0 ADR R1, a9999 ; "9999" 172 ROM:FFA1EAA4 BL sprintf 173 ROM:FFA1EAA8 B loc_FFA1EABC 214 174 */ 215 175 { … … 219 179 long vid_get_bitmap_screen_width() 220 180 { 221 return 360; 181 return 360; 222 182 } 223 183 … … 238 198 239 199 240 long vid_get_bitmap_buffer_width() { return 720; } 241 242 long vid_get_bitmap_buffer_height() { return 240; } 200 long vid_get_bitmap_buffer_width() { return 720; } 201 202 long vid_get_bitmap_buffer_height() { return 240; } 243 203 244 204 … … 257 217 _PostLogicalEventForNotPowerType(0x875, 2); // RotateJogDialLeft 258 218 } 259 */ 219 */ 260 220 261 221 /* … … 263 223 GetBatteryTemperature usually will get back temperature of battery compartment/batteries. GetBatteryTemperature is implemented in Canon's firmware for SX120IS. 264 224 Firmware entry point is identified (0xFFC394D8) but function is not usable. Camera will crash if Canon's GetBatteryTemperature is called by CHDK. 265 To avoid a crash Canon's GetBatteryTemperature must not called. As long CHDK general code do not distinguish between cameras that support or don't support GetBatteryTemperature, 225 To avoid a crash Canon's GetBatteryTemperature must not called. As long CHDK general code do not distinguish between cameras that support or don't support GetBatteryTemperature, 266 226 this function will be implemented as specific CHDK-code. It returns always with -99 (which means -99° Celsius or -146° Fahrenheit). 267 227 Original entry point in Canon's firmware is disabled (in stubs_entry.S). … … 272 232 return -99; 273 233 } 274 275 234 235
Note: See TracChangeset
for help on using the changeset viewer.