encore 2 step de moins !!

This commit is contained in:
Yohan Simard 2020-03-31 18:18:39 +02:00
parent 193d7f8c3c
commit b298d10651
2 changed files with 40 additions and 7 deletions

View file

@ -157,6 +157,22 @@
<Bp> <Bp>
<Number>0</Number> <Number>0</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>38</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218234</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Src\calcul_dft.s</Filename>
<ExecCommand></ExecCommand>
<Expression>\\CHTI\Src/calcul_dft.s\38</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>0</LineNumber> <LineNumber>0</LineNumber>
<EnabledFlag>0</EnabledFlag> <EnabledFlag>0</EnabledFlag>
<Address>134218136</Address> <Address>134218136</Address>
@ -171,7 +187,7 @@
<Expression>0x08000198</Expression> <Expression>0x08000198</Expression>
</Bp> </Bp>
<Bp> <Bp>
<Number>1</Number> <Number>2</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>10</LineNumber> <LineNumber>10</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
@ -186,6 +202,22 @@
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression>\\CHTI\Src/principal.c\10</Expression> <Expression>\\CHTI\Src/principal.c\10</Expression>
</Bp> </Bp>
<Bp>
<Number>3</Number>
<Type>0</Type>
<LineNumber>10</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218164</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Src\calcul_dft.s</Filename>
<ExecCommand></ExecCommand>
<Expression>\\CHTI\Src/calcul_dft.s\10</Expression>
</Bp>
</Breakpoint> </Breakpoint>
<WatchWindow1> <WatchWindow1>
<Ww> <Ww>

View file

@ -3,23 +3,24 @@
export dft export dft
N equ 64 N equ 64
; vitesse actuelle : 1726 ; vitesse initiale : 1726
; vitesse actuelle : 1121
dft proc dft proc
; r0 = x (signal), r1 = k ; r0 = x (signal), r1 = k
push {r4, r5, r6, r7, r8, r9, r10} push {r4, r5, r6, r7, r8, r9}
ldr r2, =TabCos ldr r2, =TabCos
ldr r3, =TabSin ldr r3, =TabSin
mov r4, #0 ; r4 = i mov r4, #0 ; r4 = i
mov r5, #0 ; r5 = ik mov r5, #0 ; r5 = ik
mov r9, #0 ; r9 = résultat réel 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 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 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 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 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 add r5, r1 ; r5 = (i-1)k + k
and r5, #N-1 ; r5 = r5 % 64 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 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 bx lr
endp endp