calculCarre ldrh -> ldrsh

This commit is contained in:
Cavailles Kevin 2020-04-03 10:51:55 +02:00
parent d83c9d32ce
commit 2989b2d505
5 changed files with 15 additions and 157 deletions

View file

@ -170,22 +170,6 @@
<ExecCommand></ExecCommand>
<Expression>\\CHTI\Src/principal.c\16</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>22</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Src\principal.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>

View file

@ -13,8 +13,8 @@ calcul_carre proc
ldr r4, =TabCos ;on charge les tables sin et cos
ldr r5, =TabSin
ldrh r1, [r4, r0, LSL #1] ;on récupère la i-ème valeur de chacune des tables
ldrh r2, [r5, r0, LSL #1]
ldrsh r1, [r4, r0, LSL #1] ;on récupère la i-ème valeur de chacune des tables
ldrsh r2, [r5, r0, LSL #1]
mul r1, r1, r1 ;on calcule cos²

View file

@ -157,73 +157,9 @@
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>56</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134225642</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\56</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>28</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134225588</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\28</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>27</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134225586</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\27</Expression>
</Bp>
<Bp>
<Number>3</Number>
<Type>0</Type>
<LineNumber>23</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134225578</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\23</Expression>
</Bp>
<Bp>
<Number>4</Number>
<Type>0</Type>
<LineNumber>18</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134225570</Address>
<Address>134225582</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@ -235,91 +171,27 @@
<Expression>\\CHTI\Src/calcul_dft.s\18</Expression>
</Bp>
<Bp>
<Number>5</Number>
<Number>1</Number>
<Type>0</Type>
<LineNumber>18</LineNumber>
<LineNumber>25</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134225484</Address>
<Address>134225594</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Src\principal.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\CHTI\Src/principal.c\18</Expression>
</Bp>
<Bp>
<Number>6</Number>
<Type>0</Type>
<LineNumber>30</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Src\calcul_dft.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>7</Number>
<Type>0</Type>
<LineNumber>57</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Src\calcul_dft.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>8</Number>
<Type>0</Type>
<LineNumber>58</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Src\calcul_dft.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>9</Number>
<Type>0</Type>
<LineNumber>60</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Src\calcul_dft.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
<Expression>\\CHTI\Src/calcul_dft.s\25</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>tab</ItemText>
<ItemText>res_dft</ItemText>
</Ww>
<Ww>
<count>1</count>

View file

@ -30,7 +30,7 @@ calcul_dft proc
endp
calcul_partie_dft proc
push {lr,r4-r7}
push {r4-r7}
mov r4, r0 ;chargement de TabSig dans r4
@ -40,6 +40,7 @@ calcul_partie_dft proc
mov r3, #0 ;i=0 dans r3
mov r0, #0 ;resultat de la somme dans r0
boucle ldrh r1, [r4, r3, LSL #1] ;chargement de x(i)
ldrsh r2, [r5, r7, LSL #1] ;chargement de cos(ik..), ldrs(!)h tres important, ne fonctionne pas sinon
@ -55,7 +56,7 @@ boucle ldrh r1, [r4, r3, LSL #1] ;chargement de x(i)
sortie
pop {lr,r4-r7}
pop {r4-r7}
bx lr
endp

View file

@ -7,13 +7,14 @@ int etat = 0x00020000;
extern int calcul_carre(int);
extern int calcul_dft(short *, int);
int res_dft;
int res_dft[64];
int main(void)
{
res_dft = calcul_dft(TabSig,1);
for(int k=0; k<64; k++){
res_dft[k] = calcul_dft(TabSig,k);
}
u32 Periode_en_Tck = 7200000;