JavaRush /Blogue Java /Random-PT /Em teoria sobre bytecode, JVM e microcontroladores | Códi...
Gro
Nível 19
Минск

Em teoria sobre bytecode, JVM e microcontroladores | Código Java para MK

Publicado no grupo Random-PT
Rascunho do artigo. Por fim, escreverei vários artigos semelhantes a wikis, de acordo com o seguinte esquema:

Tópico: Onde e como o Java funciona
- Sobre a estrutura do Java
- Sobre o hardware
- Como este software funciona no hardware

O artigo foi sobre os problemas que encontrei. Depois de estudar as informações, complementei-as com respostas.
É uma mistura dos tópicos acima.

Olá!

Prefácio (Offtopic)
Eu tinha e ainda tenho um desejo crescente de construir algum tipo de unidade completamente física.
Uma unidade baseada em uma ideia simples que me absorveu completamente.
Uma ideia que definiu o rumo do meu desenvolvimento nos próximos dez anos.
Em teoria, o design de um dispositivo já está meio pronto, implementando um pouquinho das capacidades daquele colosso planejado.

Neste momento, ao finalizar o projeto semiacabado, tendo mergulhado mais detalhadamente nos componentes, me deparei com a necessidade de controlar servomotores e, consequentemente, programar alguns “cérebros”.

É aí que entra uma série de perguntas, que podem ser resumidas em “É possível, e como, forçar o MK a executar código java?”




Corpo. Detalhes sobre as perguntas.
Lembramos que o código java que escrevemos é convertido em byte code, que, por sua vez, é interpretado pela JVM em código de máquina, código composto por comandos compreendidos pelo hardware. Todos entendem o motivo desta situação particular - portabilidade/portabilidade aliada a maior velocidade (em comparação com linguagens simplesmente interpretadas).

Depois que descobri isso, tive perguntas que ficaram sem resposta, surgiram e agora foram complementadas com novas.
1. É possível, usando ferramentas JVM padrão, converter completamente todo o código de bytes em código de máquina de uma só vez/compilá-lo?
se for falso.Existem ferramentas de terceiros? Pelo menos de alguma forma?

2. A JVM suporta microcontroladores/controladores? (Não sei muito sobre “cérebros” de ferro; se alguém souber, por favor me diga).
se for verdade. Há alguma diferença/recurso especial em relação ao trabalho em nossos PCs normais?




Atualizada! 09.04
Sobre 1. Não é possível executar o código na velocidade da máquina usando uma ferramenta padrão (ou seja, JVM), pelo menos é o que o wiki nos diz , mas a partir daí ficou claro que existe uma ferramenta de terceiros - GCJ . É uma alternativa à JVM e tem um ótimo bônus em seu arsenal. Não consegui encontrar informações exatas sobre as plataformas (hardware) para as quais a compilação é suportada - “muitas”.
A diferença entre código de byte e código nativo:
1) o nativo inicia mais rápido
2) Não há garantias de que o nativo funcionará mais rápido
3) Como acredito, o nativo não carregará o sistema operacional e a JVM, o que afeta significativamente a quantidade necessária para operação do programa ROM .

Talvez esta solução possa funcionar como uma alternativa à versão ME .
(Pergunta pesada, porque:
1) Não se sabe se o GCJ suporta essas plataformas de hardware de baixo desempenho.
2) Não há informações sobre o desempenho deste código.

Atualizada. 11.04
Sobre 2. Qualquer versão da linguagem Java, seja ME, SE ou Embedded, funciona em conjunto com o JRE, sendo interpretada. Exceto o caso acima e os dois futuros descritos abaixo.
Em primeiro lugar, houve tentativas de tirar o sistema operacional da cadeia, substituindo-o por uma ferramenta própria, exclusivamente orientada para Java. Sobre o que é, aqui .
Em segundo lugar, descobriu-se que existem processadores orientados a Java, sua característica é um coprocessador integrado que interpreta código de bytes em hardware (! não em software) e o envia para execução.
Leia mais sobre Jazelle . Aqui
é rico .


Offtopic
A ideia em questão é “feedback”, um tipo especificamente implementado no futuro protótipo – pressão/resistência à pressão.
Aproveite esta oportunidade para. Lendo pessoas dos níveis 15 a 25, vamos criar uma pequena comunidade de comunicação/tete-a-tete. Pois sozinho não há coragem alguma, e ainda mais - horror completo.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION