Flexis, 8bit ou 32bit 100% compatible ! - Mcu/Cpu (hardware et périphériques) > Commun à toute la gamme - Articles et téléchargements
Flexis, 8bit ou 32bit 100% compatible ! - Mcu/Cpu (hardware et périphériques) > Commun à toute la gamme - Articles et téléchargements
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
proposer
 
   
             
 
Catégories
 
   
             
 
Recherche
 
   
 

Flexis, 8bit ou 32bit 100% compatible !

Publié par ybourne le 01/12/2007 (6611 lectures)

J'écris cet article suite à la journée de présentation à Lyon (le 29/11/2007) à laquelle j’ai participé (ainsi que Stéphane).

Flexis est la nouvelle gamme de produit FREESCALE qui permet une continuité entre les microprocesseurs 8 bits (9S08) et les microprocesseurs 32 bits (ColdFire V1). Cela permet par exemple, pour une application donnée, d’avoir le choix dans la puissance de calcul en utilisant soit un 8 bits, un petit peu moins cher, moins gourmand ou un ColdFire bien évidemment plus performant. Ils sont pin to pin compatible, autant pour les alimentations que pour l’ensemble des périphériques.

Je pense également que c’est un bon moyen de faire une application 32 bits en venant du monde du 9S08 sans être dépaysé : même périphériques, même philosophie.


FREESCALE a apportés des améliorations sur les 9S08QE :

  • sur la partie consommation en réduisant encore la consommation du 9S08QE,
  • en implantant un ADC 12 bits,
  • en passant la fréquence bus MAX à 25MHz,
  • 2 nouveaux modes de basses consommations intéressants,
  • en implantantant un nouveau périphérique appelé RTC qui permet à partir d’un quartz externe (qui peut être le même que celui utilisé pour l’oscillateur du processeur) de générer des interruptions périodiques multiple de 1 seconde (finit les 1.024ms…) avec comptage des HH, MN et S dans des registres..
 

Toutes ces améliorations ont été également portées au nouveau core : le ColdFire V1.


Lors de la journée, les workshops se sont déroulés sur l'éval board de P&E, la DEMOQE :  

DEMOQE de P&E

 

Gamme :

Pour le moment, seuls les QE128 existent (dispo début janvier apparemment), mais la gamme va s’étoffer avec des QE96, QE64. De plus, chaque processeur, le 9S08 et le ColdFire, s’étendront de leur côté, avec un 9S08QE32 par exemple pour le 8 bits.
   


Portabilité du code :

Le code ASM n’est absolument pas portable pour cause de mnémoniques 100% différents. En effet, le ColdFire reprend les mnémoniques des autres ColdFire (V2, V3…) eux-mêmes issus du 68000.

 

Le code C est 100% portable sous conditions de respecter certaines règles :

  • Ne pas insérer d’asm,
  • Ne pas déclarer de variables à des adresses en dures,
  • Utiliser les déclarations des routines d’interruptions fournies par le compilateur et pas les « numéros » des vecteurs.

   

Programmation et debug :

La même version de CodeWarrior que pour la famille HC(S)08 est nécessaire. Pour info, Metrowerks en est à la version 6.1 et la limitation de code C est passée avec la version 6.0 à 32Ko (toujours aucune limitation pour l’ASM).

Différence de limitation pour le ColdFire V1 : 64Ko de code C.

 

Il est très aisé de changer de cible sur l’éval-board DEMOQE. Il suffit de changer de processeur (petite carte avec le processeur soudé dessus), de changer de cible dans le projet CodeWarrior (cela se fait en 4 clicks de souris), de refaire un F5 et tout se fait seul !!!

Lors du changement de cible, CodeWarrior modifie beaucoup de choses « en arrière plan » sans que l’on ai à intervenir : fichiers d’includes, compilateur, suppression des fichiers (objets, lst, map…) générés par la cible précédente.

 

Le BDM utilisé sur le ColdFire V1 est le même que pour le 9S08 (et que pour les 9S12 dans le cas du pod P&E par exemple).

   


Performances :

La version ColdFire du compilateur a l’air de présenter un manque d’optimisation évident (oui, je sais, on est pas obligé d’aller voir le fichier lst, surtout durant une présentation…).

