Upload
reynard-small
View
220
Download
0
Embed Size (px)
Citation preview
The HVM embedded Java VM
For very tiny devices
Overview
• Hardware near programming: a case example
• Hardware near programming: a case example in Java
• Contributions of the HVM• Using Java to improve SW
development processes for embedded devices
A case example
• Target: CR16C– 16 bit platform from National – 8 Kb RAM + 768 Kb flash (ROM)– GCC available
• Example– Blink LED slowly and comforting, WHILE–Write simple text to UART interface
(serial)
A case example
• Blinking LEDs,– Port 2, Pin 1 soldered to LED– From CR16c specification:
A case example
• Writing to UART,– Put byte in transmit register– Enable UART transmit– Clear TX interrupt–Wait for next TX interrupt– From CR16c specification:
A case example in Java
• Let’s look at the code………………..• Compiling for the CR16c• Compiling for other platforms (ATmega2560)
Contributions of the HVM
• Hardware objects (Martin Schoeberl)• 1st level interrupt handling (Stephan
Korsholm et. al.)• Intelligent class linking (as proguard
treeshaker)• SDK independence• ROM/RAM aware• Extremely portable (gcc –nostdlib *.c)
Improving embedded SW
The wedge is made up of proper tools for ensuring software quality:
• Test driven development, unit testing, regression testing• Code review, proper design, static analysis, modeling• Scrum, communication & team spirit
• Intelligence & technical skills are the force pushing the boulder up
• Destructive forces are changes……– ..in environment– ..in tools– ..in the physical world– ..in HW– ..in SW
The birds eye view
• We are in it for the money!– Increasing SW quality– Increasing speed of development– Increasing agility– Increasing predictability of project
progress