comparison pirelli/fw-disasm @ 248:73039e3416c7

pirelli/fw-disasm: abb_inth located
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 24 Dec 2017 04:43:48 +0000
parents 1e1191fbdf90
children b84fa089a560
comparison
equal deleted inserted replaced
247:1e1191fbdf90 248:73039e3416c7
1059 3495a6: f7ff fdba bl 0x34911e 1059 3495a6: f7ff fdba bl 0x34911e
1060 3495aa: 4804 ldr r0, =0x17741e0 ; via 0x3495bc 1060 3495aa: 4804 ldr r0, =0x17741e0 ; via 0x3495bc
1061 3495ac: f0b0 f996 bl 0x3f98dc 1061 3495ac: f0b0 f996 bl 0x3f98dc
1062 3495b0: b002 add sp, #8 1062 3495b0: b002 add sp, #8
1063 3495b2: bd00 pop {pc} 1063 3495b2: bd00 pop {pc}
1064
1065 $spi_abb_read_int_reg_callback:
1066 39efc4: b510 push {r4, lr}
1067 39efc6: b089 sub sp, #36 ; 0x24
1068 39efc8: 9002 str r0, [sp, #8]
1069 39efca: 9802 ldr r0, [sp, #8]
1070 39efcc: 8800 ldrh r0, [r0, #0]
1071 39efce: 08c0 lsr r0, r0, #3
1072 39efd0: d344 bcc 0x39f05c
1073 39efd2: 2014 mov r0, #20 ; 0x14
1074 39efd4: f05a fbba bl 0x3f974c
1075 39efd8: f7aa f998 bl 0x34930c
1076 39efdc: 2110 mov r1, #16 ; 0x10
1077 39efde: 4001 and r1, r0
1078 39efe0: 4668 mov r0, sp
1079 39efe2: 81c1 strh r1, [r0, #14] ; 0xe
1080 39efe4: 89c0 ldrh r0, [r0, #14] ; 0xe
1081 39efe6: 2800 cmp r0, #0
1082 39efe8: d000 beq 0x39efec
1083 39efea: e15d b 0x39f2a8
1084 39efec: f04b fa6a bl 0x3ea4c4
1085 39eff0: 4669 mov r1, sp
1086 39eff2: 2000 mov r0, #0
1087 39eff4: 8188 strh r0, [r1, #12] ; 0xc
1088 39eff6: 4668 mov r0, sp
1089 39eff8: 8980 ldrh r0, [r0, #12] ; 0xc
1090 39effa: 2808 cmp r0, #8
1091 39effc: da18 bge 0x39f030
1092 39effe: 4668 mov r0, sp
1093 39f000: 89c0 ldrh r0, [r0, #14] ; 0xe
1094 39f002: 2800 cmp r0, #0
1095 39f004: d114 bne 0x39f030
1096 39f006: 2036 mov r0, #54 ; 0x36
1097 39f008: f05a fba0 bl 0x3f974c
1098 39f00c: f7aa f97e bl 0x34930c
1099 39f010: 2110 mov r1, #16 ; 0x10
1100 39f012: 4001 and r1, r0
1101 39f014: 4668 mov r0, sp
1102 39f016: 81c1 strh r1, [r0, #14] ; 0xe
1103 39f018: 4669 mov r1, sp
1104 39f01a: 8980 ldrh r0, [r0, #12] ; 0xc
1105 39f01c: 3001 add r0, #1
1106 39f01e: 8188 strh r0, [r1, #12] ; 0xc
1107 39f020: 4668 mov r0, sp
1108 39f022: 8980 ldrh r0, [r0, #12] ; 0xc
1109 39f024: 2808 cmp r0, #8
1110 39f026: da03 bge 0x39f030
1111 39f028: 4668 mov r0, sp
1112 39f02a: 89c0 ldrh r0, [r0, #14] ; 0xe
1113 39f02c: 2800 cmp r0, #0
1114 39f02e: d0ea beq 0x39f006
1115 39f030: 4668 mov r0, sp
1116 39f032: 89c0 ldrh r0, [r0, #14] ; 0xe
1117 39f034: 2800 cmp r0, #0
1118 39f036: d000 beq 0x39f03a
1119 39f038: e136 b 0x39f2a8
1120 39f03a: 48d9 ldr r0, =0x1774ccf ; via 0x39f3a0
1121 39f03c: 7800 ldrb r0, [r0, #0]
1122 39f03e: 2800 cmp r0, #0
1123 39f040: d100 bne 0x39f044
1124 39f042: e131 b 0x39f2a8
1125 39f044: 48d7 ldr r0, =0xa0010 ; via 0x39f3a4
1126 39f046: 9000 str r0, [sp, #0]
1127 39f048: a09a add r0, pc, #616 ; 0x268
1128 39f04a: 2119 mov r1, #25 ; 0x19
1129 39f04c: 2200 mov r2, #0
1130 39f04e: 43d2 mvn r2, r2
1131 39f050: 2305 mov r3, #5
1132 39f052: f03b fdef bl 0x3dac34
1133 39f056: f002 f9f1 bl 0x3a143c
1134 39f05a: e125 b 0x39f2a8
1135 ; end of PUSHOFF_IT_STS handling
1136 39f05c: 9802 ldr r0, [sp, #8]
1137 39f05e: 8800 ldrh r0, [r0, #0]
1138 39f060: 0880 lsr r0, r0, #2
1139 39f062: d30b bcc 0x39f07c
1140 39f064: 48cf ldr r0, =0xa0010 ; via 0x39f3a4
1141 39f066: 9000 str r0, [sp, #0]
1142 39f068: a099 add r0, pc, #612 ; 0x264
1143 39f06a: 2120 mov r1, #32 ; 0x20
1144 39f06c: 2200 mov r2, #0
1145 39f06e: 43d2 mvn r2, r2
1146 39f070: 2305 mov r3, #5
1147 39f072: f03b fddf bl 0x3dac34
1148 39f076: f002 fa9c bl 0x3a15b2
1149 39f07a: e115 b 0x39f2a8
1150 ; end of REMOT_IT_STS handling
1151 39f07c: 9802 ldr r0, [sp, #8]
1152 39f07e: 8800 ldrh r0, [r0, #0]
1153 39f080: 0980 lsr r0, r0, #6
1154 39f082: d200 bcs 0x39f086
1155 39f084: e0ed b 0x39f262
1156 ; The following write of 0 into byte var at 0x1775041
1157 ; is a Foxconn/Pirelli addition.
1158 39f086: 49c8 ldr r1, =0x1775041 ; via 0x39f3a8
1159 39f088: 2000 mov r0, #0
1160 39f08a: 7008 strb r0, [r1, #0]
1161 39f08c: 48c5 ldr r0, =0xa0010 ; via 0x39f3a4
1162 39f08e: 9000 str r0, [sp, #0]
1163 39f090: a098 add r0, pc, #608 ; 0x260
1164 39f092: 210f mov r1, #15 ; 0xf
1165 39f094: 2200 mov r2, #0
1166 39f096: 43d2 mvn r2, r2
1167 39f098: 2305 mov r3, #5
1168 39f09a: f03b fdcb bl 0x3dac34 ; rvf_send_trace()
1169 39f09e: 48c3 ldr r0, =0x1774e38 ; via 0x39f3ac
1170 39f0a0: 6800 ldr r0, [r0, #0]
1171 39f0a2: 3004 add r0, #4
1172 39f0a4: f7aa f9f8 bl 0x349498 ; $ABB_Read_ADC
1173 39f0a8: 48c0 ldr r0, =0x1774e38 ; via 0x39f3ac
1174 39f0aa: 6800 ldr r0, [r0, #0]
1175 39f0ac: 8dc0 ldrh r0, [r0, #46] ; 0x2e
1176 39f0ae: 2806 cmp r0, #6
1177 39f0b0: db03 blt 0x39f0ba
1178 39f0b2: 48be ldr r0, =0x1774e38 ; via 0x39f3ac
1179 39f0b4: 6801 ldr r1, [r0, #0]
1180 39f0b6: 2000 mov r0, #0
1181 39f0b8: 85c8 strh r0, [r1, #46] ; 0x2e
1182 39f0ba: 48bc ldr r0, =0x1774e38 ; via 0x39f3ac
1183 39f0bc: 6800 ldr r0, [r0, #0]
1184 39f0be: 8dc0 ldrh r0, [r0, #46] ; 0x2e
1185 39f0c0: 0040 lsl r0, r0, #1
1186 39f0c2: 49ba ldr r1, =0x1774e38 ; via 0x39f3ac
1187 39f0c4: 6809 ldr r1, [r1, #0]
1188 39f0c6: 1840 add r0, r0, r1
1189 39f0c8: 49b8 ldr r1, =0x1774e38 ; via 0x39f3ac
1190 39f0ca: 6809 ldr r1, [r1, #0]
1191 39f0cc: 8889 ldrh r1, [r1, #4]
1192 39f0ce: 8281 strh r1, [r0, #20] ; 0x14
1193 39f0d0: 48b6 ldr r0, =0x1774e38 ; via 0x39f3ac
1194 39f0d2: 6800 ldr r0, [r0, #0]
1195 39f0d4: 302e add r0, #46 ; 0x2e
1196 39f0d6: 8801 ldrh r1, [r0, #0]
1197 39f0d8: 3101 add r1, #1
1198 39f0da: 8001 strh r1, [r0, #0]
1199 39f0dc: 2133 mov r1, #51 ; 0x33
1200 39f0de: 48b3 ldr r0, =0x1774e38 ; via 0x39f3ac
1201 39f0e0: 6800 ldr r0, [r0, #0]
1202 39f0e2: 5c08 ldrb r0, [r1, r0]
1203 39f0e4: 2801 cmp r0, #1
1204 39f0e6: d000 beq 0x39f0ea
1205 39f0e8: e0de b 0x39f2a8
1206 39f0ea: 2010 mov r0, #16 ; 0x10
1207 39f0ec: f7f8 ff53 bl 0x397f96 ; $osx_alloc_prim
1208 39f0f0: 9004 str r0, [sp, #16] ; 0x10
1209 39f0f2: 9804 ldr r0, [sp, #16] ; 0x10
1210 39f0f4: 2800 cmp r0, #0
1211 39f0f6: d022 beq 0x39f13e
1212 39f0f8: 9904 ldr r1, [sp, #16] ; 0x10
1213 39f0fa: 2069 mov r0, #105 ; 0x69
1214 39f0fc: 6008 str r0, [r1, #0]
1215 39f0fe: 4669 mov r1, sp
1216 39f100: 2000 mov r0, #0
1217 39f102: 7508 strb r0, [r1, #20] ; 0x14
1218 39f104: 4668 mov r0, sp
1219 39f106: 7d00 ldrb r0, [r0, #20] ; 0x14
1220 39f108: 2808 cmp r0, #8
1221 39f10a: da14 bge 0x39f136
1222 39f10c: 4668 mov r0, sp
1223 39f10e: 7d00 ldrb r0, [r0, #20] ; 0x14
1224 39f110: 0042 lsl r2, r0, #1
1225 39f112: 9804 ldr r0, [sp, #16] ; 0x10
1226 39f114: 6901 ldr r1, [r0, #16] ; 0x10
1227 39f116: 4668 mov r0, sp
1228 39f118: 7d00 ldrb r0, [r0, #20] ; 0x14
1229 39f11a: 0043 lsl r3, r0, #1
1230 39f11c: 48a3 ldr r0, =0x1774e38 ; via 0x39f3ac
1231 39f11e: 6800 ldr r0, [r0, #0]
1232 39f120: 1818 add r0, r3, r0
1233 39f122: 8880 ldrh r0, [r0, #4]
1234 39f124: 5250 strh r0, [r2, r1]
1235 39f126: 4668 mov r0, sp
1236 39f128: 4669 mov r1, sp
1237 39f12a: 7d09 ldrb r1, [r1, #20] ; 0x14
1238 39f12c: 3101 add r1, #1
1239 39f12e: 7501 strb r1, [r0, #20] ; 0x14
1240 39f130: 7d00 ldrb r0, [r0, #20] ; 0x14
1241 39f132: 2808 cmp r0, #8
1242 39f134: dbea blt 0x39f10c
1243 39f136: 9804 ldr r0, [sp, #16] ; 0x10
1244 39f138: 2102 mov r1, #2
1245 39f13a: f7f8 fe9a bl 0x397e72 ; $osx_send_prim
1246 ; checking GPIO 6 input
1247 39f13e: 2400 mov r4, #0
1248 39f140: 2005 mov r0, #5
1249 39f142: f030 fed8 bl 0x3cfef6
1250 39f146: 2800 cmp r0, #0
1251 39f148: d100 bne 0x39f14c
1252 39f14a: 2401 mov r4, #1
1253 39f14c: a808 add r0, sp, #32 ; 0x20
1254 39f14e: 7004 strb r4, [r0, #0]
1255 39f150: 4897 ldr r0, =0x17750fc ; via 0x39f3b0
1256 39f152: 7800 ldrb r0, [r0, #0]
1257 39f154: a908 add r1, sp, #32 ; 0x20
1258 39f156: 7809 ldrb r1, [r1, #0]
1259 39f158: 4288 cmp r0, r1
1260 39f15a: d017 beq 0x39f18c
1261 39f15c: f7b0 ffc4 bl 0x3500e8
1262 39f160: 2801 cmp r0, #1
1263 39f162: d10a bne 0x39f17a
1264 39f164: 4893 ldr r0, =0x17750fe ; via 0x39f3b4
1265 39f166: 2101 mov r1, #1
1266 39f168: 7001 strb r1, [r0, #0]
1267 39f16a: 4991 ldr r1, =0x17750fc ; via 0x39f3b0
1268 39f16c: a808 add r0, sp, #32 ; 0x20
1269 39f16e: 7800 ldrb r0, [r0, #0]
1270 39f170: 7008 strb r0, [r1, #0]
1271 39f172: 488c ldr r0, =0xa0010 ; via 0x39f3a4
1272 39f174: 9000 str r0, [sp, #0]
1273 39f176: a063 add r0, pc, #396 ; 0x18c
1274 39f178: e002 b 0x39f180
1275 39f17a: 488a ldr r0, =0xa0010 ; via 0x39f3a4
1276 39f17c: 9000 str r0, [sp, #0]
1277 39f17e: a063 add r0, pc, #396 ; 0x18c
1278 39f180: 2107 mov r1, #7
1279 39f182: 2200 mov r2, #0
1280 39f184: 43d2 mvn r2, r2
1281 39f186: 2305 mov r3, #5
1282 39f188: f03b fd54 bl 0x3dac34
1283 ; end of GPIO 6 check code
1284 39f18c: 488a ldr r0, =0x17751e8 ; via 0x39f3b8
1285 39f18e: 7800 ldrb r0, [r0, #0]
1286 39f190: 2800 cmp r0, #0
1287 39f192: d019 beq 0x39f1c8
1288 39f194: f69e f9ce bl 0x23d534
1289 39f198: 2802 cmp r0, #2
1290 39f19a: dd15 ble 0x39f1c8
1291 39f19c: 4883 ldr r0, =0x1774e38 ; via 0x39f3ac
1292 39f19e: 6800 ldr r0, [r0, #0]
1293 39f1a0: 8a41 ldrh r1, [r0, #18] ; 0x12
1294 39f1a2: 2049 mov r0, #73 ; 0x49
1295 39f1a4: 00c0 lsl r0, r0, #3
1296 39f1a6: 4281 cmp r1, r0
1297 39f1a8: dd0e ble 0x39f1c8
1298 39f1aa: 4983 ldr r1, =0x17751e8 ; via 0x39f3b8
1299 39f1ac: 2000 mov r0, #0
1300 39f1ae: 7008 strb r0, [r1, #0]
1301 39f1b0: 4882 ldr r0, =0x17751e9 ; via 0x39f3bc
1302 39f1b2: 2101 mov r1, #1
1303 39f1b4: 7001 strb r1, [r0, #0]
1304 39f1b6: 487b ldr r0, =0xa0010 ; via 0x39f3a4
1305 39f1b8: 9000 str r0, [sp, #0]
1306 39f1ba: a060 add r0, pc, #384 ; 0x180
1307 39f1bc: 2103 mov r1, #3
1308 39f1be: 2200 mov r2, #0
1309 39f1c0: 43d2 mvn r2, r2
1310 39f1c2: 2305 mov r3, #5
1311 39f1c4: f03b fd36 bl 0x3dac34
1312 39f1c8: 4879 ldr r0, =0x17750fc ; via 0x39f3b0
1313 39f1ca: 7800 ldrb r0, [r0, #0]
1314 39f1cc: 2800 cmp r0, #0
1315 39f1ce: d110 bne 0x39f1f2
1316 39f1d0: 487b ldr r0, =0x1774db8 ; via 0x39f3c0
1317 39f1d2: 6800 ldr r0, [r0, #0]
1318 39f1d4: 2801 cmp r0, #1
1319 39f1d6: d003 beq 0x39f1e0
1320 39f1d8: 4879 ldr r0, =0x1774db8 ; via 0x39f3c0
1321 39f1da: 6800 ldr r0, [r0, #0]
1322 39f1dc: 2802 cmp r0, #2
1323 39f1de: d108 bne 0x39f1f2
1324 39f1e0: 4872 ldr r0, =0x1774e38 ; via 0x39f3ac
1325 39f1e2: 6800 ldr r0, [r0, #0]
1326 39f1e4: 8a41 ldrh r1, [r0, #18] ; 0x12
1327 39f1e6: 2049 mov r0, #73 ; 0x49
1328 39f1e8: 00c0 lsl r0, r0, #3
1329 39f1ea: 4281 cmp r1, r0
1330 39f1ec: dc04 bgt 0x39f1f8
1331 39f1ee: 2101 mov r1, #1
1332 39f1f0: e000 b 0x39f1f4
1333 39f1f2: 2100 mov r1, #0
1334 39f1f4: 4870 ldr r0, =0x17751e8 ; via 0x39f3b8
1335 39f1f6: 7001 strb r1, [r0, #0]
1336 39f1f8: 486e ldr r0, =0x17750fe ; via 0x39f3b4
1337 39f1fa: 7800 ldrb r0, [r0, #0]
1338 39f1fc: 2800 cmp r0, #0
1339 39f1fe: d103 bne 0x39f208
1340 39f200: 486e ldr r0, =0x17751e9 ; via 0x39f3bc
1341 39f202: 7800 ldrb r0, [r0, #0]
1342 39f204: 2800 cmp r0, #0
1343 39f206: d04f beq 0x39f2a8
1344 39f208: 486e ldr r0, =0x1775098 ; via 0x39f3c4
1345 39f20a: 6800 ldr r0, [r0, #0]
1346 39f20c: 8800 ldrh r0, [r0, #0]
1347 39f20e: 2110 mov r1, #16 ; 0x10
1348 39f210: aa07 add r2, sp, #28 ; 0x1c
1349 39f212: f625 fbd9 bl 0x1c49c8
1350 39f216: 9006 str r0, [sp, #24] ; 0x18
1351 39f218: 9806 ldr r0, [sp, #24] ; 0x18
1352 39f21a: 2802 cmp r0, #2
1353 39f21c: d015 beq 0x39f24a
1354 39f21e: 9907 ldr r1, [sp, #28] ; 0x1c
1355 39f220: 4869 ldr r0, =0xd809 ; via 0x39f3c8
1356 39f222: 6008 str r0, [r1, #0]
1357 39f224: 9907 ldr r1, [sp, #28] ; 0x1c
1358 39f226: 2000 mov r0, #0
1359 39f228: 43c0 mvn r0, r0
1360 39f22a: 7308 strb r0, [r1, #12] ; 0xc
1361 39f22c: 9806 ldr r0, [sp, #24] ; 0x18
1362 39f22e: 2800 cmp r0, #0
1363 39f230: d101 bne 0x39f236
1364 39f232: 2101 mov r1, #1
1365 39f234: e000 b 0x39f238
1366 39f236: 2100 mov r1, #0
1367 39f238: 9807 ldr r0, [sp, #28] ; 0x1c
1368 39f23a: 7341 strb r1, [r0, #13] ; 0xd
1369 39f23c: 4861 ldr r0, =0x1775098 ; via 0x39f3c4
1370 39f23e: 6800 ldr r0, [r0, #0]
1371 39f240: 7880 ldrb r0, [r0, #2]
1372 39f242: 9907 ldr r1, [sp, #28] ; 0x1c
1373 39f244: f019 feac bl 0x3b8fa0
1374 39f248: e02e b 0x39f2a8
1375 39f24a: 4860 ldr r0, =0xa0008 ; via 0x39f3cc
1376 39f24c: 9000 str r0, [sp, #0]
1377 39f24e: a03c add r0, pc, #240 ; 0xf0
1378 39f250: 212e mov r1, #46 ; 0x2e
1379 39f252: 2200 mov r2, #0
1380 39f254: 43d2 mvn r2, r2
1381 39f256: 2301 mov r3, #1
1382 39f258: f03b fcec bl 0x3dac34
1383 39f25c: f00f fe8b bl 0x3aef76
1384 39f260: e022 b 0x39f2a8
1385 39f262: 9802 ldr r0, [sp, #8]
1386 39f264: 8800 ldrh r0, [r0, #0]
1387 39f266: 0900 lsr r0, r0, #4
1388 39f268: d31e bcc 0x39f2a8
1389 39f26a: f7aa f84f bl 0x34930c
1390 39f26e: 4669 mov r1, sp
1391 39f270: 81c8 strh r0, [r1, #14] ; 0xe
1392 39f272: 4668 mov r0, sp
1393 39f274: 89c0 ldrh r0, [r0, #14] ; 0xe
1394 39f276: 09c0 lsr r0, r0, #7
1395 39f278: d30b bcc 0x39f292
1396 39f27a: 484a ldr r0, =0xa0010 ; via 0x39f3a4
1397 39f27c: 9000 str r0, [sp, #0]
1398 39f27e: a03c add r0, pc, #240 ; 0xf0
1399 39f280: 2114 mov r1, #20 ; 0x14
1400 39f282: 2200 mov r2, #0
1401 39f284: 43d2 mvn r2, r2
1402 39f286: 2305 mov r3, #5
1403 39f288: f03b fcd4 bl 0x3dac34
1404 39f28c: f002 f993 bl 0x3a15b6
1405 39f290: e00a b 0x39f2a8
1406 39f292: 4844 ldr r0, =0xa0010 ; via 0x39f3a4
1407 39f294: 9000 str r0, [sp, #0]
1408 39f296: a03c add r0, pc, #240 ; 0xf0
1409 39f298: 2116 mov r1, #22 ; 0x16
1410 39f29a: 2200 mov r2, #0
1411 39f29c: 43d2 mvn r2, r2
1412 39f29e: 2305 mov r3, #5
1413 39f2a0: f03b fcc8 bl 0x3dac34
1414 39f2a4: f002 f99a bl 0x3a15dc
1415 39f2a8: 200c mov r0, #12 ; 0xc
1416 39f2aa: f040 fd00 bl 0x3dfcae
1417 39f2ae: b009 add sp, #36 ; 0x24
1418 39f2b0: bd10 pop {r4, pc}
1419 39f2b2: 46c0 nop (mov r8, r8)
1064 1420
1065 $Init_Target: 1421 $Init_Target:
1066 3bb7d4: b570 push {r4, r5, r6, lr} 1422 3bb7d4: b570 push {r4, r5, r6, lr}
1067 3bb7d6: b081 sub sp, #4 1423 3bb7d6: b081 sub sp, #4
1068 3bb7d8: 4c96 ldr r4, =0xfffef008 ; via 0x3bba34 1424 3bb7d8: 4c96 ldr r4, =0xfffef008 ; via 0x3bba34
1424 T_SPI_GBL_INFO structure: 1780 T_SPI_GBL_INFO structure:
1425 1781
1426 0x00: prim_id like in TCS211 1782 0x00: prim_id like in TCS211
1427 0x02: addr_id (ditto) 1783 0x02: addr_id (ditto)
1428 0x04: adc_result[8] array (ditto) 1784 0x04: adc_result[8] array (ditto)
1429 0x14: Foxconn/Pirelli's unknown insertions 1785 0x14: array of 6 16-bit words storing consecutive VBAT ADC readings
1786 0x2E: 16-bit var write pointer for the array at offset 0x14
1430 0x32: assumed is_gsm_on 1787 0x32: assumed is_gsm_on
1431 0x33: assumed is_adc_on 1788 0x33: assumed is_adc_on
1432 0x34: assumed SpiTaskReady 1789 0x34: assumed SpiTaskReady
1433 1790
1434 $spi_set_info: 1791 $spi_set_info:
1730 3cda9a: 6800 ldr r0, [r0, #0] 2087 3cda9a: 6800 ldr r0, [r0, #0]
1731 3cda9c: f5f7 f92c bl 0x1c4cf8 2088 3cda9c: f5f7 f92c bl 0x1c4cf8
1732 3cdaa0: 2000 mov r0, #0 2089 3cdaa0: 2000 mov r0, #0
1733 3cdaa2: bd00 pop {pc} 2090 3cdaa2: bd00 pop {pc}
1734 2091
2092 ; function called from the ADC end handler
2093 3cfef6: b510 push {r4, lr}
2094 3cfef8: 2400 mov r4, #0
2095 3cfefa: 2105 mov r1, #5
2096 3cfefc: 1a40 sub r0, r0, r1
2097 3cfefe: 2800 cmp r0, #0
2098 3cff00: d008 beq 0x3cff14
2099 3cff02: 3803 sub r0, #3
2100 3cff04: 2800 cmp r0, #0
2101 3cff06: d10b bne 0x3cff20
2102 3cff08: 200d mov r0, #13 ; 0xd
2103 3cff0a: f013 f8a9 bl 0x3e3060 ; $AI_ReadBit
2104 3cff0e: 2801 cmp r0, #1
2105 3cff10: d005 beq 0x3cff1e
2106 3cff12: e005 b 0x3cff20
2107 3cff14: 2006 mov r0, #6
2108 3cff16: f013 f8a3 bl 0x3e3060 ; $AI_ReadBit
2109 3cff1a: 2801 cmp r0, #1
2110 3cff1c: d100 bne 0x3cff20
2111 3cff1e: 2401 mov r4, #1
2112 3cff20: 1c20 add r0, r4, #0
2113 3cff22: bd10 pop {r4, pc}
2114
1735 $Create_ABB_HISR: 2115 $Create_ABB_HISR:
1736 3dc928: b500 push {lr} 2116 3dc928: b500 push {lr}
1737 3dc92a: b083 sub sp, #12 ; 0xc 2117 3dc92a: b083 sub sp, #12 ; 0xc
1738 3dc92c: 485d ldr r0, =0x1764a10 ; via 0x3dcaa4 2118 3dc92c: 485d ldr r0, =0x1764a10 ; via 0x3dcaa4
1739 3dc92e: 21fe mov r1, #254 ; 0xfe 2119 3dc92e: 21fe mov r1, #254 ; 0xfe
1823 3dc9d6: f7fe f92d bl 0x3dac34 2203 3dc9d6: f7fe f92d bl 0x3dac34
1824 3dc9da: 200c mov r0, #12 ; 0xc 2204 3dc9da: 200c mov r0, #12 ; 0xc
1825 3dc9dc: f003 f967 bl 0x3dfcae 2205 3dc9dc: f003 f967 bl 0x3dfcae
1826 3dc9e0: b003 add sp, #12 ; 0xc 2206 3dc9e0: b003 add sp, #12 ; 0xc
1827 3dc9e2: bd00 pop {pc} 2207 3dc9e2: bd00 pop {pc}
2208
2209 $AI_EnableBit:
2210 3e300c: 4a44 ldr r2, =0xfffef00a ; via 0x3e3120
2211 3e300e: 2101 mov r1, #1
2212 3e3010: 4081 lsl r1, r0
2213 3e3012: 8810 ldrh r0, [r2, #0]
2214 3e3014: 4301 orr r1, r0
2215 3e3016: 8011 strh r1, [r2, #0]
2216 3e3018: 4770 bx lr
2217
2218 $AI_DisableBit:
2219 3e301a: 4a41 ldr r2, =0xfffef00a ; via 0x3e3120
2220 3e301c: 2101 mov r1, #1
2221 3e301e: 4081 lsl r1, r0
2222 3e3020: 8810 ldrh r0, [r2, #0]
2223 3e3022: 4388 bic r0, r1
2224 3e3024: 8010 strh r0, [r2, #0]
2225 3e3026: 4770 bx lr
2226
2227 $AI_SetBit:
2228 3e3028: 4a3e ldr r2, =0xfffe4802 ; via 0x3e3124
2229 3e302a: 2101 mov r1, #1
2230 3e302c: 4081 lsl r1, r0
2231 3e302e: 8810 ldrh r0, [r2, #0]
2232 3e3030: 4301 orr r1, r0
2233 3e3032: 8011 strh r1, [r2, #0]
2234 3e3034: 4770 bx lr
2235
2236 $AI_ResetBit:
2237 3e3036: 4a3b ldr r2, =0xfffe4802 ; via 0x3e3124
2238 3e3038: 2101 mov r1, #1
2239 3e303a: 4081 lsl r1, r0
2240 3e303c: 8810 ldrh r0, [r2, #0]
2241 3e303e: 4388 bic r0, r1
2242 3e3040: 8010 strh r0, [r2, #0]
2243 3e3042: 4770 bx lr
2244
2245 $AI_ConfigBitAsOutput:
2246 3e3044: 4a38 ldr r2, =0xfffe4804 ; via 0x3e3128
2247 3e3046: 2101 mov r1, #1
2248 3e3048: 4081 lsl r1, r0
2249 3e304a: 8810 ldrh r0, [r2, #0]
2250 3e304c: 4388 bic r0, r1
2251 3e304e: 8010 strh r0, [r2, #0]
2252 3e3050: 4770 bx lr
2253
2254 $AI_ConfigBitAsInput:
2255 3e3052: 4a35 ldr r2, =0xfffe4804 ; via 0x3e3128
2256 3e3054: 2101 mov r1, #1
2257 3e3056: 4081 lsl r1, r0
2258 3e3058: 8810 ldrh r0, [r2, #0]
2259 3e305a: 4301 orr r1, r0
2260 3e305c: 8011 strh r1, [r2, #0]
2261 3e305e: 4770 bx lr
2262
2263 $AI_ReadBit:
2264 3e3060: 4932 ldr r1, =0xfffe4800 ; via 0x3e312c
2265 3e3062: 8809 ldrh r1, [r1, #0]
2266 3e3064: 4101 asr r1, r0
2267 3e3066: 07c8 lsl r0, r1, #31
2268 3e3068: 0fc0 lsr r0, r0, #31
2269 3e306a: 0600 lsl r0, r0, #24
2270 3e306c: 0e00 lsr r0, r0, #24
2271 3e306e: 4770 bx lr
2272
2273 $AI_Power:
2274 3e3070: b500 push {lr}
2275 3e3072: 2800 cmp r0, #0
2276 3e3074: d101 bne 0x3e307a
2277 3e3076: f766 fbff bl 0x349878 ; $ABB_Power_Off
2278 3e307a: bd00 pop {pc}
2279
2280 $AI_ResetIoConfig:
2281 3e307c: 492a ldr r1, =0xfffe4804 ; via 0x3e3128
2282 3e307e: 482c ldr r0, =0xffff ; via 0x3e3130
2283 3e3080: 8008 strh r0, [r1, #0]
2284 3e3082: 4827 ldr r0, =0xfffef00a ; via 0x3e3120
2285 3e3084: 2100 mov r1, #0
2286 3e3086: 8001 strh r1, [r0, #0]
2287 3e3088: 4770 bx lr
2288
2289 $AI_ClockEnable:
2290 3e308a: 492a ldr r1, =0xfffe4806 ; via 0x3e3134
2291 3e308c: 2020 mov r0, #32 ; 0x20
2292 3e308e: 880a ldrh r2, [r1, #0]
2293 3e3090: 4310 orr r0, r2
2294 3e3092: 8008 strh r0, [r1, #0]
2295 3e3094: 4770 bx lr
2296
2297 $AI_InitIOConfig:
2298 3e3096: b500 push {lr}
2299 3e3098: f7ec fe54 bl 0x3cfd44
2300 3e309c: 2000 mov r0, #0
2301 3e309e: 4926 ldr r1, =0x1773f8a ; via 0x3e3138
2302 3e30a0: 7008 strb r0, [r1, #0]
2303 3e30a2: 4926 ldr r1, =0x17750fd ; via 0x3e313c
2304 3e30a4: 7008 strb r0, [r1, #0]
2305 3e30a6: 4926 ldr r1, =0x17750ff ; via 0x3e3140
2306 3e30a8: 2201 mov r2, #1
2307 3e30aa: 700a strb r2, [r1, #0]
2308 3e30ac: 4925 ldr r1, =0x17750fe ; via 0x3e3144
2309 3e30ae: 7008 strb r0, [r1, #0]
2310 3e30b0: 4825 ldr r0, =0x17750fc ; via 0x3e3148
2311 3e30b2: 21ff mov r1, #255 ; 0xff
2312 3e30b4: 7001 strb r1, [r0, #0]
2313 3e30b6: bd00 pop {pc}
2314
2315 $AI_SelectIOForIT:
2316 3e30b8: 0109 lsl r1, r1, #4
2317 3e30ba: 1840 add r0, r0, r1
2318 3e30bc: 0040 lsl r0, r0, #1
2319 3e30be: 3001 add r0, #1
2320 3e30c0: 4922 ldr r1, =0xfffe4814 ; via 0x3e314c
2321 3e30c2: 8008 strh r0, [r1, #0]
2322 3e30c4: 4770 bx lr
2323
2324 $AI_CheckITSource:
2325 3e30c6: 2100 mov r1, #0
2326 3e30c8: 4a21 ldr r2, =0xfffe4816 ; via 0x3e3150
2327 3e30ca: 8812 ldrh r2, [r2, #0]
2328 3e30cc: 4210 tst r0, r2
2329 3e30ce: d000 beq 0x3e30d2
2330 3e30d0: 2101 mov r1, #1
2331 3e30d2: 1c08 add r0, r1, #0
2332 3e30d4: 4770 bx lr
2333
2334 $AI_UnmaskIT:
2335 3e30d6: 4a1f ldr r2, =0xfffe4818 ; via 0x3e3154
2336 3e30d8: 8811 ldrh r1, [r2, #0]
2337 3e30da: 4381 bic r1, r0
2338 3e30dc: 8011 strh r1, [r2, #0]
2339 3e30de: 4770 bx lr
2340
2341 $AI_MaskIT:
2342 3e30e0: 4a1c ldr r2, =0xfffe4818 ; via 0x3e3154
2343 3e30e2: 8811 ldrh r1, [r2, #0]
2344 3e30e4: 4301 orr r1, r0
2345 3e30e6: 8011 strh r1, [r2, #0]
2346 3e30e8: 4770 bx lr
2347
2348 3e30ea: 2130 mov r1, #48 ; 0x30
2349 3e30ec: 7001 strb r1, [r0, #0]
2350 3e30ee: 3001 add r0, #1
2351 3e30f0: 2231 mov r2, #49 ; 0x31
2352 3e30f2: 7002 strb r2, [r0, #0]
2353 3e30f4: 3001 add r0, #1
2354 3e30f6: 222e mov r2, #46 ; 0x2e
2355 3e30f8: 7002 strb r2, [r0, #0]
2356 3e30fa: 3001 add r0, #1
2357 3e30fc: 7001 strb r1, [r0, #0]
2358 3e30fe: 3001 add r0, #1
2359 3e3100: 7001 strb r1, [r0, #0]
2360 3e3102: 3001 add r0, #1
2361 3e3104: 2100 mov r1, #0
2362 3e3106: 7001 strb r1, [r0, #0]
2363 3e3108: 4770 bx lr
2364
2365 3e310a: b500 push {lr}
2366 3e310c: 2801 cmp r0, #1
2367 3e310e: d103 bne 0x3e3118
2368 3e3110: 2001 mov r0, #1
2369 3e3112: f7ff ff90 bl 0x3e3036 ; $AI_ResetBit
2370 3e3116: bd00 pop {pc}
2371 3e3118: 2001 mov r0, #1
2372 3e311a: f7ff ff85 bl 0x3e3028 ; $AI_SetBit
2373 3e311e: bd00 pop {pc}
1828 2374
1829 _f_checksum: 2375 _f_checksum:
1830 3e6990: e1a0c000 mov r12, r0 2376 3e6990: e1a0c000 mov r12, r0
1831 3e6994: e3a00000 mov r0, #0 2377 3e6994: e3a00000 mov r0, #0
1832 3e6998: e3510000 cmp r1, #0 2378 3e6998: e3510000 cmp r1, #0
2333 0x1774e38: SPI_GBL_INFO_PTR 2879 0x1774e38: SPI_GBL_INFO_PTR
2334 0x1774e3c: spi_error_ft 2880 0x1774e3c: spi_error_ft
2335 2881
2336 0x1774e70: pwr_env_ctrl_blk 2882 0x1774e70: pwr_env_ctrl_blk
2337 0x1774e74: pwr_error_ft 2883 0x1774e74: pwr_error_ft
2884
2885 0x1775041: byte var set to 0 in spi_abb_read_int_reg_callback()
2886 in ADC end processing