IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres architectures Assembleur Discussion :

[Microcontrôleur] Évaluer un bout de code en nombre d'instructions


Sujet :

Autres architectures Assembleur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 52
    Points : 47
    Points
    47
    Par défaut [Microcontrôleur] Évaluer un bout de code en nombre d'instructions
    Bonjour,

    Nous avons créé un bout de code Java permettant la reconnaissance de caractères. À terme, nous voudrions l'implémenter sur un micro-contrôleur.

    Le micro-contrôleur devrait durer un certain nombre de mois à faire un calcul.

    Nous voudrions savoir si quelqu'un connaît l'état de l'art pour répondre à la question : « Est-ce que ça va rentrer ? »

    Si on transfère notre code en C par exemple, est-ce qu'un outil fourni par le compilateur peut nous donner approximativement le nombre d'instructions élémentaires qu'il a utilisé ?

    Je sais que l'optimisation se fait plutôt en amont, côté algorithmes et complexité mais existe-il un moyen simple de connaître la plage de puissance dont on a besoin à l'avance ?

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Ça dépend beaucoup du micro-contrôleur que tu vas choisir, évidemment. Cela dit, le C est très proche du fonctionnement d'un micro-processeur, donc chaque directive a généralement un impact assez faible.

    Quoiqu'il en soit, tu peux tout-à-fait demander à ton compilateur de te sortir le code assembleur généré. Tu auras donc une vue précise de ce qui doit être inséré dans ton micro-contrôleur.

    Et puis, s'il s'agit de faire un calcul simple sur une très grande quantité de données, tu peux également envisager d'écrire directement ton programme en assembleur. Ça se faisait énormément dans les années 80 et 90. Ça s'est perdu un peu avec l'augmentation en puissance des ordinateurs et l'apparition de nouveaux langages, mais cela reste un exercice très intéressant. À titre d'exemple, le BASIC et le système d'exploitation des 8 bits des années 1980 était généralement écrit directement en assembleur et stocké dans les ROMs de la machine (d'où un temps de boot quasi-nul !). Or, la place manquait souvent et les programmes étaient rentrés au chausse-pied dans leur mémoire. En les désassemblant, on voit très bien apparaître les différents choix des programmeurs pour économiser quelques octets par ci et par là.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    Juillet 2002
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2002
    Messages : 386
    Points : 1 164
    Points
    1 164
    Par défaut
    Bonsoir,

    En fonction de ton µC tu a des outils pour développer des programme en C et ou en asm. Il est possible (cas du pic)que ces outils génèrent des fichiers contenant ton exécutable en hexadécimal. Dans ce cas il suffi de diviser la taille de ce fichier par 2 (8 bits = 00 a FF (soit 2 caractères de fichier exa eux même codé sur 8 bits)) pour obtenir la taille de ton programme final. Sinon il est aussi possible que tu te retrouve avec un fichier binaire (la c'est pas très compliquer enfin bien sur tout cela n'est valable que si tu peu effectuer la compilation de ton code dans le format compris par ton µC.

    Si ca rentre pas et que tu a fait ton code en C tu peu soit coder directement en assembleur comme propose Obsidian (ca prend en général nettement moins de place, mais plus de temps a coder).

    Note qu'utiliser l'assembleur généré par le compiler C peu se faire mais n'est pas toujours la méthode la plus simple.

Discussions similaires

  1. la sauvegarde des bouts de code ?
    Par blackhorus dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/10/2005, 13h34
  2. [XML][XSL] déplacer bout de code XML
    Par majanissa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 14/09/2005, 17h17
  3. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  4. bout de code à dechifrer svp
    Par bball dans le forum C
    Réponses: 32
    Dernier message: 20/01/2005, 23h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo