Difference between revisions of "Flameman/tinijava-390"

From eLinux.org
Jump to: navigation, search
(Tips & Tricks)
(Introduction)
Line 11: Line 11:
  
 
== Introduction ==
 
== Introduction ==
 +
 +
TINI (for TIny Network Interface) is a complete TCP/IP node with a Java JVM all on a $50 SIMM module produced by Dallas Semiconductor. The controller is the DS80C390.
 +
 +
TINI includes, all on board:
 +
 +
* Flash
 +
* NVRAM
 +
* ethernet
 +
* RS232
 +
* CAN and iButton
 +
* Java JVM
 +
 +
All it needs is power and connectors.
  
 
the board firmware runs a tini java virtual machine, which is pretty able to boot to board, to upload java application, and to run it
 
the board firmware runs a tini java virtual machine, which is pretty able to boot to board, to upload java application, and to run it
Line 95: Line 108:
 
so if you need this old java environment email me
 
so if you need this old java environment email me
 
i will provide the java binary
 
i will provide the java binary
 
 
  
 
== doc ==
 
== doc ==

Revision as of 01:26, 10 July 2011

For more interesting projects done by Flameman, be sure to check out his project index

tinijava-390-Flameman

Note

I'm developing for this board, the wiki page will be improved soon

feel free to contact me (see the contact below)

Introduction

TINI (for TIny Network Interface) is a complete TCP/IP node with a Java JVM all on a $50 SIMM module produced by Dallas Semiconductor. The controller is the DS80C390.

TINI includes, all on board:

  • Flash
  • NVRAM
  • ethernet
  • RS232
  • CAN and iButton
  • Java JVM

All it needs is power and connectors.

the board firmware runs a tini java virtual machine, which is pretty able to boot to board, to upload java application, and to run it

The Target-goal of this page is

  • have appeal with it
  • have experience with I/O driver written in java (do you really think it i impossibile ?)


People you could contact if you need help

  • flameman, i'm currently use this board for a project, email
    • email flamemaniii@gmail.com
  • you ... if you want ;-)

About this project

About the board

Overview

The board consists of:

Memory Locations

memory map of the board will be added as soon as possible


addr begin addr end area
... ?? ram, userspace


Open questions


...

Problems

...

Images of the board

Tinijava-390-mobo.jpg



About

what/where

About firmware

About devtools

javac-390translate java to pseudo 51 assembly

  • javac-8051 machine layer has been ported to 80c390, but there is no public assembler
  • dalsemi has released a java version of java compiler and 51 assembler and linker

modern java environment are not compatible with java-51-assembler

so if you need this old java environment email me i will provide the java binary

doc

tinijava Books

Tinijava-book.jpg


Unofficial Bug List

Common problems and Gotchas

Tips & Tricks

draft

doing a project sing a "TINI Board" which is a 10 year old peice of gadgetry which hosts a web server, and using java applets, one can control the outputs (in this case LEDS) using java.

the following turns on a yellow LED, which i am taking the output to control a relay and do various things...

manip.add(LEDManip.Y1);
lcdmanip.clear();
lcdmanip.out.println("Current Move:");
lcdmanip.out.print("Elbow Down");
lcdmanip.out.flush();
pause(5000);

In the following code


import com.dalsemi.system.*;
import java.net.*;
import java.io.*;
import com.taylec.tini.*;
import com.taylec.tini.io.*;
import java.lang.*;
import java.util.*;
import com.dalsemi.system.TINIOS;
import java.util.Enumeration;

public class elbowdown
{
/**
* Pause
*/
private static final void pause(int delay_)
{
try
{
Thread.sleep(delay_);
}
catch (InterruptedException e_)
{
}
}

public static void testLED(Interrupt interrupt_)
{
try
{
LEDManip manip = new LEDManip();
LCDManipFormat lcdmanip = new LCDManipFormat();

//setup local variable to use for state manipulation of LEDs
int cur_state = 0;

//turn off the LEDs
manip.clear();

manip.add(LEDManip.Y1);
lcdmanip.clear();
lcdmanip.out.println("Current Move:");
lcdmanip.out.print("Elbow Down");
lcdmanip.out.flush();
pause(5000);



manip.subtract(LEDManip.Outer);
while(true)
{ manip.subtract(LEDManip.Inner);
if (interrupt_.getNumEvents()>0)
{
return;
}
}
}
catch (IllegalAddressException err_)
{
System.out.println(err_.toString());
}
}


public static void main(String args[])
{
Interrupt interrupt = new Interrupt();

System.out.println("Starting Motion");
testLED(interrupt);
System.out.println("Ending Motion");
System.exit(0);

}
}

When i run that code, the program continues to run and stuffs up the next one from running, so i need it to exit without having to use the interupt (a button on the TINI board) I thought it would be logical and just have the import part, then the function definition, then the LED control part, then the function stops, however when trying to remove bits, i keep getting errors.

App

bareboard