2010-11-19 3 views
3

J'essaie d'ajouter un nouveau fichier d'assemblage (.S) au noyau Linux. C'est peut-être une question stupide, mais je n'arrive pas à trouver comment et où ajouter ces fichiers aux fichiers make. J'ai regardé des exemples de code de fichiers .S actuels, mais je ne peux pas trouver où ils sont assemblés et liés au binaire vmlinux.Ajout d'un fichier .S au code du noyau Linux

Tous les indices seraient affichés.

Merci!

+0

Je ne suis pas vraiment au courant de ce genre de choses (ce qui est la raison pour laquelle je ne vais pas donner une réponse), mais si vous savez où les fichiers .S résident, est-il possible le makefile fait référence à l'ensemble du dossier, de sorte vous pourriez juste mettre votre code dans ce dossier, ou ajouter un dossier unique à votre makefile? – onaclov2000

+0

Je l'ai essayé. Ne pas aller. –

Répondre

3

il suffit d'ajouter le résultat .o correspondant à une règle. Il existe des règles implicites pour la traduction .S ->.o.

+0

Merci! Je vais essayer ça –

+0

Fonctionne parfaitement! (tant que je n'ai pas de fichiers .c et .S avec le même nom) –

1

regard dans

arch/i386/boot 

et il est inclus Makefile.

C'est un peu sale, mais ils le font là - en quelque sorte. C'est pour la partie de démarrage, donc il peut ne pas être dans le "noyau proprement dit".

Avez-vous concidered faire cela dans un giagantic bloc « asm » dans un fichier .c?

La raison pour laquelle cela est si rare dans le noyau, est que le noyau est vraiment destiné à être processeur indépendant. Donc, mis à part pour certaines zones très sélectives, il y a peu d'assemblage - et quand c'est le cas - tout est fait dans des blocs "asm" à l'intérieur des fichiers .c.

+0

Je suppose que vous voulez dire arch/x86/boot. J'ai recherché le fichier make là, mais je ne trouve aucune mention de fichiers S existants. –

+0

non, je voulais vraiment dire i386! (Voir à quel point ils sont rarement utilisés!) – Brad

+0

@yeeeev: vous devriez chercher le fichier '.o' correspondant. – ninjalj

-1

Pourquoi voudriez-vous faire une telle chose en plus de supporter un nouveau processeur ?? Vous pouvez au même que arch/x86/kernel/entry_32.S.

Néanmoins, je pense que vous n'avez pas une bonne raison d'ajouter un fichier .S. Je suis sûr que vous pourriez faire autrement, ce n'est vraiment pas difficile de mélanger C et ASM.

La vraie question que vous devriez poser est la suivante: « Je suis en train de le faire ... Je pense à l'ajout d'un fichier .S, qu'est-ce que vous en pensez? »

Questions connexes