Aller au contenu


Photo
- - - - -

Programmer le tout en assembleur ?


  • Ce sujet est fermé Ce sujet est fermé
14 réponses à ce sujet

#1 coeurpizza

coeurpizza

    Nouveau membre

  • Membres
  • 3 messages

Posté 11 janvier 2018 - 09:26

Bonjour,

je voualais savoir s'il était possible de creer l'entiereté d'un robot rien qu'en utilisant l'assembleur en un temps proche de celui de l'utilisation se langage c ou ++. Puis est il facile de se passer de l'interface usb dans un tel projet ?

Ma interrogation en clair c'est le materiel que l'on teouve dans le commerce permet il la creation de robot entierement en assembleur par exemple je citais l'usb, l'usb est un protocole lourd à implementer.

#2 arobasseb

arobasseb

    Membre chevronné

  • Administrateur
  • PipPipPipPip
  • 737 messages
  • Gender:Male
  • Location:BORDEAUX (33)

Posté 11 janvier 2018 - 10:00

Je pense que tu peux tout faire en assembleur, mais pas dans un temps proche du c/cpp. Je pense que tu peux de passer de l'usb pour programmer une arduino mais il te faudra quand même une communication série pour envoyer ton code. 

Pourquoi cette question ?



#3 Forthman

Forthman

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 382 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 11 janvier 2018 - 10:02

En théorie oui, mais en pratique c'est une tâche très ardue.

 

ça revient à réinventer la roue, à assimiler toutes les docs techniques, et à réécrire un paquet de librairies.

 

De plus les compilateurs C savent exploiter les ressources des processeurs à la perfection.



#4 cocothebo

cocothebo

    Membre passionné

  • Membres
  • PipPipPip
  • 341 messages
  • Gender:Male

Posté 11 janvier 2018 - 10:05

Bonjour,

 

je voualais savoir s'il était possible de creer l'entiereté d'un robot rien qu'en utilisant l'assembleur

On peut tout faire ou presque, après un robot ça veut rien dire, donc si c'est un truc qui fait clignoter une led sur un µP style ATmega, c'est facile, si c'est à l'inverse un robot autonome mettons d'exploration martienne, ça devient plus compliqué mais reste en théorie tout a fait réalisable.

 

 

 

 

en un temps proche de celui de l'utilisation se langage c ou ++.

En général non, suivant le projet et le niveau du programmeur ça pourrait arriver dans de très rares cas, mais si projet un peu complexe ou compétences en assembleur (sur le µP coblé bien sur) pas excellente c'est sur que non.

 

 

l'usb est un protocole lourd à implementer.

 

Ah ben oui si en plus il faut implémenter tout sur le µP, ben sauf si tu es très très fort en beaucoup de domaines, c'est raté, si t'es super bon en programmtion de drivers bas niveaux, c'est plus simple mais dans ce cas tu ne poserais pas la question...

 

 

 

Bref ma conlusion est que sur une question en 3 lignes sans rien savor du projet ni de tes compétences la réponse va de oui à non (elle penche plus vers le non en général quand même).

Et surement du fait de mes a priori, mais rien que le fait de poser ce genre de question me fait dire qu'on est pas capable de faire ce genre de projet...

 

Mais surtout c'est quoi le but? si tu aimes les challenges impossibles, je te propose même de refaire un µP style 8080 (pour commencer) en transistors discrets puis de le programmer en langage machine directement.

 

Pour être un peu moins sarcastique, franchement vouloir tout faire en asembleur a part pour le côté éducatif (mais dans ce cas on s'arrête vite), l'intérêt est plus que faible, sachant qu'un bon compilateur C est capable de sortir du code aussi bien optimisé (sauf cas particuliers), voir souvent plus performant (mémoire et/ou vitesse d'execution). Et que la maintenance d'un programme un peu compliqué en C reste souvent problématique, alors en assembleur...

 

Sachant que même si le C n'est pas complétement indépendant du µP, ca reste relativement portable, par contre l'assembleur d'un µP n'a pas de vrai standard, par exemple entre une archi RISC ou CISC l'assembleur sera très différent, et même sous une même architecture générale des grosses différences existent d'un processeur à l'autre qui demande des années d'expériences pour comprndre comment optimiser du code pour un µP.

 

 

