From b298d10651dbc825dc200818aabf946bc37d8750 Mon Sep 17 00:00:00 2001 From: Yohan Simard Date: Tue, 31 Mar 2020 18:18:39 +0200 Subject: [PATCH] encore 2 step de moins !! --- challenge/Project.uvoptx | 34 +++++++++++++++++++++++++++++++++- challenge/Src/calcul_dft.s | 13 +++++++------ 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/challenge/Project.uvoptx b/challenge/Project.uvoptx index 0a908da..329a5b8 100644 --- a/challenge/Project.uvoptx +++ b/challenge/Project.uvoptx @@ -157,6 +157,22 @@ 0 0 + 38 + 1 +
134218234
+ 0 + 0 + 0 + 0 + 0 + 1 + .\Src\calcul_dft.s + + \\CHTI\Src/calcul_dft.s\38 +
+ + 1 + 0 0 0
134218136
@@ -171,7 +187,7 @@ 0x08000198
- 1 + 2 0 10 1 @@ -186,6 +202,22 @@ \\CHTI\Src/principal.c\10 + + 3 + 0 + 10 + 1 +
134218164
+ 0 + 0 + 0 + 0 + 0 + 1 + .\Src\calcul_dft.s + + \\CHTI\Src/calcul_dft.s\10 +
diff --git a/challenge/Src/calcul_dft.s b/challenge/Src/calcul_dft.s index 7ebb36f..90e509f 100644 --- a/challenge/Src/calcul_dft.s +++ b/challenge/Src/calcul_dft.s @@ -3,23 +3,24 @@ export dft N equ 64 - ; vitesse actuelle : 1726 + ; vitesse initiale : 1726 + ; vitesse actuelle : 1121 dft proc ; r0 = x (signal), r1 = k - push {r4, r5, r6, r7, r8, r9, r10} + push {r4, r5, r6, r7, r8, r9} ldr r2, =TabCos ldr r3, =TabSin mov r4, #0 ; r4 = i mov r5, #0 ; r5 = ik mov r9, #0 ; r9 = résultat réel - mov r10, #0 ; r10 = résultat imaginaire + mov r12, #0 ; r10 = résultat imaginaire deb_somme ldrh r6, [r0, r4, LSL #1] ; r6 = x[i], LSL #1 pour faire ×2 car chaque valeur est sur 2 octets | format 4.12 ldrsh r7, [r2, r5, LSL #1] ; r7 = cos [ik%N] | format 1.15 ldrsh r8, [r3, r5, LSL #1] ; r8 = sin [ik%N] | format 1.15 mla r9, r6, r7, r9 ; r9 += x[i] * cos[ik%n] | format 5.27 - mla r10, r6, r8, r10 ; r10 += x[i] * sin[ik%n] | format 5.27 + mla r12, r6, r8, r12 ; r10 += x[i] * sin[ik%n] | format 5.27 add r5, r1 ; r5 = (i-1)k + k and r5, #N-1 ; r5 = r5 % 64 @@ -31,9 +32,9 @@ deb_somme ldrh r6, [r0, r4, LSL #1] ; r6 = x[i], LSL #1 pour faire smull r2, r0, r9, r9 ; (r2,r0) = Re(k)² | format : 10.54 - smlal r2, r0, r10, r10 ; (r2,r0) = Re(k)² + Im(k)² | format : 10.54 + smlal r2, r0, r12, r12 ; (r2,r0) = Re(k)² + Im(k)² | format : 10.54 - pop {r4, r5, r6, r7, r8, r9, r10} + pop {r4, r5, r6, r7, r8, r9} bx lr endp