DeveloppementR8CSousLinux

De Wiki.sec.

Sommaire

Introduction

Le R8C est un petit micro contrôleur développé par Renesas (Ex Hitachi/Mitsubishi). C'est une version allégée du M16C de Renesas/Mitsubishi.

Grâce à Elecktor, qui fournit une carte facilement adaptable sur des platines d'expérimentation (contre une modeste participation de 12 euros), on peut aisément développer des maquettes de montages à base de micro-contrôleurs puissants.

Les softs fourni par Elecktor/Glynn/Renesas sont gratuit... mais ne fonctionnent que sous Windows... Nous allons donc voir comment ce débrouiller autrement sous notre système favoris.

La compilation

Bon, c'est vrais que l'assembleur c'est super... surtout pour impressionner ces potes... heureusement le R8C est suffisamment puissant pour pourvoir utiliser du code générer par du C.

Or il advient que notre compilateur préféré ( [http:// gcc ) supporte déjà notre petit micro-contrôleur (en réalité il doit supporter surtout son grand frère le M16C, mais vu que les jeux d'instructions sont identiques...). Vous pouvez notamment le récupérer chez Kpit.

Il vous faut récupérer le gnum16cm32c_vXXXX.i386.rpm (désolé pour les gens ayant une autre distrib, mais un petit coup de alien fera l'affaire), pour cela il faut t'authentifier et donner une adresse e-mail, mais les messieurs ne génèrent pas beaucoup de trafique de toute façon.

Une fois installé, il vous faudra mettre à jour votre variable d'environnement PATH pour intégrer le compilateur. Chez moi, les outils de compilations sont préfixés par m32c-elf-

Vous pourrez également constater que le package installe quelques programmes à compiler dans /usr/local/gnum16cm32c_v0701_elf-1/samples. En ce qui nous concernent, on ira dans le sous répertoire R8C pour trouver quelques exemples.

Attention, ces exemples sont destinés au R8C/11 et R8C/17, et non à notre petit R8C/13. Qu'à cela ne tienne, les R8C ce ressemblent beaucoup, et nous avons commencé la rédaction d'un fichier ior8c13.h mis à jour pour les registres de ce dernier.

Liens externes

Le flashage

Comme vous avez put le constater sur le site de NLC, il existe un soft pour flasher le R8C sous Linux, il suffit d'un simple montage pour y arriver. Vous pouvez le retrouver sur ce site.

Le flasher de NLC fonctionne bien, mais il ne supporte pas la gestion du ID diff2rent de 00:00:00:00:00:00:00.

Pour palier à ça, nous avons modifier le flasher M16C de Gaspar Sinai.

Vous trouverez ici un dépot subvesion

svn co http://fr.dotsec.net/svn/zen_flasher/trunk/ zen_flasher

Après une installation traditionnelle

cd zen_flasher
make
sudo make install

Il y a différentes façons d'utiliser ce programme, notamment en manipulant un fichier rc pour les réglages de base:

cat > .flasherrc  << EOF
# R8C/M16C flasher rc file
# Note values need to be delimited with doule quotes (")

# ID programmed in the mcu
id="00:00:00:00:00:00:00" 

# Default serial port used
port="/dev/ttyS0"

# Defautl serial port speed
baud="19200"

# Format of the input file
format="hex"

# Program range
from="0x0fe00"
to="0x0ffff"

# Output file
out="flash2.out"
     
# Ignore errors
ignore="0"
# Quiet mode
quiet="0"


#sets the communication log level
comm_log_level="1"

#set the communication log file
comm_log_file="/tmp/comm.log"
EOF

Vous pour des indices sur les variables :

flasher -h

Ensuite pour flasher le micro-contrôleur a proprement parlé, il vous faudra convertir le .mot (format SREC de Motorola ) généré par votre compilateur en format Needham_Hexadecimal

srec_cat fichier.mot -Needham_Hexadecimal fichier.hex

Ensuit, il reste que à flasher:

flasher -c write-flash fichier.hex