diff pirelli/fw-disasm @ 234:5b530eea8f4e

pirelli/fw-disasm: IRAM code loading located
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 22 Dec 2017 02:10:56 +0000
parents 4cd01d1458df
children 78be85145f33
line wrap: on
line diff
--- a/pirelli/fw-disasm	Thu Dec 21 23:12:46 2017 +0000
+++ b/pirelli/fw-disasm	Fri Dec 22 02:10:56 2017 +0000
@@ -81,12 +81,12 @@
    40128:	e59f2318	ldr	r2, =0x17751ec	; via 0x40448
    4012c:	e0422000	sub	r2, r2, r0
    40130:	e3a01000	mov	r1, #0
-   40134:	eb0000e1	bl	0x404c0
+   40134:	eb0000e1	bl	0x404c0		; _INT_memset
    40138:	e59f030c	ldr	r0, =0x800000	; via 0x4044c
    4013c:	e59f230c	ldr	r2, =0x82d1ec	; via 0x40450
    40140:	e0422000	sub	r2, r2, r0
    40144:	e3a01000	mov	r1, #0
-   40148:	eb0000dc	bl	0x404c0
+   40148:	eb0000dc	bl	0x404c0		; _INT_memset
    4014c:	e8bd000f	ldmia	sp!, {r0, r1, r2, r3}
    40150:	e3a00001	mov	r0, #1
    40154:	e59f12fc	ldr	r1, =0x1775074	; via 0x40458
@@ -762,6 +762,83 @@
   3bba2e:	f484 fc2d	bl	0x4028c		; $INT_EnableIRQ
   3bba32:	bd00		pop	{pc}
 
+_f_checksum:
+  3e6990:	e1a0c000	mov	r12, r0
+  3e6994:	e3a00000	mov	r0, #0
+  3e6998:	e3510000	cmp	r1, #0
+  3e699c:	012fff1e	bxeq	lr
+  3e69a0:	e4dc2001	ldrb	r2, [r12], #1
+  3e69a4:	e0820000	add	r0, r2, r0
+  3e69a8:	e1a00800	mov	r0, r0, lsl #16
+  3e69ac:	e1a00820	mov	r0, r0, lsr #16
+  3e69b0:	e2511001	subs	r1, r1, #1
+  3e69b4:	1afffff9	bne	0x3e69a0
+  3e69b8:	e12fff1e	bx	lr
+
+_f_load_int_mem:
+  3e69bc:	e92d4ff0	stmdb	sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
+  3e69c0:	e59f90c8	ldr	r9, =0x1775070	; via 0x3e6a90
+  3e69c4:	e3a0c000	mov	r12, #0
+  3e69c8:	e1c9c0b0	strh	r12, [r9]
+  3e69cc:	e59fa0c0	ldr	r10, =0x1775072	; via 0x3e6a94
+  3e69d0:	e1cac0b0	strh	r12, [r10]
+  3e69d4:	e59fc0bc	ldr	r12, =0x82d1f0	; via 0x3e6a98
+  3e69d8:	e59f00bc	ldr	r0, =0x848788	; via 0x3e6a9c
+  3e69dc:	e040000c	sub	r0, r0, r12
+  3e69e0:	e2408004	sub	r8, r0, #4
+  3e69e4:	e28c7004	add	r7, r12, #4
+  3e69e8:	e1a00007	mov	r0, r7
+  3e69ec:	e3a01000	mov	r1, #0
+  3e69f0:	e1a02008	mov	r2, r8
+  3e69f4:	ebf166b1	bl	0x404c0		; _INT_memset
+  3e69f8:	e59f40a0	ldr	r4, =0x84878c	; via 0x3e6aa0
+  3e69fc:	e59fc0a0	ldr	r12, =0x848d1c	; via 0x3e6aa4
+  3e6a00:	e04c6004	sub	r6, r12, r4
+  3e6a04:	e1a00004	mov	r0, r4
+  3e6a08:	e3a01000	mov	r1, #0
+  3e6a0c:	e1a02006	mov	r2, r6
+  3e6a10:	ebf166aa	bl	0x404c0		; _INT_memset
+  3e6a14:	e59fb08c	ldr	r11, =0x40708	; via 0x3e6aa8
+  3e6a18:	e1a0000b	mov	r0, r11
+  3e6a1c:	e1a01008	mov	r1, r8
+  3e6a20:	ebffffda	bl	0x3e6990	; _f_checksum
+  3e6a24:	e1a03000	mov	r3, r0
+  3e6a28:	e1c930b0	strh	r3, [r9]
+  3e6a2c:	e59f5078	ldr	r5, =0x5bca0	; via 0x3e6aac
+  3e6a30:	e1a00005	mov	r0, r5
+  3e6a34:	e1a01006	mov	r1, r6
+  3e6a38:	ebffffd4	bl	0x3e6990	; _f_checksum
+  3e6a3c:	e083c000	add	r12, r3, r0
+  3e6a40:	e1c9c0b0	strh	r12, [r9]
+  3e6a44:	e1a00007	mov	r0, r7
+  3e6a48:	e1a0100b	mov	r1, r11
+  3e6a4c:	e1a02008	mov	r2, r8
+  3e6a50:	ebf166c0	bl	0x40558		; _INT_memcpy
+  3e6a54:	e1a00004	mov	r0, r4
+  3e6a58:	e1a01005	mov	r1, r5
+  3e6a5c:	e1a02006	mov	r2, r6
+  3e6a60:	ebf166bc	bl	0x40558		; _INT_memcpy
+  3e6a64:	e1a00007	mov	r0, r7
+  3e6a68:	e1a01008	mov	r1, r8
+  3e6a6c:	ebffffc7	bl	0x3e6990	; _f_checksum
+  3e6a70:	e1a03000	mov	r3, r0
+  3e6a74:	e1ca30b0	strh	r3, [r10]
+  3e6a78:	e1a00004	mov	r0, r4
+  3e6a7c:	e1a01006	mov	r1, r6
+  3e6a80:	ebffffc2	bl	0x3e6990	; _f_checksum
+  3e6a84:	e083c000	add	r12, r3, r0
+  3e6a88:	e1cac0b0	strh	r12, [r10]
+  3e6a8c:	e8bd8ff0	ldmia	sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc}
+
+  3e6a90:	01775070	_d_checksum1
+  3e6a94:	01775072	_d_checksum2
+  3e6a98:	0082d1f0	_d_application_run_start
+  3e6a9c:	00848788	_d_application_run_end
+  3e6aa0:	0084878c	__470_S_MEM_out_call_run_start
+  3e6aa4:	00848d1c	__470_S_MEM_out_call_run_end
+  3e6aa8:	00040708	.ldfl+8
+  3e6aac:	0005bca0	__470_S_MEM_out_call_load_start
+
 $Application_Initialize:
   3f11f8:	b500		push	{lr}
   3f11fa:	f7ca faeb	bl	0x3bb7d4	; $Init_Target