Page 1 sur 1

Raspberry PI3 et assembleur 64 bits

Posté : mar. 22 janv. 2019 15:37
par VincentLeboulou
Bonjour.
Pour noël j'ai évolué vers un raspberry pi 3 B+ car on se refuse rien !!
mais la version raspbian n'a pas prévu d'évoluer vers le 64 bits.
Donc on ne peut pas programmer en assembleur 64 bits !!!
J'ai essayé une version pI64 mais c'est pas gagné car j'ai rencontré plusieurs problèmes non encore résolus !
Et ma question : en 32 bits le compilateur s'appelle as et en 64 bits c'est comment ?
Peut être en chargeant Ubuntu en 64 bits ça ira mieux mais quelqu'un a -t-il aussi essayé ?
Merci.

Re: Raspberry PI3 et assembleur 64 bits

Posté : ven. 8 mars 2019 18:27
par domos
Bonjour

Juste par curiosité, pourquoi en assembleur ?

Je n'en ai plus fait depuis les Z80 / 8051 et très peu sous 8086.
Même le C/C++, je ne l'utilise plus que pour l'Arduino IDE

Je ne pratique plus que le Python maintenant.

Re: Raspberry PI3 et assembleur 64 bits

Posté : jeu. 21 mars 2019 15:57
par VincentLeboulou
Ah, ah parce que c'est pour le plaisir !!!
Après avoir programmé en de nombreux langages, je suis revenu à l'assembleur sur le raspberry pi car c'est le plus près du processeur.
Et puis ça change des processeurs Intel avec Windows. Un processeur RISC avec peu d'instructions quel plaisir !!!
Bon le dernier problème que j'ai avec l'OS pi64, c'est que la puce wifi ne semble pas active et je n'ai pas encore trouvé comment l'activer mais je désespère pas.
Cordialement.

Re: Raspberry PI3 et assembleur 64 bits

Posté : ven. 22 mars 2019 02:16
par Artemus24
Salut à tous.

Le langage 'c' est proche du processeur.
Hormis le plaisir de travailler en assembleur, il n'y a pas beaucoup de différence avec le langage 'C'.
Pour ce qui est de la rapidité, cela ne dépend pas du langage utilisé, mais des priorités que l'on accorde à la tâche qui s'exécute.

Être proche de la machine, ne veut pas dire que tout sera plus simple à programmer.
Même si le processeur de la Raspberry est un ARM, c'est avant tout un SOC (System On Chip).
Autrement dit, il y a beaucoup de choses dans la puce afin de gagner de la place.
Et ce n'est pas toujours très bien documenté, voire aucun document.
Par exemple, il n'y a rien dans la documentation concernant le processeur vidéo.
Vous allez vous compliquer l'existence en tentant de redéfinir des routines de bases qui existent déjà en 'C'.

Pour l'assembleur, je connais le 6502, z80, 8080, 6800, 68000 et surtout l'assembleur IBM 370.

@+

Re: Raspberry PI3 et assembleur 64 bits

Posté : ven. 22 mars 2019 10:17
par destroyedlolo
Salut,

mes 2 centimes :
Pour ce qui est de la rapidité, cela ne dépend pas du langage utilisé, mais des priorités que l'on accorde à la tâche qui s'exécute.
Il y a aussi la rapidité propre au langage et l'impact que ca a sur le système.
De ce coté, il y a peu de différences en terme de performances entre un programme en C et en assembleur car les optimisateurs font très bien leur boulo : parfois, ils font même des optimisations que nous n'aurions même pas pensé. Par contre, le C garde une empreinte plus importante du fait des librairies qu'il inclus par défaut ... et c'est encore pire en C++
A l'opposé du spectre, il y a ... python dont l'objectif n'a jamais été les performances mais la facilité d'utilisation. Ca s'améliore, mais bof.

De mon coté, je "sais lire" de l'assembleur ARM ce qui est utile pour débugger par exemple, mais je n'ai pas fait l'effort de maitriser un Nieme assembleur.
Même si je connais d'autres langages, je me focalise sur
  • les C, voir C++ pour tout ce qui doit être rapide et avoir une faible empreinte (démon système, truc qui tournent 24/24, couche technique) et évidement l'Arduino / ESP.
  • Lua pour tout ce qui est scripting, ou pour avoir un langage embarqué (par exemple, pour mon système domotique, tous ce qui est bas niveau, lourds, partagé avec toutes les applications est en C ou C++, mais le langage "utilisateur" pour décrire l'interface et les automatismes est en Lua ce qui facilite les mise à jour)
  • NodeJS dans certains cas, mais son empreinte reste largement supérieur à Lua. Par contre, il a l'avantage sur ce dernier d'avoir une programmation objet digne de ce nom.
  • PHP pour du web
  • pour des raisons pro, je pratique évidement Java : mais je déteste sa facon débile de gérer la mémoire, son empreinte système déplorable et la lourdeur généralisée des JVM. Je l'utilise pour de très gros système d'intégration qui tournent 24/24, mais absolument pas pour mes developpement perso.

Re: Raspberry PI3 et assembleur 64 bits

Posté : sam. 23 mars 2019 08:14
par Artemus24
Salut Destroyedlolo.
Destroyedlolo a écrit :Il y a aussi la rapidité propre au langage et l'impact que ca a sur le système.
Avec l'arduino, comme il n'y a pas de système d'exploitation, c'est bien plus rapide d'écrire en assembleur.
Avec la raspberry, ce n'est pas le cas car on est obligé de passer par l système d'exploitation, et de ce fait, les deux langages sont équivalents.
Destroyedlolo a écrit :Par contre, le C garde une empreinte plus importante du fait des librairies qu'il inclus par défaut ... et c'est encore pire en C++
Pour la volumétrie de l'exécutable, oui, je suis d'accord.
Avec le langage assembleur, on developpe juste ce dont on a besoin, la volumétrie sera la plus faible.
Mais cela nécessite à chaque fois de réinventer une routine, alors qu'ne 'C', il suffit de faire référence à la bibliothèque.
Destroyedlolo a écrit :A l'opposé du spectre, il y a ... python dont l'objectif n'a jamais été les performances mais la facilité d'utilisation.
Python est un langage interprété et sera toujours moins performant qu'un langage compilé comme le 'C'.

Coté langage, j'en connais beaucoup, à cause de mon expérience professionnelle dans les services (SSII). Sauf que depuis, beaucoup ont disparu et sont tombés en désuétude.
Maintenant que je suis à la retraite, je ne les pratique plus, comme par exemple cobol.

Coté web client, je me contente de html, css, javascript, et coté serveur, php, perl, mysql, firebird, microsoft sql server, ainsi qu'apache et phpmyadmin dans wampserver.
Coté bidouillage windows, surtout le 'C' et 'C++', les batch, ...
Coté raspberry, les scripts bash (bourne again shell), le 'C'. J'avais aussi la connaissance de korn-shell, c-shell mais je ne les pratique plus.

Par contre, je ne fais pas d'arduino. Je ne suis pas encore décidé de basculer du coté électronique. Sinon, je m'amuse bien avec mes raspberry.

@+

Re: Raspberry PI3 et assembleur 64 bits

Posté : jeu. 28 mars 2019 13:08
par domos
De l'assembleur sur Zx81, Ça, c'était passer de la marche à pied (Basic) à la vitesse de la lumière :)

Bon désolé, je me suis égaré dans une faille temporelle

Re: Raspberry PI3 et assembleur 64 bits

Posté : jeu. 28 mars 2019 14:23
par destroyedlolo
Pareil pour moi pour les pockets Sharp : nous sommes dans la même faille :mrgreen:

Il y a qq années (5 ou 6 ans), des gars avaient refait sur PC un OS entierrement en assembleur. Vitesse, légerté sans commune mesure avec des Nunux (et je ne parle meme pas des m$erie) mais ca demande évidement des temps developpement beaucoup plus importants ainsi que des efforts de maintenance sans commune mesure.

Re: Raspberry PI3 et assembleur 64 bits

Posté : ven. 29 mars 2019 09:45
par Artemus24
Salut à tous.

J'ai appris l'assembleur avec les bouquins de Mr Rodnay Zaks.
Et je l'ai pratiqué sur des cartes mères ou des ordinateurs comme par exemple le 6502 avec l'Apple II+.

@+

Re: Raspberry PI3 et assembleur 64 bits

Posté : mer. 30 oct. 2019 15:58
par VincentLeboulou
Bonjour amis AsPi (ASsemblistes PIeiste).
Grâce à cette version que j'ai installée sans problème sur le raspberry pi3B+ j'ai pu compiler et exécuter mes premiers programmes en assembleur ARM 64 bits.
Voir :
https://github.com/sakaki-/raspbian-nspawn-64
et
https://assembleurarmpi.blogspot.com/20 ... bleur.html

L'avantage de cette version est que l'on peut compiler et exécuter des programmes 32 bits et dans un container 64 bits, des programmes 64 bits sans manipulation de cartes SD.
Une remarque : je n'utilise qu'une console Linux au travers d'une connexion ssh Putty et donc j'ignore si cette version est OK pour d'autres tâches.