Une question, tu n'es pas une resurgence de l'excellent membre Block par hasard?

 

 

Edit: ah ben voila à vouloir faire une réponse presque argumentée, mes deux camarades du dessus ont bien résumé mon pavé indigeste :D



#5 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 11 janvier 2018 - 11:18

Une question, tu n'es pas une resurgence de l'excellent membre Block par hasard?


Ça s'pourrait, Monsieur Frodo, ça s'pourrait.
J'en profite donc pour avertir : les réponses d'Arobasseb, Forthman et Cocothebo sont pertinentes, répondent à la question initiale : c'est probablement possible, mais c'est une mauvaise idée si le but est de faire un robot.
Donc cette fois-ci, au moindre signe de fout*** de gu***le, le topic sera fermé. Pas de pitié au nom de la pédagogie ou au bénéfice du doute. J'invite par ailleurs les membres qui suspecterait ce genre d'attitude à ne pas répondre au topic (oui je sais, ça démange des fois :D).
Bien entendu, coeurpizza, si tu es ici pour apprendre et comprendre en toute bonne foi, tu es le bienvenu. Je t'invite à faire une présentation dans la section correspondante et soit à présenter ton projet dans l'autre section correspondante, soit à donner plus de détails ici si tu penses que ça peut améliorer ou changer la réponse des membres.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#6 coeurpizza

coeurpizza

    Nouveau membre

  • Membres
  • 3 messages

Posté 11 janvier 2018 - 12:19

Pour être plus précis, une personne ne connaissant pas un processeur comme le ARM7 et voulant écrire le software d'un robot doté d'une caméra, d'un microphone et de quelques servomoteurs, le tout uniquement en assembleur sans se baser sur un OS préexistant, aurait il une aisance en une dizaine de semaines pour arriver à cette tâche ?

Le software consisterait juste à recevoir les données des capteurs (tout protocole de transmission confondu) et les placer en mémoire pour l'instant.

#7 arobasseb

arobasseb

    Membre chevronné

  • Administrateur
  • PipPipPipPip
  • 737 messages
  • Gender:Male
  • Location:BORDEAUX (33)

Posté 11 janvier 2018 - 12:43

Ça me semble compromis, déjà arm n'a pas les même instructions donc même bon en assembleur x86, sans connaître le processeur oubli, 10 semaines c'est le temps de prise en main. Et en plus gérer les entrée (protocole) et des sortie pwm variable pour les servos en utilisant les timers et registres.
Tu dois pouvoir trouver des micro OS pour ça.

#8 cocothebo

cocothebo

    Membre passionné

  • Membres
  • PipPipPip
  • 341 messages
  • Gender:Male

Posté 11 janvier 2018 - 02:30

Mais ne pas utiliser d'OS est complétement disjoint du langage de programmation.

 

D'ailleurs le kernel linux (windows aussi mais je connais moins) est codé majoritairement en C, pour la bonne raison qu'en assembleur ca n'a pas d'intérêt, ça ne sera pas plus performant, ca sera non maintenance, encore beaucoup moins portable, etc. etc.

 

Bref pour moi, a part des parties critiques de code ou pour de "l'éducatif", l'assembleur n'est pas un langage à utiliser.

 

Donc la question reste ouverte, pourquoi cette idée de l'assembleur? (il y a pe de bons arguments, mais vu le contexte, ça me semble bizarre)

 

 

Sinon sur le projet avec la description super minimale donnée, 10 semaines c'est 2 mois et demi et donc c'est le temps pour faire un petit programme dans un langage connu et plutôt basé sur OS (simplifie qd même les choses)

 

 

Autre question pourquoi ARM7? un cortex M3 par exemple est souvent plus simple à mettre en oeuvre, avec un support surement meilleur et surtout un choix de µP ou board plus élevés.



#9 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 765 messages
  • Gender:Male

Posté 11 janvier 2018 - 03:56

Bref pour moi, a part des parties critiques de code...

D'autant que l'on peut insérer du code Assembleur au sein du code C quand c'est absolument nécessaire.

#10 maximusk

maximusk

    Membre passionné

  • Membres
  • PipPipPip
  • 304 messages
  • Gender:Male
  • Location:Le Mans

Posté 12 janvier 2018 - 07:36

Cocothebo, le cortex m3 est un processeur ARM v7.