En effet, à partir du code source présenté pour comparer les vitesses d’exécution des deux  processeurs, une simple fonction de pré décrémentation (boucle) donne ça :

   

; Delay = 0xF052 ;
    move.l #61522,d1
    move.l d1,4(a5)

; while (--Delay) ;
    subq.l #1,d2
    move.l d2,4(a5)
    tst.l d2
    bne.s *-12

 

 

Alors, que ça aurait du être quelque chose comme ça :

 

; Delay = 0xF052 ;
    move.l #61522,d1

; while (--Delay) ;
    subq.l #1,d1
    bne.s *-nn


Même avec les diverses optimisations, cela ne change pas grand chose...
 

Il faudrait travailler sur un « vrai » projet pour voir réellement la différence, mais avec les exemples donnés lors des workshops de la journée de présentation, la vitesse d’exécution, à code et Fbus identiques, est vraiment plus rapide. Cela peut aller jusqu’à 10 fois selon FREESCALE. C’est explicable par le fait que des calculs autres que 8 bits (16, 32 ou flottants) sont forcément plus adapté à un processeur 32 bits. Pour des simples opérations d’IO, la différence se réduit sûrement à pas grand-chose.
 


Conclusion :

Voilà un joli produit que nous apporte FREESCALE, à nous de l’utiliser dans de beaux projets !!!

 

Je pense que pour des projets dans lesquels il n'y a pas de grandes quantités, et sur lesquels on hésites sur un processeur ou l'autre pour des raisons de puisance de calcul, il vaut mieux directement partir sur le ColdFire. Dans le cas de gros volumes, il sera interressant de tester les 2 processeurs, car la petite différence de prix ($0.20 de plus pour le Coldfire pour 10k pièces) peut malgré tout rentrer en compte.
Il reste à voir le prix du 9S08QE128  pour le comparer au AW par exemple. En sachant qu'il devrait etre un peu plus cher de part ses 128Ko de FLASH.

Je vous ferai un feedback après une vraie utilisation, avec un file system pour carte SD, opération qui nécessite QUE des calculs sur des 32 bits. La différence devrait être énorme.

 

Yvan


Article précédent Article suivant
Article précédent Utilisation des ports Lire la température d'un DS18B20 via le bus 1-WIRE en C Article suivant
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat
maverick59
Posté le: 03/01/2008 13:55  Mis à jour: 03/01/2008 13:55
Accro
Inscrit le: 29/08/2006
De: cambrai
Contributions: 658
 Re: Flexis, 8bit ou 32bit 100% compatible !
Je viens à mon tour de me lancer, j'ai reçu ce matin même ma carte :guitare: , très bien emballée, protégée..enfin la totale.

Le seul "hic" (pour l'instant) c'est que le DVD fourni avec ne fonctionne pas (du moins pas chez moi, pourquoi??? :mur: )

Sinon, je peux confirmer qu'il s'agit bien d'un BDM totalement opérationnel (testé sur un QG8, sans avoir à mettre de jumper au demarrage), il ne semble donc pas bridé.

De plus l'alimentation par USB (même d'une cible par BDM autre que la carte) est extremement pratique.

Voila, sinon rien à rajouter pour le moment.
a bientôt.

maverick
hc11hc08
Posté le: 18/09/2008 20:44  Mis à jour: 18/09/2008 20:44
Intéressé
Inscrit le: 30/10/2005
De: Le pays de Toulouse Lautrec
Contributions: 34
 Re: Flexis, 8bit ou 32bit 100% compatible !
Bonsoir,

J'ai essayé et je n'arrive pas établir la connection avec une carte QG8 connecté au port BDM et alimenté par la carte DEMOQE128 ! Il y a t'il une manip à faire ?
Logan_Cale
Posté le: 31/10/2008 14:53  Mis à jour: 31/10/2008 14:53
Nouveau
Inscrit le: 29/10/2008
De:
Contributions: 0
 Re: Flexis, 8bit ou 32bit 100% compatible !
Petite question : ce kit comporte-t-il le microcontroleur ou est-il livré sans microcontroleur ?
Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Flexis, 8bit ou 32bit 100% compatible ! - Mcu/Cpu (hardware et périphériques) > Commun à toute la gamme - Articles et téléchargements