Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : Electronique

Bohemian Rhapsody joué par du matériel informatique !

Patrice Kadionik Salut.

Ci-après la vidéo de la chanson Bohemian Rhapsody joué par du matériel informatique...

Super bien fait !

++






DOSBox : exemple de mise en oeuvre

Patrice Kadionik

Salut.

J'avais parlé dans un précédent billet de DOSBox, un  émulateur libre de vieux PC x86.

Je vous propose de décrire sa mise en oeuvre sur un exemple. Le but est de pouvoir utiliser le célèbre outil PCBug11 (sous Windows) pour configurer un microcontrôleur 68HC11 qui ne tourne que sur des PC de moins de 300 MHz, autant dire sur aucun PC d'aujourd'hui.

PCBug11 est un moniteur développé par Motorola qui permet d'interagir avec le microcontrôleur 68HC11 quand celui est configuré en mode bootstrap.

La première chose est de configurer DOSBox sous Windows via son fichier de configuration dosbox.conf. On émulera un vieux PC 386 avec les supports des ports série COM1 et COM2, un port COM étant utilisé pour dialoguer avec le microcontrôleur 68HC11:

[cpu]
cputype=386

[serial]
serial1=directserial realport:com1
serial2=directserial realport:com2

[autoexec]
mount c: d:\users\patrice\68hc11\pcbug11
c:

PCBug11 est utilisé avec 2 fichiers de configuration .mcr : le fichier maintain.mcr permet de configurer l'environnement de PCBug11 :

DEFM AUTOSTART
BEGIN
CONTROL BASE HEX
BF 103C e5
eeprom b600 b7ff
loadm buffalo
loadm talker
END

Le fichier talker.mcr définit une macro TALKER qui permet de flasher en mémoire EEPROM du microcontrôleur un programme appelé talker :

DEFM TALKER
BEGIN
CONTROL BASE HEX
MS $1035 0
EEPROM $B600 $B7FF
EEPROM ERASE BULK
LOADS TALKEREE
VERF TALKEREE
END

On lance ensuite DOSBox puis l'on rentre la commande suivante pour lancer PCBug11 :

c:\> pcbug11 -e port=1 macro=maintain

On obtient les images suivantes :

DOSBox1.png

DOSBox2.png

Grâce à DOSBox, j'ai pu réutiliser PCBug11 sur un PC d'aujourd'hui pour reprogrammer les vieux microcontrôleurs 68HC11 !

++

DOSBox est sous licence GPL. Ses sources sont disponibles ici.

Sources :

DOSBox : un émulateur libre de vieux PC x86

Patrice Kadionik

Salut.

Pour un besoin d'usage d'un vieux logiciel DOS (le célèbre PCBug11) pour configurer un microcontrôleur 68HC11 qui ne tourne que sur des PC de moins de 300 MHz, j'ai découvert le projet libre DOSBox.

DOSBox émule un vieux PC x86 avec le son, la sortie graphique, le joystick, le modem... nécessaires pour faire tourner de vieilles applications ou d'anciens jeux MS-DOS (les bons oldies comme Gato, Golf...) qui ne peuvent pas tourner directement sur des PC modernes sous Windows, Linux ou FreeBSD. DOSBox fournit son propre système de commandes DOS.

DOSBox tourne sous Windows, Linux, Mac OS X, Solaris... Tout est basé sur la configuration du fichier dosbox.conf. Je donnerai un exemple de configuration dans mon prochain billet.

DOSBox est aussi utilisé avec des frontends graphiques pour en faciliter l'usage surtout pour les fans d'oldies...

Grâce à DOSBox, j'ai pu utiliser mon bon vieux PCBug11 sur mon PC de bureau et j'ai pu résoudre mon problème de programmation de l'EEPROM de mes microcontrôleurs 68HC11.

DOSBox est sous licence GPL. Ses sources sont disponibles ici.

Sources :

