"ATEXA électronique" <hisawa
(remplacer_par_@)wanadoo.fr> a écrit dans le message de news:
43aa2135$0$6677$8fcfb975
(remplacer_par_@)news.wanadoo.fr...
Bonjour,
je "bricole" sur un ADuC7024 (ARM7TDMI core) avec une version limitée
de Keil uVision3 et quelque chose me chagrine :
Pour faire passer une sortie de 1 à 0 et recommencer à l'infini, il faut
44 cycles d'horloge à ce µC.
Cela me semble plus qu'énorme pour un µC donné page 4 de la doc
à plus de 40 MIPS peak !?
N'importe quel µC 8 bits actuel me semble à priori bien plus performant !
La valeur du "CPU clock divider" me semble bien réglé (il y a 8 valeurs
possible et je vois bien une modification de temps d'exécution quand je
change cette valeur).
Tout est il dans le "40 MIPS peak" ?
Je pense à qq chose du genre qqs instructions en 1 cycle les autres en n
cycles...
Y a t il une autre explication ?
Si qq'un pouvait éclairer ma lanterne.
Bonjour Alexandre,
Je n'ai jamais utilisé le ADuC7024 mais j'ai une bonne expérience des
ARM7TDMI via la gamme Philips LPC. Les performances que tu obtient sont
effectivement largement en dessous ce que tu devrais avoir. Disons qu'en
assembleur une telle boucle est possible avec 7-8 instructions, peut être le
double avec le compilateur Keil (qui n'est pas particulièrement le plus
efficace), mais surement pas 44...
Quelques pistes :
- as-tu verifié le code assembleur généré ?
- le code est-il en RAM ou en flash ? Dans le cas des chips Philips il y a
un module a activer spécificiquement (le MAM) pour avoir des performances
correctes en flash. Un test en ram devrait te permettre de verifier ce point
Cordialement,
--
Robert Lacoste
ALCIOM - The mixed signal experts
www.alciom.com