Adresse de démarrage de kernel.img

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

Modérateur : Francois

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Adresse de démarrage de kernel.img

Message par spourre » jeu. 4 oct. 2018 16:56

VincentLeboulou a écrit :
jeu. 4 oct. 2018 15:06
me semble particulièrement intéressant surtout pour le gdb mais c'est du C et pour l'instant, je suis dans l'écriture des fonctions nécessaires en assembleur ARM. Dès que j' aurais un peu plus de temps libre, je testerai ce projet sur mon raspberry.
...
Bonjour Vincent,

On ne va pas se lancer dans une guerre picrocholine du style le C contre le monde :evil:
Vous avez choisi l’assembleur, c'est votre choix et il est respectable.
Il faut savoir qu'il est très facile, avec GNU, de faire cracher le code assembleur qui est généré, en coulisses, par le compilateur. Vous pouvez optimiser ce code, en fonction de vos compétences, mais le compilateur est un très bon compilateur.
Sur des parties critiques, vous pouvez inclure directement du code assembleur dans le source en C.
Enfin, le C comporte des opérations de bas niveau (champ de bits, décalage droite gauche, masquage, registre...) qui permettent souvent de s'affranchir de l'assembleur.

Sylvain

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

Re: Adresse de démarrage de kernel.img

Message par destroyedlolo » jeu. 4 oct. 2018 17:40

Salut,

Alors, je ne sais plus exactement comment ca marche car j'avais joué avec ca il y a des ... décénies et en plus sur du m68k et non de l'ARM mais ca devrait etre la même chose.

Si je me rappelle bien, c'est encore plus simple de tracer directement le code en assembleur car il n'a même plus a faire la "translation" entre les lignes de C et le code binaire correspondant (a l'exception bien sur si tu uses et abuses des macro). Par contre, il faut lui fournir les informations sur les "labels" utilisés ... ce qu'est sensé faire de lui-même un assembleur civilisé.

Pour la question plus philosophique assembleur ou pas : de mon point de vue, c'est une très bonne chose de connaitre l'assembleur. Ca permet de savoir comment ça se passe réellement sous le capot et de pouvoir décoder les binaires si les besoins se font sentir.
Meme si je suis rapidement passé au C ce qui permet d'avoir un code portable entre toutes les archis tout en gardant des perfs décentes (ouai, C reste mon langage préféré :) ).
  • 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 : 231
Enregistré le : ven. 15 sept. 2017 19:15

Re: Adresse de démarrage de kernel.img

Message par Artemus24 » jeu. 4 oct. 2018 17:59

Salut à tous.
VincentLeboulou a écrit :Je suis dans l'écriture des fonctions nécessaires en assembleur ARM.
Pour le fun, oui, vous pouvez faire de l'assembleur.
Mais c'est se casser la tête pour rien, car le langage C est déjà très proche de la machine.
le langage C a été créé justement pour écrire le système d'exploitation UNIX dans les années 70.
Et comme le dit si bien destroyedlolo, le code est portable ! Que demander de plus ?

Pourquoi réinventer le fil à couper le beurre à chaque fois que l'on en a besoin ?
Le compilateur C vous permet d'optimiser votre code. Pourquoi s'en passer ?
Et je ne parle même pas des bibliothèques qui sont à votre disposition.

C'est aussi mon langage préféré !

@+
--> Rpi0WH, Rpi2B, Rpi3A+, Rpi3B+
--> Tuner TV HAT

Répondre

Retourner vers « Assembleur »