Open Hardware Summit 2010

Patrice Kadionik

Salut.

Il y a eu le 23 septembre le "Open Hardware Summit" 2010 à New York sur le Matériel Libre. Dans la lignée du Logiciel Libre, le matériel se libère de ses chaînes...

++

Mise en oeuvre de la sonde JTAG Xilinx sous Fedora

Patrice Kadionik

Avec l'arrivée de Fedora 13 (je n'ai pas encore écrit de billet sur la nouvelle version de Fedora), j'ai bien sûr mis à jour ma machine de développement et j'ai rencontré un petit soucis de reconnaissance de la sonde JTAG Xilinx.

J'avais expliqué dans un billet précédent comment mettre en œuvre la sonde sous Fedora.

Avec Fedora 13, les règles udev créées lors de l'installation d'ISE pour l'accès à la sonde ne sont plus valables et la sonde n'est plus reconnue. Si tout va bien et que la carte connectée à la sonde est alimentée, il y a alors une jolie led verte qui s'allume.

Il faut donc revoir les règles udev pour la sonde et remplacer le contenu du fichier /etc/udev/rules.d/xusbdfwu.rules par :

# version 0003
SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", MODE="666"
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D %N"
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D %N"
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D %N"
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D %N"
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D %N"
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D %N"

Après débranchement et rebranchement du câble USB, tout va bien à nouveau.

++

Source :

  • Document : Running Xilinx ISE and EDK 10.1 in Ubuntu 8.10 and 9.10.

XPS_SDK de Xilinx sous Fedora

Patrice Kadionik

Salut.

Je suis tombé sur un petit problème de rendu graphique avec l'outil de développement logiciel XPS_SDK de Xilinx (version 11.4) qui permet de développer le logiciel embarqué qui s'exécutera sur le système SoPC programmé dans un circuit FPGA. de Xilinx.

En utilisant l'outil xps_sdk qui est en fait Eclipse avec des plugins propres à Xilinx, il apparaissait aucun texte visible des fichiers édités. Il y avait aussi un problème de clic sur les boutons de l'interface graphique dans certains menus.

J'avais beau joué sur la couleur du texte ou du fond dans les menus idoines d'Eclipse, que nenni !

J'ai en fait trouvé la solution sur ce fil du forum Xilinx...

Il semble que ce soit lié aux widgets GDK. Pour résoudre le problème, il suffit d'exporter la variable d'environnement :
export GDK_NATIVE_WINDOWS=1
J'ai ainsi modifié mon script mbsdk en conséquence pour avoir un environnement bien configuré pour utiliser les outils ISE de Xilinx :
#!/bin/bash
# Run this for a Xilinx SDK bash shell
export LM_LICENSE_FILE=1700@localhost
export XIL_IMPACT_USE_LIBUSB=1
export GDK_NATIVE_WINDOWS=1
source /opt/Xilinx/11.1/ISE/settings32.sh
source /opt/Xilinx/11.1/EDK/settings32.sh
# set prompt
export PS1="\[\e[32;2m\]\w\[\e[0m\]\n[Xilinx EDK]$ "
bash

Et voilà ;-)" class="smiley

++


SOPC Builder de Quartus sous Fedora 12

Patrice Kadionik

Salut.

Il est plaisant de pouvoir faire du codesign sur sa distribution préférée que ce soit avec les outils Altera ou avec les outils Xilinx.

Avec le passage à Fedora 12, je suis tombé sur un problème avec l'outil SOPC Builder de Quartus II d'Altera. Lors de la génération du système SoPC avec SOPC Builder, j'ai l'erreur suivante que je n'avais pas sous Fedora 11 ou Fedora 10 (version de Quartus : 9.0) :

