La Tini Board 390 - Démonstration

Démonstration par l'exemple

Introduction

Maintenant, il faut préparer et rendre opérationnel la Tini.

Cela se traduira par la mise à jour du Firmware et la mise en place des programmes permettant le résultat voulu.

Préparation de la Tini

Installation des différents packages

Dans un premier temps, il faut regrouper et installer les différents packages permettant l’exploitation de la carte.

Il faut notamment la JDK 1.2.2, le package javax.comm et le package de la Tini qui est disponible sur le site FTP de Dallas Semiconducteur.

Une fois tous ces packages installés, il est nécessaire d’effectuer certaines manipulations:

Copier le fichier win32com.dll de <JAVAX> vers <JDK>\jre\bin

Copier comm.jar de <JAVAX> vers <JDK>\jre\lib\ext

Copier javax.comm.properties de <JAVAX> vers <JDK>\jre\lib

Création d’un fichier Batch dans <TINI> contenant la ligne suivante:

<JDK>\bin\java –classpath <TINI>\bin\tini.jar;<TINI>\bin\tiniclasses.jar JavaKit

Changement de version du BootLoader

Le changement de version du bootLoader est une opération délicate et ne devant être réalisé que si elle est réellement nécessaire, car elle est déjà présente par défaut dans la Tini, contrairement au TINI OS et aux commandes ‘Slush’.

On lance le fichier batch créé précédemment, on connecte le port série sur la carte, sélectionne et ouvre le port de la Tini et l’on met sous tension la Tini.

Plusieurs points sont à prendre en compte, dont notamment la vérification du bon positionnement du switch dénommé ‘DTR Enabled Reset’ qui doit être shunter. Il est important de vérifier également la vitesse du port série, celle-ci devant être à 115200 bauds obligatoirement ; des modifications sont possibles mais demandent la recompilation de la classe Slush.java.

Au lancement du JavaKit, une partie du message suivant devrait apparaître:

Image

Dans un premier temps, il faut appuyer sur le bouton Reset permettant un accès au BootLoader qui comporte peu de commandes.

Il existe la possibilité de taper la commande HELP qui donnera toutes les possibilités.
Il s’agit maintenant de charger les fichiers requis.

File – Load <TINI>\bin\tini.tbin qui contient :

  • TINI OS (Gestionnaire de mémoire, planificateur de tâches, etc.)
  • Pile TCP/IP
  • Tous les drivers matériel
  • La Machine Virtuelle Java
  • Les API Java
  • Les commandes Slush

Mise à jour avec la manipulation:

File – Load <TINI>\bin\slush.tbin.

Le chargement terminé, il ne reste plus qu’à lancer ‘Slush’.

Pour ce faire, au retour du prompt ‘Boot Loader’ tapez la commande ‘e’ qui rebootera la Tini.

L’écran suivant devrait apparaître:

[-= slush Version 1.02 Pre-Release 3 =-]
System coming up.
Beginning initialization...]
[Not generating log file.]
[Info]
[Initializing shell commands...] [Done]
[Checking system files...] [Done]
[Initializing and parsing .startup...]
[Initializing network...]
[Network configurations not set.]
[Network configuration] [Done]
[System init routines] [Done]
[slush initialization complete.]

Hit any key to login.

Welcome to slush.
(Version 1.02 Pre-Release 3)
TINI login:

Il existe deux comptes par défaut, le compte invité ayant pour login ‘guest’ et password ‘guest’ et également le compte ‘root’ avec comme mot de passe ‘tini’.

Il est maintenant possible d’utiliser les commandes ‘Slush’.

La première d’entre elles est la commande ipconfig permettant la configuration de l’adresse IP de la Tini.

ipconfig -f -a 180.0.42.43 -m 255.255.0.0

En cas d’adresse fournie par un serveur DHCP, il faut utiliser cette commande:

ipconfig -f -d

Il existe notamment la possibilité de configurer un nom d’hote et de stocker cette configuration afin de la rendre active lors d’un redémarrage.

Sans s’étendre grandement sur toutes les commandes qui sont disponibles en annexe, la plupart sont de type UNIX et comporte une aide.

Chargement des fichiers Systèmes par Ftp ou Telnet

Une fois la configuration IP activée, les services FTP, TELNET sont démarrés.

Il ne reste plus alors qu’à transférer les fichiers à l’aide d’un logiciel de FTP classique ou par TELNET qui est la reproduction exacte de la console ‘Slush’ du JavaKit.

Premiers tests de programmation

Premiers tests d’exécution

Nous voilà maintenant rendu à la première exécution d’un programme Java sur Tini Board.

Pour débuter de façon croissante, il s’agirait d’exécuter le programme le plus classique et celui qui a été tapé par des millions de mains, le fameux ‘Hello Word’

public class HelloWord{
public static void main(String[] args)
{
System.out.println("Hello Word");
}
}

Il faut maintenant le compiler sans oublier d’y inscrire les classes à utiliser qui sont spécifiques à la Tini.
Dans le cas d’une JDK1.2, il faut remplacer le bootClassPath afin de n’utiliser plus que le compilateur java 1.2

javac -bootclasspath <TINI>\bin\tiniclasses.jar HelloWord.java

Dans le cas d’une JDK1.1, il faudra remplacer le traditionnel Classes.zip par TiniClasses.jar

Javac -classpath <TINI>\bin\tiniclasses.jar HelloWord.java

Pour des raisons de place sur la carte Tini (512Ko à 1Mo en standard), il va falloir reconvertir ce fichier en exécutable Tini, ce qui permettra de faciliter les liens entre la JVM embarquée et le programme.

Dans un premier temps, s’assurer que le fichier Tini.jar est bien dans le classpath ou qu’il est dans le répertoire <JDK>\jre\lib\etc car c’est lui qui contient le fichier permettant la conversion.

Pour ce faire, plusieurs solutions existent:

Pour transformer un fichier simple, utiliser la commande suivante:

java TINIConvertor -f HelloWord.class -o HelloWord.tini -d <TINI>\bin\tini.db

Dans le cas de plusieurs fichiers à convertir, remplacer HelloWord.class par le nom du répertoire contenant les fichiers à convertir.

Nous voilà maintenant en possession d’un fichier à l’extension .tini qui va falloir charger dans la Tini à l’aide d’un outil de ftp.

Ce fichier devra être lancer depuis une console ‘Slush’ grâce à la commande:

java HelloWord.tini

Cependant, il peut être intéressant de lancer ce programme au démarrage de la TiniBoard.

Pour ce faire, il faut utiliser un argument spécial dans la transformation qui permettra au fichier de remplacer le lancement de la console ‘Slush’.

java TINIConvertor -l -f HelloWord.class -o HelloWord.tbin -d <TINI>\bin\tini.db

Il est à remarquer le changement de l’extension du fichier produit.

En effet, ce fichier ne devra pas être transféré par la méthode traditionnelle car remplaçant la console ‘Slush’ il devra être télécharger par l’intermédiaire du JavaKit (File – Load) de la même manière que le fichier slush.tbin.

Cette opération de chargement particulière permet le stockage du programme dans la ‘bank 7’ qui est exécuté à chaque démarrage de la Tini.

Il est à noter également l’utilisation de trois fichiers de configuration contenus dans le répertoire /etc.

Ces fichiers contiennent l’état des variables d’environnement à modifier lors du démarrage (.startup), le nom de la machine ainsi que son domaine (.tininet) et également les utilisateurs et password (.passwd)

Mise en place d’un serveur Web

Les tests sur le HelloWord étant effectués, il serait utile de mettre en place un serveur Web.

Pour ce faire, créons un fichier ‘HelloWeb’ permettant l’affichage du fameux message modifié pour l’occasion.

En dépit du fait qu’il existe une classe nommée HTTPServer dans les packages constructeur, l’utilisation d’un serveur de socket connecté au port 80 s’avouera plus facile de gestion et d’utilisation.

import java.io.*;
import java.net.*;
public class HelloWeb
{
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(80);
while (true) {
Socket socket = server.accept();
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String s;
// Lecture de l'entête HTTP
while ((s = in.readLine()) != null) {
System.out.println(s);
if (s.equals(""))
break;
}
// Entête HTTP et envoie de la sortie
out.print("HTTP/1.0 200 OK\r\n\r\n");
out.print("<html><body><h1>Hello Web<h1><body><html>\r\n");
out.flush();
socket.close();
}
}
}

Après de nombreuses recherches, il sera mis en place l'utilisation de Servlet. Le programme permettant la gestion de celle-ci étant relativement complexe, il me paraissait dommage de réinventer la roue. J'utiliserai donc le serveur Web embarqué de l'entreprise : http://www.smartsc.com/tini/TiniHttpServer/docs/index.html
qui permet cette gestion de Servlet de manière simple et efficace.

Joomla 1.6 Templates designed by Joomla Hosting Reviews