FreeCalypso > hg > freecalypso-reveng
comparison pirelli/fw-disasm @ 255:0f5a24acde3a
pirelli/fw-disasm: found what seems to be the charging time limit function
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 25 Dec 2017 23:54:05 +0000 |
parents | f3f9dd04567e |
children | dbcfb097ffe1 |
comparison
equal
deleted
inserted
replaced
254:f3f9dd04567e | 255:0f5a24acde3a |
---|---|
1134 32e09a: 0080 lsl r0, r0, #2 | 1134 32e09a: 0080 lsl r0, r0, #2 |
1135 32e09c: 1810 add r0, r2, r0 | 1135 32e09c: 1810 add r0, r2, r0 |
1136 32e09e: 7880 ldrb r0, [r0, #2] | 1136 32e09e: 7880 ldrb r0, [r0, #2] |
1137 32e0a0: b002 add sp, #8 | 1137 32e0a0: b002 add sp, #8 |
1138 32e0a2: bd10 pop {r4, pc} | 1138 32e0a2: bd10 pop {r4, pc} |
1139 | |
1140 ; This function seems to be in charge of enforcing some kind of time limit | |
1141 ; on the charging process, with non-understood handling when this limit | |
1142 ; is exceeded and the "Charge Process exceeds .!!" trace is emitted. | |
1143 32e294: b510 push {r4, lr} | |
1144 32e296: b082 sub sp, #8 | |
1145 32e298: 4871 ldr r0, =0x1774e70 ; via 0x32e460 | |
1146 32e29a: 6800 ldr r0, [r0, #0] | |
1147 32e29c: 2148 mov r1, #72 ; 0x48 | |
1148 32e29e: 5c09 ldrb r1, [r1, r0] | |
1149 32e2a0: 2901 cmp r1, #1 | |
1150 32e2a2: d101 bne 0x32e2a8 | |
1151 32e2a4: 2400 mov r4, #0 | |
1152 32e2a6: e034 b 0x32e312 | |
1153 32e2a8: 8f81 ldrh r1, [r0, #60] ; 0x3c | |
1154 32e2aa: 8f40 ldrh r0, [r0, #58] ; 0x3a | |
1155 32e2ac: 4281 cmp r1, r0 | |
1156 32e2ae: ddf9 ble 0x32e2a4 | |
1157 32e2b0: 486c ldr r0, =0xa0020 ; via 0x32e464 | |
1158 32e2b2: 9000 str r0, [sp, #0] | |
1159 32e2b4: a05e add r0, pc, #376 ; 0x178 | |
1160 32e2b6: 211a mov r1, #26 ; 0x1a | |
1161 32e2b8: 2200 mov r2, #0 | |
1162 32e2ba: 43d2 mvn r2, r2 | |
1163 32e2bc: 2302 mov r3, #2 | |
1164 32e2be: f0ac fcb9 bl 0x3dac34 | |
1165 32e2c2: 2001 mov r0, #1 | |
1166 32e2c4: 2138 mov r1, #56 ; 0x38 | |
1167 32e2c6: 2201 mov r2, #1 | |
1168 32e2c8: f01a ffa0 bl 0x34920c | |
1169 32e2cc: 4812 ldr r0, =0x1774b78 ; via 0x32e318 | |
1170 32e2ce: 2105 mov r1, #5 | |
1171 32e2d0: 43c9 mvn r1, r1 | |
1172 32e2d2: 8001 strh r1, [r0, #0] | |
1173 32e2d4: 8880 ldrh r0, [r0, #4] | |
1174 32e2d6: 4961 ldr r1, =0xf3c ; via 0x32e45c | |
1175 32e2d8: 4288 cmp r0, r1 | |
1176 32e2da: dc07 bgt 0x32e2ec | |
1177 32e2dc: 4860 ldr r0, =0x1774e70 ; via 0x32e460 | |
1178 32e2de: 6800 ldr r0, [r0, #0] | |
1179 32e2e0: 2101 mov r1, #1 | |
1180 32e2e2: 6341 str r1, [r0, #52] ; 0x34 | |
1181 32e2e4: 2003 mov r0, #3 | |
1182 32e2e6: f066 fdec bl 0x394ec2 | |
1183 32e2ea: e001 b 0x32e2f0 | |
1184 32e2ec: f066 fdb0 bl 0x394e50 | |
1185 32e2f0: f7b3 fffd bl 0x2e22ee | |
1186 32e2f4: 2401 mov r4, #1 | |
1187 32e2f6: 2132 mov r1, #50 ; 0x32 | |
1188 32e2f8: 4857 ldr r0, =0x1774e38 ; via 0x32e458 | |
1189 32e2fa: 6800 ldr r0, [r0, #0] | |
1190 32e2fc: 5c08 ldrb r0, [r1, r0] | |
1191 32e2fe: 2800 cmp r0, #0 | |
1192 32e300: d105 bne 0x32e30e | |
1193 32e302: 2001 mov r0, #1 | |
1194 32e304: 213c mov r1, #60 ; 0x3c | |
1195 32e306: 2201 mov r2, #1 | |
1196 32e308: f01a ff80 bl 0x34920c | |
1197 32e30c: e001 b 0x32e312 | |
1198 32e30e: f085 fc50 bl 0x3b3bb2 | |
1199 32e312: 1c20 add r0, r4, #0 | |
1200 32e314: b002 add sp, #8 | |
1201 32e316: bd10 pop {r4, pc} | |
1139 | 1202 |
1140 ; The following function seems to compute the system's current draw. | 1203 ; The following function seems to compute the system's current draw. |
1141 ; It starts with the display backlight's current draw from 0x1775138, | 1204 ; It starts with the display backlight's current draw from 0x1775138, |
1142 ; converts it from ADC units to mA per the fixed *855/1000 formula, | 1205 ; converts it from ADC units to mA per the fixed *855/1000 formula, |
1143 ; and then throws in a ton of other factors which are impractical | 1206 ; and then throws in a ton of other factors which are impractical |