Info: ext_flash: Flash memory capacity: 8.0 MBytes (8388608 bytes).
Warning: reconfig_request_pio: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation.
Info: Wrote /home/eddy33/design/std_1s10.sopcinfo
Info: std_1s10: Wrote /home/eddy33/design/std_1s10.html
Info: std_1s10: Generating QIP file.
Info: Info: *******************************************************************
Info: Info: Running Quartus II Shell
Info: Info: Version 9.0 Build 132 02/25/2009 SJ Full Version
. . .
Info: Info: Elapsed time: 00:00:00
Info: Info: Total CPU time (on all processors): 00:00:00
Info: Starting PTF file elaboration.
"/opt/altera9.0/quartus/linux/jre/bin/java" -Xmx512M -classpath "/opt/altera9.0/quartus/sopc_builder/bin/sopc_builder.jar:/opt/altera9.0/quartus/sopc_builder/bin/PinAssigner.jar:/opt/altera9.0/quartus/sopc_builder/bin/sopc_wizard.jar:/opt/altera9.0/quartus/sopc_builder/bin/jptf.jar" . . . /../ip/altera/nios2_ip"
/opt/altera9.0/quartus/linux/jre/bin/java: symbol lookup error: /usr/lib/libXi.so.6: undefined symbol: XESetWireToEventCookie
Error: Failed to refresh PTF file
Info: Finished elaborating PTF file.
Executing: /opt/altera9.0/quartus//sopc_builder/bin/sopc_builder --classic --generate /home/eddy33/design/std_1s10.ptf
Info: Starting generation...
"/opt/altera9.0/quartus/linux/jre/bin/java" -Xmx512M -classpath "/opt/altera9.0/quartus/sopc_builder/bin/sopc_builder.jar:/opt/altera9.0/quartus/sopc_builder/bin/PinAssigner.jar:/opt/altera9.0/quartus/sopc_builder/bin/sopc_wizard.jar:/opt/altera9.0/quartus/sopc_builder/bin/jptf.jar" sopc_builder.sopc_builder -d"/opt/altera9.0/quartus/sopc_builder" -notalkback=1 -projectnamestandard.qpf -projectpath/home/eddy33/design --generate /home/eddy33/design/std_1s10.vhd --quartus_dir="/opt/altera9.0/quartus" --sopc_perl="/opt/altera9.0/quartus/linux/perl" . . . /opt/altera9.0/quartus/../ip/altera/nios2_ip"
/opt/altera9.0/quartus/linux/jre/bin/java: symbol lookup error: /usr/lib/libXi.so.6: undefined symbol: XESetWireToEventCookie
Error: System generation failed.

Il y a manisfestement un problème avec la bibliothèque libXi...

Si l'on regarde la version de libXi sous Fedora 12 :

# rpm -qa|grep libXi-
libXi-1.3-1.fc12.i686
# ls -l /usr/lib/libXi.so*
lrwxrwxrwx 1 root root 14 2010-01-11 15:37 /usr/lib/libXi.so -> libXi.so.6.1.0
lrwxrwxrwx 1 root root 14 2010-01-11 15:37 /usr/lib/libXi.so.6 -> libXi.so.6.1.0
-rwxr-xr-x 1 root root 56728 2009-10-06 19:32 /usr/lib/libXi.so.6.1.0

La bibliothèque libXi de Fedora 12 est la version 6.1.0.

Si l'on regarde la version de libXi sous Fedora 11 :

# rpm -qa|grep libXi-
libXi-1.2.1-1.fc11.i586

La bibliothèque libXi de Fedora 11 est la version 6.0.0.

Il convient de réinstaller la version 6.0.0 de libXi sous Fedora 12 :

# wget ftp://ftp.free.fr/pub/Distributions_Linux/Fedora/releases/11/Everything/i386/os/Packages/libXi-1.2.1-1.fc11.i586.rpm
# rpm -ivh --force libXi-1.2.1-1.fc11.i586.rpm

# cd /usr/lib
# \rm libXi.so.6
# ln -s libXi.so.6.0.0 libXi.so.6
# \rm libXi.so
# ln -s libXi.so.6.0.0 libXi.so

