logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ARM i JAVA. Czy jest jakiś uC na którym da się zainstalować wirtualną maszynę?

19 Wrz 2006 15:50 3717 7
REKLAMA
  • #1 3035659
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • REKLAMA
  • #3 3037209
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1463
    migod napisał:


    z trudem potrafię w to uwierzyć. Java z zasady działania intensywnie używa RAM. Przykład źródła to potwierdza: program basicowy w stylu wyrażony w javie. Wydaje mi się że musieli porobić mocne kompromisy (i nie wiem czy nie ze skutkiem na kompatybilności) np. ze względu na brak 32bitowej architektury.

    Na 32-bitowce są (są=w ogólnym sensie) JVM, np. na ARM.
    Na ARM-owy bądź co bądź Pocket PC normalna 'korporacyjna' JVM jest do kupienia za kilkanaście $ /sztukę z tym że to nie jest Sun, nie pamietam kto

    Jak na architektury uC ? pewnie coś znajdziesz, ale nie szukaj niżej niż 32bity. Mam na myśli ze Hardware Abstraction Layer i jakaś biblioteka standardowa też musi być.

    Lista linków:
    http://java-virtual-machine.net/other.html#embedded

    -------------

    A pomysł języków interpretowanych na uC jest mi jako kibicowi bliski. Z jednej strony są forth'y (rekordy minimalizacji) w różnych dialektach - ale to języki stosowe więc trudno się przestawić. Stosowe są też Lisp'y i Scheme'y.
    Nie wiem czy dotykałeś Forth'a ? Ja tylko czytałem, nie pisałem w nim nic. Na 8 bitach by szedł ok, nawet mini kompilator.

    Z algorytmicznych stosunkowo najmniejszy jest Lua, podejrzewał bym że na architekturach 16 bit (lub 8 z dobrą 16 bit arytmetyką) już coś być może podziałać.

    W każdym z nich nie wyobrażam sobie nie zużywania RAM-u, taka jest natura interpretera.

    Zakładając że pojawi się kiedyś potrzeba wykorzystania zalet (a są!) interpretowanych języków na uC, kto wie, może taki nawet kiedyś zaprojektuję ? ;-)
  • REKLAMA
  • #4 3038482
    migod
    Poziom 21  
    Posty: 462
    Pomógł: 29
    Ocena: 8
    JacekCz NanoVM sprawdzałem osobiście, działa całkiem sprawnie na ATm8. I ma ten plus, że kolejny program wgrywa się poprzez UART. Możliwości ma zaskakująco dość dobre - dziedziczenie, wsparcie dla static, przeciążanie. Więc to nie tylko napisanie tylko z kontrukcjami języka Java, ale też jakieś tam wsparcie dla obiektowości z ograniczeniami Javy.

    Natywną obsługę peryferiów ma oczywiście napisaną w C i tylko przemapowaną na Java. Kod jest dość zrozumiały, szybko można zacząć wprowadzać swoje poprawki. Fajna zabawa na początek. Polecam, choć główny developer jest trochę mrukowaty :)
  • REKLAMA
  • #5 3480171
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1463
    Czy ktoś z was używa takich mutacji javy jak Waba i SuperWaba ?
    Są przeniesione na przerózne komputery 16-32 bit (PalmOS 3-4 czyli motorole 68000, ARM-y i inne)
  • #6 11366437
    krygor
    Poziom 1  
    Posty: 1
    Cześć Wszystkim,
    w związku z tym iż w ww. wątku jest sporo nieaktualnych informacji, dorzucam ciekawą informacje dotyczącą Java dla 32bit MCU:

    Oracle niedawno (26 sierpnia 2012) wydał wersje Java dostosowaną do mikrokontrolerów 32bitowych Java Micro Edition Embedded 3.2

    Jest to wersja Javy dla systemów posiadając poniżej 1Megabajtów pamięci (130 kilobajtów RAM i 350 kilobajtów ROM) . Dopasowana do rdzeniu Cortex-M i Cortex-A.

    Ponadto jest też pakiet Java Embedded Suite 7.0 (serwer WWW GlassFish, Jersey - Framework WebServices Frame oraz JavaDB. Pakiet dostępny dla Linuxa na architekturę ARM i x86. Java Embedded Suite 7.0

    Powodzenia
    Krystian
  • #8 11367015
    gaskoin
    Poziom 38  
    Posty: 4159
    Pomógł: 436
    Ocena: 102
    Java i jej podobne języki nigdy nie będzie zbyt wydajna na takich układzikach (nawet z jednostką Jazelle) z bardzo prostej przyczyny - jest wielowątkowa.

Podsumowanie tematu

✨ Dyskusja dotyczy możliwości uruchomienia wirtualnej maszyny Javy na mikrokontrolerach (uC). Wskazano, że na mikrokontrolerach 8-bitowych, takich jak Atmega, istnieje projekt NanoVM umożliwiający uruchomienie uproszczonej JVM z ograniczonym wsparciem obiektowości i programowaniem w Javie, z wgrywaniem programów przez UART. Jednak ze względu na intensywne wykorzystanie pamięci RAM przez Javę, pełna JVM jest praktyczna dopiero na mikrokontrolerach 32-bitowych, zwłaszcza z architekturą ARM Cortex-M i Cortex-A. Oracle udostępnił Java Micro Edition Embedded 3.2, dostosowaną do systemów z pamięcią poniżej 1 MB (130 kB RAM, 350 kB ROM). Wspomniano także o pakiecie Java Embedded Suite 7.0 dla systemów Linux na ARM i x86, zawierającym serwer WWW GlassFish, framework Jersey oraz JavaDB. Pojawiły się również informacje o implementacji Javy na mikrokontrolerze STM32 (model STM3220G-JAVA). Zwrócono uwagę, że języki podobne do Javy, takie jak Waba i SuperWaba, działają na różnych platformach 16-32 bitowych, w tym ARM i Motorola 68000. Podkreślono, że wielowątkowość Javy i ograniczenia sprzętowe mikrokontrolerów wpływają na wydajność i kompatybilność JVM na tych urządzeniach.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA