Parcourir ce sujet :
1 Utilisateur(s) anonymes
Compilateur Loop est optimisation |
||
---|---|---|
Accro
![]() ![]() Inscrit:
06/07/2007 09:17 Messages:
697
![]() |
Salut à tous
J'ai des problèmes d’exécution quand j'active les optimisation compilo (O3). L'ordre d'envoi des data sur le SPI est perturbé... Dans main.c
// variable globale
Dans Spi.c
U1 u1MAL_SPI_SyncExchange(
Si vous regardez bien, j'ai testé les 2 type de boucles (for ou while). En O0 et O1, l'envoie est dans le bon ordre: TxTab[0]TxTab[1], puis TxTab[0]TxTab[1]... Mais en O2 et O3, l'envoie est dans le désordre: TxTab[0]TxTab[0], puis TxTab[1]TxTab[1]... hors cpu dépendant, je peux comprendre mais là ... Avez vous une idée? (ca doit être liée à une parallélisation mais j'avoue ne pas savoir... je cherche)
Posté le : 10/12 15:15
|
|
![]() |
Re: Compilateur Loop est optimisation |
||
---|---|---|
Accro
![]() ![]() Inscrit:
06/07/2007 09:17 Messages:
697
![]() |
première réponse à moi-même
en mode optimisé, l'execution est 5 à 6 fois plus rapide. Dans le code présenté, je ne regardais pas le flag de buffer empty avant d'écrire...
...
bon en ajoutant le check avant d'écrire, il me manque toujours un byte sur le bus...
je devrais avoir [12][0]; [12][1]; [12][2]; [12][3];
Posté le : 10/12 16:29
|
|
![]() |
Re: Compilateur Loop est optimisation |
||
---|---|---|
Accro
![]() ![]() Inscrit:
06/07/2007 09:17 Messages:
697
![]() |
Bon re et fin de sujet XD
J'ai trouvé mon problème. Comme je fais de l'attente active sur un périphérique, j'utilise un compteur timeout. Dans mon cas il était mal configuré, donc je quitter mon exécution avec que le périphérique lève son flag... En Bon Mauvais codeur, je me suis fait avoir sur la description du bit "Transfert complet". Il faut vraiment être vigilent par rapport au comportement HW et les optimisation compilo. Rappel: sans optimisation, l’exécution se faisait sans problème...
while(SPI0SR_SPTEF == 0U){ /* !Add timeout! */};
Posté le : 10/12 17:04
|
|
![]() |
Re: Compilateur Loop est optimisation |
||
---|---|---|
Pilier de la communauté
![]() ![]() Inscrit:
23/10/2005 11:40 De Aix les Bains (73)
Messages:
1930
![]() |
Mais comme on est bons !!
![]() ![]()
Posté le : 10/12 18:19
|
|
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
|
||
![]() |
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.