# ls -l /usr/lib/libXi.so*
lrwxrwxrwx 1 root root 14 2010-01-11 15:37 /usr/lib/libXi.so -> libXi.so.6.0.0
lrwxrwxrwx 1 root root 14 2010-01-11 15:37 /usr/lib/libXi.so.6 -> libXi.so.6.0.0
-rwxr-xr-x 1 root root 34636 2009-02-26 00:38 /usr/lib/libXi.so.6.0.0
-rwxr-xr-x 1 root root 56728 2009-10-06 19:32 /usr/lib/libXi.so.6.1.0

Et voilà, SOPC Builder remarche sous Fedora 12 ;-)" class="smiley

++

Mise en oeuvre de la sonde JTAG Xilinx sous Fedora

Patrice Kadionik

Salut.

Pour pouvoir mettre en œuvre des circuits FPGA Xilinx sur une carte d'évaluation (ML507 de Xilinx), il est nécessaire de mettre en œuvre la sonde JTAG pour la programmation du circuit FPGA, entre autres.

Afin de pouvoir concevoir des systèmes SoPC (System on Programmable Chip) sous Linux embarqué, j'ai décidé d'utiliser les outils Xilinx pour la partie conception matérielle et Linux embarqué pour la partie logicielle sous Linux ;-)" class="smiley

J'utilise bien sûr ma distribution préférée Fedora. Ce qui suit doit pouvoir marcher sur d'autres distributions...

Il convient dans un premier temps d'installer les outils Xilinx (ISE, EDK, SDK) sous Linux.

Ensuite, il faut faire reconnaître la sonde JTAG Xilinx qui est un périphérique USB par Fedora :

# lsusb
Bus 002 Device 007: ID 03fd:0008 Xilinx, Inc.
. . .

Il faut installer déjà l'outil fxload :

# yum install -y fxload

J'ai pour ma part installé la version 11.1 des outils Xilinx sous /opt. On débranche la sonde JTAG du PC.

Il convient ensuite d'installer le firmware de la sonde et les règles udev :

# cd /opt/Xilinx/11.1/common/bin/lin/
# sh setup_pcusb
--File /usr/share/xusbdfwu.hex exists.
--File /usr/share/xusbdfwu.hex version = 1030
--File xusbdfwu.hex exists.
--File xusbdfwu.hex version = 1030
--File xusbdfwu.hex is already updated.
--File /usr/share/xusb_xlp.hex exists.
--File /usr/share/xusb_xlp.hex version = 1028
--File xusb_xlp.hex exists.
--File xusb_xlp.hex version = 1028
--File xusb_xlp.hex is already updated.
--File /usr/share/xusb_emb.hex exists.
--File /usr/share/xusb_emb.hex version = 1028
--File xusb_emb.hex exists.
--File xusb_emb.hex version = 1028
--File xusb_emb.hex is already updated.
. . .
--File xusb_xse.hex version = 2006
--File xusb_xse.hex is already updated.
--File /etc/udev/rules.d/xusbdfwu.rules exists.
--File /etc/udev/rules.d/xusbdfwu.rules version = 0003
--File xusbdfwu.rules exists.
--File xusbdfwu.rules version = 0003
--File xusbdfwu.rules is already updated.

Depuis la version 10 des outils Xilinx, la sonde JTAG peut être pilotée avec la bibliothèque libusb (on vérifiera que la bibliothèque libusb est bien installée, ce qui est le cas par défaut pour Fedora). Il convient de rajouter le lien symbolique suivant :

# cd /usr/lib/
# ln -s libusb-0.1.so.4 libusb.so

On rebranche la sonde JTAG Xilinx. Si la sonde est branchée sur la carte cible et que cette dernière est alimentée, alors la led de la sonde JTAG est alumée de couleur verte ! Tout va bien ;-)" class="smiley

