JavaRush /Blog Java /Random-FR /En théorie sur le bytecode, la JVM et les microcontrôleur...
Gro
Niveau 19
Минск

En théorie sur le bytecode, la JVM et les microcontrôleurs | Code Java pour MK

Publié dans le groupe Random-FR
Projet d'article. A terme, j'écrirai plusieurs articles de type wiki, selon le schéma suivant :

Sujet : Où et comment Java fonctionne
- A propos de la structure de Java
- A propos du matériel
- Comment ce logiciel fonctionne sur le matériel

L'article portait sur les problèmes que j'ai rencontrés. Après avoir étudié les informations, je les ai complétées par des réponses.
C'est un mélange des sujets ci-dessus.

Bonjour!

Préface (Hors sujet)
J'avais et j'ai toujours un désir croissant de construire une sorte d'unité entièrement physique.
Une unité basée sur une idée simple qui m'a complètement absorbé.
Une idée qui a orienté mon développement pour les dix prochaines années.
En théorie, la conception d’un appareil est déjà à moitié prête, mettant en œuvre une infime partie des capacités de ce colosse prévu.

À l'heure actuelle, lors de la finalisation de la conception semi-finie, après m'être immergé plus en détail dans les composants, j'ai été confronté à la nécessité de contrôler les servomoteurs et, par conséquent, de programmer certains « cerveaux ».

C’est là qu’interviennent une série de questions, qui peuvent être résumées dans « Est-il possible et comment forcer le MK à exécuter du code Java ?




Corps. Détails sur les questions.
Nous rappelons que le code Java que nous écrivons est converti en byte code, qui, à son tour, est interprété par la JVM en code machine, code constitué de commandes comprises par le matériel. Tout le monde comprend la raison de cette situation particulière : la portabilité/portabilité couplée à une plus grande vitesse (par rapport aux langages simplement interprétés).

Après avoir découvert cela, des questions sont restées sans réponse, sont apparues et ont été complétées par de nouvelles.
1. Est-il possible, à l'aide des outils JVM standard, de convertir complètement tout le code octet en code machine à la fois/de le compiler ?
si faux. Existe-t-il des outils tiers ? Au moins d'une manière ou d'une autre ?

2. La JVM prend-elle en charge les microcontrôleurs/contrôleurs ? (Je ne sais pas grand-chose sur les « cerveaux » de fer ; si quelqu’un le sait, dites-le-moi s’il vous plaît).
si c'est vrai. Y a-t-il des différences/fonctionnalités particulières par rapport au travail sur nos PC habituels ?




Mis à jour! 09.04
À propos de 1. Il n'est pas possible d'exécuter le code à la vitesse de la machine à l'aide d'un outil standard (c'est-à-dire JVM), du moins c'est ce que nous dit le wiki , mais à partir de là, il est devenu clair qu'il existe un outil tiers - GCJ . C'est une alternative à la JVM et possède un très joli bonus dans son arsenal. Je n'ai pas pu trouver d'informations exactes sur les plates-formes (matériel) pour lesquelles la compilation est prise en charge - « beaucoup ».
La différence entre le byte-code et le code natif :
1) le natif démarre plus rapidement
2) Il n'y a aucune garantie que le natif fonctionnera plus rapidement
3) Comme je le crois, le natif ne transportera pas le système d'exploitation et la JVM, ce qui affecte considérablement la quantité requise pour fonctionnement du programme ROM .

Peut-être que cette solution peut constituer une alternative à la version ME .
(Question importante, car :
1) On ne sait pas si GCJ prend en charge des plates-formes matérielles aussi peu performantes.
2) Il n'y a aucune information sur les performances de ce code.

Mis à jour. 11.04
À propos 2. Toute version du langage Java, qu'elle soit ME, SE ou Embedded, fonctionne en tandem avec le JRE, en cours d'interprétation. Sauf le cas ci-dessus et les deux futurs décrits ci-dessous.
Premièrement, il y a eu des tentatives pour sortir le système d'exploitation de la chaîne, en le remplaçant par son propre outil, exclusivement orienté Java. À propos de ce que c'est, ici .
Deuxièmement, il s'est avéré qu'il existe des processeurs orientés Java, leur fonctionnalité est un coprocesseur intégré qui interprète le byte-code dans le matériel (! pas dans le logiciel) et l'envoie pour exécution.
En savoir plus sur Jazelle .
C'est riche ici .


Hors sujet
L'idée en question est le « feedback », un type spécifiquement mis en œuvre dans le futur prototype - pression/résistance à la pression.
Saisir cette occasion pour. En lisant des personnes de niveaux 15 à 25, créons une petite communauté de communication/tête-à-tête. Car seul, il n'y a pas de courage du tout, et encore plus - une horreur totale.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION