FreeCalypso > hg > freecalypso-reveng
comparison dsample-fw-disasm @ 302:844ebeb9a5c6
dsample-fw-disasm: rf_program() and l1dmacro_agc() analysed
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 05 Oct 2019 23:47:32 +0000 |
parents | 5f9932613f99 |
children | 3baaefa1e229 |
comparison
equal
deleted
inserted
replaced
301:5f9932613f99 | 302:844ebeb9a5c6 |
---|---|
3028 805efe: f00d f9ef bl 0x8132e0 ; $l1dmacro_reset_hw | 3028 805efe: f00d f9ef bl 0x8132e0 ; $l1dmacro_reset_hw |
3029 805f02: bd10 pop {r4, pc} | 3029 805f02: bd10 pop {r4, pc} |
3030 | 3030 |
3031 ; apparent beginning of tpudrv10 module | 3031 ; apparent beginning of tpudrv10 module |
3032 | 3032 |
3033 ; mystery helper function for rf_program() | |
3033 811df8: b500 push {lr} | 3034 811df8: b500 push {lr} |
3034 811dfa: b084 sub sp, #16 ; 0x10 | 3035 811dfa: b084 sub sp, #16 ; 0x10 |
3035 811dfc: 4669 mov r1, sp | 3036 811dfc: 4669 mov r1, sp |
3036 811dfe: 8008 strh r0, [r1, #0] | 3037 811dfe: 8008 strh r0, [r1, #0] |
3037 811e00: 2014 mov r0, #20 ; 0x14 | 3038 811e00: 2014 mov r0, #20 ; 0x14 |
3062 811e32: 0040 lsl r0, r0, #1 | 3063 811e32: 0040 lsl r0, r0, #1 |
3063 811e34: 80c8 strh r0, [r1, #6] | 3064 811e34: 80c8 strh r0, [r1, #6] |
3064 811e36: 4668 mov r0, sp | 3065 811e36: 4668 mov r0, sp |
3065 811e38: 88c0 ldrh r0, [r0, #6] | 3066 811e38: 88c0 ldrh r0, [r0, #6] |
3066 811e3a: 210d mov r1, #13 ; 0xd | 3067 811e3a: 210d mov r1, #13 ; 0xd |
3067 811e3c: f002 fd8e bl 0x81495c | 3068 811e3c: f002 fd8e bl 0x81495c ; I$DIV |
3068 811e40: 4668 mov r0, sp | 3069 811e40: 4668 mov r0, sp |
3069 811e42: 8101 strh r1, [r0, #8] | 3070 811e42: 8101 strh r1, [r0, #8] |
3070 811e44: 8900 ldrh r0, [r0, #8] | 3071 811e44: 8900 ldrh r0, [r0, #8] |
3071 811e46: 1081 asr r1, r0, #2 | 3072 811e46: 1081 asr r1, r0, #2 |
3072 811e48: 0f49 lsr r1, r1, #29 | 3073 811e48: 0f49 lsr r1, r1, #29 |
4122 81271a: 1c91 add r1, r2, #2 | 4123 81271a: 1c91 add r1, r2, #2 |
4123 81271c: 6001 str r1, [r0, #0] | 4124 81271c: 6001 str r1, [r0, #0] |
4124 81271e: 48a2 ldr r0, =0x8041 ; via 0x8129a8 | 4125 81271e: 48a2 ldr r0, =0x8041 ; via 0x8129a8 |
4125 812720: 8010 strh r0, [r2, #0] | 4126 812720: 8010 strh r0, [r2, #0] |
4126 812722: e12c b 0x81297e | 4127 812722: e12c b 0x81297e |
4127 812724: 8002 strh r2, [r0, #0] | 4128 |
4128 812726: 0000 lsl r0, r0, #0 | 4129 812724: 00008002 |
4129 812728: 8ae0 ldrh r0, [r4, #22] ; 0x16 | 4130 812728: 00008ae0 |
4130 81272a: 0000 lsl r0, r0, #0 | 4131 |
4131 81272c: 4668 mov r0, sp | 4132 81272c: 4668 mov r0, sp |
4132 81272e: 8b80 ldrh r0, [r0, #28] ; 0x1c | 4133 81272e: 8b80 ldrh r0, [r0, #28] ; 0x1c |
4133 812730: 2100 mov r1, #0 | 4134 812730: 2100 mov r1, #0 |
4134 812732: f7ff fba2 bl 0x811e7a | 4135 812732: f7ff fba2 bl 0x811e7a |
4135 812736: 9004 str r0, [sp, #16] ; 0x10 | 4136 812736: 9004 str r0, [sp, #16] ; 0x10 |
4581 812adc: 8001 strh r1, [r0, #0] | 4582 812adc: 8001 strh r1, [r0, #0] |
4582 812ade: 9801 ldr r0, [sp, #4] | 4583 812ade: 9801 ldr r0, [sp, #4] |
4583 812ae0: 4669 mov r1, sp | 4584 812ae0: 4669 mov r1, sp |
4584 812ae2: 8809 ldrh r1, [r1, #0] | 4585 812ae2: 8809 ldrh r1, [r1, #0] |
4585 812ae4: 2201 mov r2, #1 | 4586 812ae4: 2201 mov r2, #1 |
4586 812ae6: f7ff fd51 bl 0x81258c | 4587 812ae6: f7ff fd51 bl 0x81258c ; $rf_program |
4587 812aea: 9001 str r0, [sp, #4] | 4588 812aea: 9001 str r0, [sp, #4] |
4588 812aec: b002 add sp, #8 | 4589 812aec: b002 add sp, #8 |
4589 812aee: bd00 pop {pc} | 4590 812aee: bd00 pop {pc} |
4590 | 4591 |
4591 $l1dmacro_tx_synth: | 4592 $l1dmacro_tx_synth: |
4608 812b10: 8001 strh r1, [r0, #0] | 4609 812b10: 8001 strh r1, [r0, #0] |
4609 812b12: 9801 ldr r0, [sp, #4] | 4610 812b12: 9801 ldr r0, [sp, #4] |
4610 812b14: 4669 mov r1, sp | 4611 812b14: 4669 mov r1, sp |
4611 812b16: 8809 ldrh r1, [r1, #0] | 4612 812b16: 8809 ldrh r1, [r1, #0] |
4612 812b18: 2200 mov r2, #0 | 4613 812b18: 2200 mov r2, #0 |
4613 812b1a: f7ff fd37 bl 0x81258c | 4614 812b1a: f7ff fd37 bl 0x81258c ; $rf_program |
4614 812b1e: 9001 str r0, [sp, #4] | 4615 812b1e: 9001 str r0, [sp, #4] |
4615 812b20: b002 add sp, #8 | 4616 812b20: b002 add sp, #8 |
4616 812b22: bd00 pop {pc} | 4617 812b22: bd00 pop {pc} |
4617 | 4618 |
4618 812b24: b081 sub sp, #4 | 4619 812b24: b081 sub sp, #4 |
5380 813b86: b500 push {lr} | 5381 813b86: b500 push {lr} |
5381 813b88: f7ff ff0b bl 0x8139a2 ; $TPU_FrameItEnable | 5382 813b88: f7ff ff0b bl 0x8139a2 ; $TPU_FrameItEnable |
5382 813b8c: bd00 pop {pc} | 5383 813b8c: bd00 pop {pc} |
5383 813b8e: 46c0 nop (mov r8, r8) | 5384 813b8e: 46c0 nop (mov r8, r8) |
5384 | 5385 |
5386 I$DIV: | |
5387 I$MOD: | |
5388 81495c: b43c push {r2, r3, r4, r5} | |
5389 81495e: 17cc asr r4, r1, #31 | |
5390 814960: 4061 eor r1, r4 | |
5391 814962: 1b09 sub r1, r1, r4 | |
5392 814964: d050 beq 0x814a08 | |
5393 814966: 17c2 asr r2, r0, #31 | |
5394 814968: 4050 eor r0, r2 | |
5395 81496a: 1a80 sub r0, r0, r2 | |
5396 81496c: 0864 lsr r4, r4, #1 | |
5397 81496e: 4054 eor r4, r2 | |
5398 814970: 1c0a add r2, r1, #0 | |
5399 814972: 0c05 lsr r5, r0, #16 | |
5400 814974: 42aa cmp r2, r5 | |
5401 814976: d800 bhi 0x81497a | |
5402 814978: 0412 lsl r2, r2, #16 | |
5403 81497a: 0a05 lsr r5, r0, #8 | |
5404 81497c: 42aa cmp r2, r5 | |
5405 81497e: d800 bhi 0x814982 | |
5406 814980: 0212 lsl r2, r2, #8 | |
5407 814982: 1c03 add r3, r0, #0 | |
5408 814984: a51b add r5, pc, #108 ; 0x6c | |
5409 814986: 085b lsr r3, r3, #1 | |
5410 814988: 3d0c sub r5, #12 ; 0xc | |
5411 81498a: 429a cmp r2, r3 | |
5412 81498c: d9fb bls 0x814986 | |
5413 81498e: 2300 mov r3, #0 | |
5414 814990: 46af mov pc, r5 | |
5415 814992: 0a12 lsr r2, r2, #8 | |
5416 814994: 01d5 lsl r5, r2, #7 | |
5417 814996: 42a8 cmp r0, r5 | |
5418 814998: 415b adc r3, r3 | |
5419 81499a: 42a8 cmp r0, r5 | |
5420 81499c: d300 bcc 0x8149a0 | |
5421 81499e: 1b40 sub r0, r0, r5 | |
5422 8149a0: 0195 lsl r5, r2, #6 | |
5423 8149a2: 42a8 cmp r0, r5 | |
5424 8149a4: 415b adc r3, r3 | |
5425 8149a6: 42a8 cmp r0, r5 | |
5426 8149a8: d300 bcc 0x8149ac | |
5427 8149aa: 1b40 sub r0, r0, r5 | |
5428 8149ac: 0155 lsl r5, r2, #5 | |
5429 8149ae: 42a8 cmp r0, r5 | |
5430 8149b0: 415b adc r3, r3 | |
5431 8149b2: 42a8 cmp r0, r5 | |
5432 8149b4: d300 bcc 0x8149b8 | |
5433 8149b6: 1b40 sub r0, r0, r5 | |
5434 8149b8: 0115 lsl r5, r2, #4 | |
5435 8149ba: 42a8 cmp r0, r5 | |
5436 8149bc: 415b adc r3, r3 | |
5437 8149be: 42a8 cmp r0, r5 | |
5438 8149c0: d300 bcc 0x8149c4 | |
5439 8149c2: 1b40 sub r0, r0, r5 | |
5440 8149c4: 00d5 lsl r5, r2, #3 | |
5441 8149c6: 42a8 cmp r0, r5 | |
5442 8149c8: 415b adc r3, r3 | |
5443 8149ca: 42a8 cmp r0, r5 | |
5444 8149cc: d300 bcc 0x8149d0 | |
5445 8149ce: 1b40 sub r0, r0, r5 | |
5446 8149d0: 0095 lsl r5, r2, #2 | |
5447 8149d2: 42a8 cmp r0, r5 | |
5448 8149d4: 415b adc r3, r3 | |
5449 8149d6: 42a8 cmp r0, r5 | |
5450 8149d8: d300 bcc 0x8149dc | |
5451 8149da: 1b40 sub r0, r0, r5 | |
5452 8149dc: 0055 lsl r5, r2, #1 | |
5453 8149de: 42a8 cmp r0, r5 | |
5454 8149e0: 415b adc r3, r3 | |
5455 8149e2: 42a8 cmp r0, r5 | |
5456 8149e4: d300 bcc 0x8149e8 | |
5457 8149e6: 1b40 sub r0, r0, r5 | |
5458 8149e8: 4290 cmp r0, r2 | |
5459 8149ea: 415b adc r3, r3 | |
5460 8149ec: 4290 cmp r0, r2 | |
5461 8149ee: d300 bcc 0x8149f2 | |
5462 8149f0: 1a80 sub r0, r0, r2 | |
5463 8149f2: 4291 cmp r1, r2 | |
5464 8149f4: d3cd bcc 0x814992 | |
5465 8149f6: 17e5 asr r5, r4, #31 | |
5466 8149f8: 4068 eor r0, r5 | |
5467 8149fa: 1b40 sub r0, r0, r5 | |
5468 8149fc: 0064 lsl r4, r4, #1 | |
5469 8149fe: 17e4 asr r4, r4, #31 | |
5470 814a00: 4063 eor r3, r4 | |
5471 814a02: 1b19 sub r1, r3, r4 | |
5472 814a04: bc3c pop {r2, r3, r4, r5} | |
5473 814a06: 46f7 mov pc, lr | |
5474 814a08: 2000 mov r0, #0 | |
5475 814a0a: bc3c pop {r2, r3, r4, r5} | |
5476 814a0c: 46f7 mov pc, lr | |
5477 | |
5385 IRAM data: | 5478 IRAM data: |
5386 | 5479 |
5387 0x839ea8 rf structure | 5480 0x839ea8 rf structure |
5388 0x83a09c adc_cal structure | 5481 0x83a09c adc_cal structure |
5389 0x83be2c 8-bit var I'm calling magic2_byte | 5482 0x83be2c 8-bit var I'm calling magic2_byte |
5390 0x83be30 synth_900 | 5483 0x83be30 synth_900 |
5391 0x83be60 synth_1800 | 5484 0x83be60 synth_1800 |
5392 0x83be78 synth_1900 | 5485 0x83be78 synth_1900 |
5393 0x83be90 synth_850 | 5486 0x83be90 synth_850 |
5394 0x83c048 rf_path array of structs | 5487 0x83c048 rf_path array of structs |
5488 0x83c098 16-bit var captures lna_off flag | |
5395 0x83c09c rf_data 32-bit var? | 5489 0x83c09c rf_data 32-bit var? |
5396 0x83c0a0 rf_band 8-bit var | 5490 0x83c0a0 rf_band 8-bit var |
5397 0x83c0a1 rf_index 8-bit var | 5491 0x83c0a1 rf_index 8-bit var |
5398 0x83c0a4 TP_Ptr | 5492 0x83c0a4 TP_Ptr |
5399 0x83c724 l1s_tpu_com structure | 5493 0x83c724 l1s_tpu_com structure |