Il est important de positionner la variable d'environnement XIL_IMPACT_USE_LIBUS à 1 pour que les outils Xilinx utilisent la bibliothèque libusb. On se créera par exemple le script mbsdk suivant pour travailler dans l'environnement Xilinx :

#!/bin/bash
# Run this for a Xilinx bash shell

export LM_LICENSE_FILE=1700@mon_serveur_flexlm
export XIL_IMPACT_USE_LIBUSB=1

source /opt/Xilinx/11.1/ISE/settings32.sh
source /opt/Xilinx/11.1/EDK/settings32.sh

# set prompt
export PS1="[MB EDK]$ "

bash

Tout est prêt maintenant. Pour exemple, voici la démo "hello world!" pour la carte cible ML507 :

$ mbsdk
[MB EDK]$ cd .../ml507_ppc440_emb_ref/ready_for_download/
[MB EDK]$ impact -batch ug511.cmd
Release 11.1 - iMPACT L.33 (lin)
Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved.
Preference Table
Name Setting
StartupClock Auto_Correction
AutoSignature False
KeepSVF False
ConcurrentMode False
UseHighz False
ConfigOnFailure Stop
UserLevel Novice
MessageLevel Detailed
svfUseTime false
SpiByteSwap Auto_Correction
AutoDetecting cable. Please wait.
OS platform = i686.
Connecting to cable (Usb Port - USB21).
Checking cable driver.
File version of /opt/Xilinx/11.1/ISE/bin/lin/xusbdfwu.hex = 1030.
File version of /usr/share/xusbdfwu.hex = 1030.
Using libusb.
. . .
INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully.
. . .
'5': Loading file 'download.bit' ...
done.
. . .
'5': Programming device...
. . .
'5': Programmed successfully.
Elapsed time = 10 sec.
[MB EDK]$ xmd -opt ug511.opt
Xilinx Microprocessor Debugger (XMD) Engine
Xilinx EDK 11.1 Build EDK_L.29.1
Copyright (c) 1995-2007 Xilinx, Inc. All rights reserved.
XMD%
Info:AutoDetecting cable. Please wait.
Info:Reusing A006A001 key.
Info:Reusing 2406A001 key.
Info: OS platform = i686.
Info:Connecting to cable (Usb Port - USB21).
Info:Checking cable driver.
Info:Overriding Xilinx file <> with local file </opt/Xilinx/11.1/EDK/bin/lin/>
Info:File version of /usr/share/xusbdfwu.hex = 1030.
Info: Using libusb.
. . .
XMD% dow helloworld_executable.elf
XMD% run

Tout marche ! Tout va bien ;-)" class="smiley
++

Utiliser ISE et Quartus à distance par tunnel ssh

Patrice Kadionik

Salut.

J'utilise dans le cadre de mon travail les outils de synthèse ISE de Xilinx et Quartus d'Altera.

Ces outils me permettent essentiellement de développer des systèmes SoPC (System on Programmable Chip) que j'utilise par la suite sous Linux embarqué.

Bien qu'initialement développés pour marcher sous Windows, ISE et Quartus sont disponibles sous Linux et supportés par la distribution REHL.

Mais ces outils marchent tout aussi très bien sous Fedora si bien que j'ai un environnement complet sous Fedora pour la synthèse matérielle et pour le développement logiciel.

Les licences d'utilisation d'ISE et de Quartus sont gérées par un serveur de licences réseau de type flexlm. Dès lors, pour travailler à distance avec ISE et Quartus, il suffit de créer un tunnel ssh vers le serveur flexlm.

Si l'on suppose que :

  • Le numéro de port du serveur flexlm est 1700.
  • Le numéro de port du serveur alterad pour Altera est 1701.
  • Le numéro de port du serveur xilinxd est 1702.