Par contre je te rejoins sur le fait que la seule utilité non pédagogique à l'Assemblée leur, c'est si tu utilises un processeur pour lequel il n'y a pas de compilateur C (ou pas gratuit).

Avec des connaissances en assembleur, si le but est uniquement de copier les données des capteur dans la RAM et que ta caméra et ton micro n'utilisent pas de protocole compliqué (USB, I2S,...) c'est faisable en 10 semaines en connaissant l'assembleur. Mais c'est inutile, les compilateurs GCC pour ARM (sans OS ou linux) fonctionnent très bien et il existe plein de librairies.

#11 cocothebo

cocothebo

    Membre passionné

  • Membres
  • PipPipPip
  • 341 messages
  • Gender:Male

Posté 12 janvier 2018 - 11:22

Cocothebo, le cortex m3 est un processeur ARM v7.

Oui on est bien d'accord, un Cortex M3 c'est du ARM v7 , par contre si on parle de ARM 7 c'est une génération de processeur ARM v4 ou v5, précédant les ARM9 eux aussi en ARM v4 ou 5, précédant les ARM 11 en ARM v6, précédant les premier Cortex A qui sont eux des ARM v7.

 

Bref ARM utilise des mêmes chiffres pour parler de version de processeurs (ARM x) et pour les versions de l'architecteure (ARM v xx), donc comme coeurpizza parle de ARM7 je suis parti sur l'hypothèse que c'est le µP et pas l'architecture.

D'ailleurs on voit que c'est d'ailleurs peu précis parce qu'il y a eu des ARM7 en archi ARM v4 et d'autre en ARM v5 ;)

 

 

Maximusk je te remercie pour ta franchise, les autres non.

 

??? tout ce que dit Maximusk est identique aux autres interventions, sans connaissance de l'assembleur qui va avec l'architecture c'est franchement mal barré. Ne sachant toujours pas ce qu'est ton projet, on ne peut pas en dire beaucoup plus.

Mais faire un driver camera par exemple est déjà un travaille relativement long, sauf si comme dit pr Maximusk, l'idée est juste de récupérer les données en RAM et ne rien en faire, mais comme ça me semble pas intéressant, je supposse que l'idée est de faire quelque chose de cette caméra. Et la ne serait ce que l'acquisition corrcte d'une image ou le traitement de celle ci demande pas mal de temps (en algorithmique).

 

Après si tu t'attends à ce qu'on dise "oui c'est tout à fait faisable en X temps, sans rien connaître", et que tu ne veux pas entendre quand on dit que ça risque de ne pas être possible, il ne faut pas poser la question.

 

Une question toujours non répondue (en plus d'une explication du projet correcte, donnant l'idée de ce qu'est sensé faire ce robot) est pourquoi se focaliser sur "tout programmer en assembleur", quel est le but recherché?



#12 Forthman

Forthman

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 382 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 12 janvier 2018 - 12:27


??? tout ce que dit Maximusk est identique aux autres interventions

 

Mais c'est qu'il est vexé Cocothebo :laugh1:



#13 arobasseb

arobasseb

    Membre chevronné

  • Administrateur
  • PipPipPipPip
  • 737 messages
  • Gender:Male
  • Location:BORDEAUX (33)

Posté 12 janvier 2018 - 12:34

 
Mais c'est qu'il est vexé Cocothebo :laugh1:


Je ne pense pas que vexé soit le terme ...

#14 cocothebo

cocothebo

    Membre passionné

  • Membres
  • PipPipPip
  • 341 messages
  • Gender:Male

Posté 12 janvier 2018 - 01:23

Vexé n'est vraiment pas le mot effectivement  :whistle2:

 

Par contre effectivement, je ne sais même pas pourquoi en fait j'ai encore essayé d'expliquer/aider coeurpizza...

(d'un côté je garde l'espoir que même si ça ne sert pas maintenant, ça puisse servir à quelqu'un d'autre, mais c'est mon côté idéaliste  :tatice_03: )



#15 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 12 janvier 2018 - 03:29

Maximusk je te remercie pour ta franchise, les autres non.


Bon, c'est pas comme si j'avais prévenu. Je ferme le topic.
coeurpizza, une autre incartade de ce genre sur un autre post et c'est le ban.


R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users