A few weeks ago, Oracle made available an updated release of Java ME Embedded, version 3.3, as an Early Access (EA) for Linux on Raspberry Pi (see blog entry).
Today, we are following up with the release on ARM Cortex-M3 for the ARM RTX RTOS on the KEIL MCBSTM32F200 developer board (*see note on Cortex-M4 below).
Why is this important?
With this release, Oracle now provides a Cortex-M3/M4 reference binary of the feature-rich, standards-based Java ME Embedded runtime, scaling from mid-range embedded systems such as Linux-based platforms all the way down to micro controller-type devices with limited memory and small RTOS or minimal kernels. System requirements:
- Minimal Java ME Embedded configuration: 32-bit MCU, 130 KB RAM, 350 KB Flash/ROM
- Full Java ME Embedded configuration: 700 KB RAM, 2000 KB Flash/ROM
Yes, that is Kilobytes, not Megabytes (!)
So take your existing Java skills, use familiar tools like NetBeans and Eclipse, and develop highly-functional, robust embedded applications for a wide range of embedded use cases and devices in a snap.
For example, you can begin developing your code on a powerful and flexible desktop-class system like Raspberry Pi. Later, you take the unmodified application binary and simply deploy it directly to the resource-constrained target devices running Java ME Embedded.
Sounds easy? It is: No cross-compilation, no complexities due to platform dependencies, no dealing different sets of architectures, tools, compilers, libraries, and versions, and significantly reduced integration and testing effort … in fact, many typical embedded software development pain points just evaporate (embedded developers: if you are crying tears of joy now, I understand – I’ve been there myself 😉
And on top of the rich set of functionality already provided by Java ME Embedded 3.2, version 3.3 adds a number of new features, such as an expanded and more flexible access to peripherals (such as ADC, DAC, Pulse Counter, and watchdog), improved logging functionality, tooling enhancements, additional new sample code, and more. Still in the same, low footprint.
Ok, great! What next?
- Watch the brand-new webcast “Getting started with Java ME Embedded on KEIL” (part 1, part 2)
- Order a KEIL MCBSTM32F200 from your favorite distributor (such as Mouser, Element14, or a number of others)
- Review the Java ME Embedded 3.3 documentation, included “Getting Started Guides” and “Release Notes”
- Download the Java ME Embedded 3.3 binary for KEIL MCBSTM32F200 from Oracle Technology Network (OTN)
- Download and install the Java ME SDK 3.3 EA and/or the NetBeans and Eclipse plug-ins
- Check out Angela Caicedo’s blog post “Getting started with Java ME Embedded on KEIL”
To learn more:
- Java ME Embedded: Introduction and Highlights.
- Oracle Embedded Java: General Overview
Getting in touch:
- Ask questions on the OTN Java ME Embedded forum
- Email us at: java-me-embedded-feedback_ww_grp@oracle.com
Stay tuned for more to come.
Cheers,
— Terrence
* Note: While the MCBSTM32F200 is the officially supported board, the release also works on the MCBSTM32F400 (which is the Cortex-M4 version)
8 comments
Comments feed for this article
04/15/2013 at 22:48
Werner Keil
Glad you mention my name here so often 😉
04/16/2013 at 13:59
terrencebarr
You’re welcome, Mr. Keil. 😉
04/16/2013 at 13:52
frederick@gaens.org
Does this mean that it will be possible to program the Arduino Due in Java?
04/16/2013 at 13:58
terrencebarr
The SAM3X8E on the Arduino Due is still a bit small, but we expect newer versions coming out in 2013 to have increased RAM/Flash sizes, and then we’re looking at Arduino Due as a potential target platform.
Best,
— Terrence
04/18/2013 at 11:03
Lev Serebryakov
What about “adaptation kit”/”porting kit”?
JavaME for two not-very-cheap (Compared with STM DISCOVERY or Olimex boards or no-name China-made boards, for example) development platforms?
Ok, good for prototyping (but not for hobbyst, see prices for KEIL tools). But what should I do when I have prototype on hands and want to deploy my own custom device, STM32F200-based, but with different peripheral devices, etc?
Or what if I have other devboard, based on same uC?
And I don’t mention other Cortex-M3/M4 based uCs (and boards which use
them) with comparable flash and RAM sizes.
I understand, that it is first release, and it is great (no irony!), but is here any plans to make it more portable (so, user will be able to make JAvaME for its onw platform, not for set of 2, and even 10, or 20, predefined platforms)? Because, support only 2 devboards doesn’t look like “run once, write anywhere”. And anyway user’s device will have custom hardware!
04/18/2013 at 19:28
terrencebarr
Hi Lev,
If you are looking for a low-cost prototyping platform then Raspberry Pi is a good place to start. We also plan to support additional platforms going forward, especially on the low end. Furthermore, Java ME Embedded has a portable architecture and we are working with customers to enable Java on a wide range of hardware platforms.
Stay tuned for more.
Best,
— Terrence
06/23/2014 at 14:56
Marco
Hi.
I have a Freescale FRDM-K64F board and I’d like to know how to install the JavaME on it.
Freescale doesn’t has a Java dev kit, but it’s a Cortex-M4.
Have you ever tried something with this board or maybe have some clue?
Regards.
06/24/2014 at 10:34
terrencebarr
Currently, Java ME 8 doesn’t support the FRDM-K64F board but we’re working on expanding platform support. Please stay tuned.