on construira alors le tunnel ssh suivant pour utiliser Quartus à distance :
$ ssh -g -L 1700:flexlm-server.mondomaine.fr:1700 -L 1701:flexlm-server.mondomaine.fr:1701 mon-nom@ssh.mondomaine.fr

on construira alors le tunnel ssh suivant pour utiliser ISE à distance :
$ ssh -g -L 1700:flexlm-server.mondomaine.fr:1700 -L 1702:flexlm-server.mondomaine.fr:1702 mon-nom@ssh.mondomaine.fr

Il faudra au préalable ajuster la variable LM_LICENSE_FILE dans ISE et Quartus à :
LM_LICENSE_FILE=1700@localhost

++


Performances du processeur VIA Isaiah

Patrice Kadionik

Salut.

Le site eeepcnews.de a publié il y a quelques temps (news du 18 avril 2008) une comparaison des performances du processeur Atom d'Intel et du processeur Isaiah de VIA.

Ces 2 processeurs sont très prometteurs dans le monde de l'embarqué au-delà de leur usage initial dans l'ordinateur à faible coût.

Les 2 processeurs ont été comparés avec la même fréquence de fonctionnement (1,6 GHz). On note des performances semblables sauf pour les calculs sur les flottants où le processeur Isaiah semble meilleur.

Par rapport au VIA C7, le VIA Isaiah semble 2 fois plus véloce...

Pour une consommation de quelques 6 W à 1,5 GHz, le processeur Isaiah a toute sa place dans le monde de l'embarqué et des cartes SBC...


++



Nouveau processeur chez VIA

Patrice Kadionik

Bonjour.


VIA a sorti un nouveau processeur monocore : le VIA Isaiah.

Il est compatible broche à broche avec le processeur VIA C7. Il fonctionnera à 2 GHz pour une puissance 2 à 4 fois supérieure.

Il est clair que ce nouveau processeur trouvera sa place dans le domaine de l'embarqué avec les cartes tout en un de format mini-ITX...

Plus d'informations ici : http://www.via.com.tw/en/products/processors/isaiah-arch/


++

vhdl33 : un blog sur la synthèse VHDL

Patrice Kadionik

Salut.


Aujourd'hui, tout électronicien utilise le langage VHDL (Very High speed integrated circuit Hardware Description Language) pour la conception de circuits numériques (complexes). Ce langage est difficile à cerner car ce n'est pas un langage comme les autres puisqu'il permet de créer un circuit numérique !

C'est aussi un langage à double facette :

  • Il permet de modéliser une fonctionnalité numérique.
  • Il permet aussi de la synthétiser pour l'implanter dans un circuit FPGA par exemple.

Quand on est étudiant et débutant, son apprentissage est complexe. On insiste beaucoup sur la syntaxe du langage lui-même et sur la modélisation VHDL alors que la synthèse VHDL est peu abordée alors que c'est le point le plus important.

Le langage VHDL pour la synthèse apparaît ainsi comme un sous-ensemble du langage VHDL. Toutes les instructions VHDL ne sont pas synthétisables. L'art de la synthèse VDHL est dans la difficulté de maîtriser ce sous-ensemble et de l'ordonner.

Mal programmer en VHDL en vue de la synthèse, c'est :

  • Un circuit non synthétisable.
  • Une fréquence de fonctionnement faible.
  • Une consommation excessive d'Elements Logiques d'un circuit FPGA donc une surface de silicium consommée plus grande.

Mon collègue et ami vhdl33 propose un blog sur l'art de la synthèse VHDL. Avec plus de 25 ans d'expérience dans ce domaine, il connaît et maîtrise parfaitement la synthèse VHDL.

Si vous travaillez dans ce domaine, allez voir son blog. Il fournit pleins de trucs et astuces !

Une seule adresse : http://vhdl33.free.fr/

Si je retenais quelques règles de mon ami, je dirais :

  • En VHDL, tout est processus.
  • Penser circuit.
  • Faire simple.

Merci, old pat ;-)


++