Raspberry PI3 et assembleur 64 bits

On peut difficilement être plus proche du cœur du CPU qu'avec l'assembleur...

Modérateur : Francois

Répondre
VincentLeboulou
Messages : 35
Enregistré le : jeu. 19 oct. 2017 10:11

Raspberry PI3 et assembleur 64 bits

Message par VincentLeboulou » mar. 22 janv. 2019 15:37

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.

domos
Messages : 75
Enregistré le : lun. 9 mars 2015 19:17

Re: Raspberry PI3 et assembleur 64 bits

Message par domos » ven. 8 mars 2019 18:27

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.

VincentLeboulou
Messages : 35
Enregistré le : jeu. 19 oct. 2017 10:11

Re: Raspberry PI3 et assembleur 64 bits

Message par VincentLeboulou » jeu. 21 mars 2019 15:57

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.

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Raspberry PI3 et assembleur 64 bits

Message par Artemus24 » ven. 22 mars 2019 02:16

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.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Raspberry PI3 et assembleur 64 bits

Message par destroyedlolo » ven. 22 mars 2019 10:17

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.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Raspberry PI3 et assembleur 64 bits

Message par Artemus24 » sam. 23 mars 2019 08:14

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.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

domos
Messages : 75
Enregistré le : lun. 9 mars 2015 19:17

Re: Raspberry PI3 et assembleur 64 bits

Message par domos » jeu. 28 mars 2019 13:08

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

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Raspberry PI3 et assembleur 64 bits

Message par destroyedlolo » jeu. 28 mars 2019 14:23

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.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Raspberry PI3 et assembleur 64 bits

Message par Artemus24 » ven. 29 mars 2019 09:45

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+.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

VincentLeboulou
Messages : 35
Enregistré le : jeu. 19 oct. 2017 10:11

Re: Raspberry PI3 et assembleur 64 bits

Message par VincentLeboulou » mer. 30 oct. 2019 15:58

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.

Répondre

Retourner vers « Assembleur »