Difference between revisions of "Trash Fr:Débogage Linux"

From ArmadeusWiki
Jump to: navigation, search
 
(En testant votre noyau linux personnalisé avant de le flasher: simplify kernel download and boot)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
** Conseils pour déboguer sous linux **
+
Conseils pour déboguer sous Linux
  
 
==Introduction==
 
==Introduction==
Line 9: Line 9:
 
Vous pouvez tester un noyau linux que vous venez de générer sans avoir à le reflasher à votre carte et détruire votre image actuelle qui marche.
 
Vous pouvez tester un noyau linux que vous venez de générer sans avoir à le reflasher à votre carte et détruire votre image actuelle qui marche.
 
En effet, les images des noyaux Linux peuvent etre chargées et dépuis la SDRAM avec U-Boot:
 
En effet, les images des noyaux Linux peuvent etre chargées et dépuis la SDRAM avec U-Boot:
  BIOS> tftp 8000000 linux-kernel-2.6.16-arm.bin
+
  BIOS> run download_kernel
  BIOS> bootm 8000000
+
  BIOS> bootm
 
+
  
 
==En changeant les resistres du processeur depuis l'espace utilisateur de Linux avec imxregs==
 
==En changeant les resistres du processeur depuis l'espace utilisateur de Linux avec imxregs==
Line 23: Line 22:
 
  $ make
 
  $ make
  
Le fichier généré est placé dans buildroot/build_arm_nofpu/imxregs-1.0/. Maintenant vous pouvez le copier dans votre cible.
+
Le fichier généré est placé dans buildroot/build_arm/imxregs-1.0/. Maintenant vous pouvez le copier dans votre cible.
  
Pour l'utiliser, vous devez vider les registres PAR 1&2 (droits d'accès aux registres) avant de lancer le noyau Linux. Alors dans U-Boot, tapez:
+
Pour l'utiliser, vous devez vider les registres PAR 1&2 (droits d'accès aux registres) avant de lancer le noyau Linux. Alors dans U-Boot pour l'APF9328, tapez:
 
  BIOS> mw.l 0x00200008 0
 
  BIOS> mw.l 0x00200008 0
 
  BIOS> mw.l 0x00210008 0
 
  BIOS> mw.l 0x00210008 0
  
Si vous l'utilisez fréquemment, vous pouvez définir un petit script dans U-Boot:
+
Pour l'APF27, tapez:
 +
BIOS> mw.l 0x10000008 0
 +
BIOS> mw.l 0x10020008 0
 +
 
 +
Si vous l'utilisez fréquemment, vous pouvez définir un petit script dans U-Boot (APF9328):
 
  BIOS> setenv unlock_regs mw.l 0x00200008 0\; mw.l 0x00210008 0
 
  BIOS> setenv unlock_regs mw.l 0x00200008 0\; mw.l 0x00210008 0
 
  BIOS> saveenv
 
  BIOS> saveenv
Line 71: Line 74:
 
* http://www-users.cs.umn.edu/~boutcher/kprobes/
 
* http://www-users.cs.umn.edu/~boutcher/kprobes/
 
* http://tree.celinuxforum.org/CelfPubWiki/PatchArchive
 
* http://tree.celinuxforum.org/CelfPubWiki/PatchArchive
 +
 +
{{LanguageBar|Linux_Debug|Débogage Linux|Linux_Debug}}

Latest revision as of 14:46, 4 April 2012

Conseils pour déboguer sous Linux

Introduction

Sur cette page, vous trouverez des informations utiles au débogage d'Armadeus sous Linux

En testant votre noyau linux personnalisé avant de le flasher

Vous pouvez tester un noyau linux que vous venez de générer sans avoir à le reflasher à votre carte et détruire votre image actuelle qui marche. En effet, les images des noyaux Linux peuvent etre chargées et dépuis la SDRAM avec U-Boot:

BIOS> run download_kernel
BIOS> bootm

En changeant les resistres du processeur depuis l'espace utilisateur de Linux avec imxregs

Cet outil vous autorise à accéder au registres de l'i.MXL depuis l'espace utilisateur/console de linux.De cette façon, vous déboguez votre pilote ou accédez aux fonctionnalités matérielles de l'i.MXL directement depuis la console linux.

Premièrement, vous devez activer cet outil dans Buildroot Buildroot (sélectio nde paquet pour la cible):

$ make menuconfig

Une fois accompli, compilez-le:

$ make

Le fichier généré est placé dans buildroot/build_arm/imxregs-1.0/. Maintenant vous pouvez le copier dans votre cible.

Pour l'utiliser, vous devez vider les registres PAR 1&2 (droits d'accès aux registres) avant de lancer le noyau Linux. Alors dans U-Boot pour l'APF9328, tapez:

BIOS> mw.l 0x00200008 0
BIOS> mw.l 0x00210008 0

Pour l'APF27, tapez:

BIOS> mw.l 0x10000008 0
BIOS> mw.l 0x10020008 0

Si vous l'utilisez fréquemment, vous pouvez définir un petit script dans U-Boot (APF9328):

BIOS> setenv unlock_regs mw.l 0x00200008 0\; mw.l 0x00210008 0
BIOS> saveenv

et l'appeler comme ceci avant de lancer votre noyau

BIOS> run unlock_regs

Ensuite sous linux, lancer imxregs comme suit:

# imxregs REGISTER_NAME  (donnez lui le nom du registre comme défini dans le manuel de référence de l'i.MXL ou jsute le début du nom)

ou

# imxregs    (pour vider tous les registres supportés)

Exemples:

Montre les registres OCR1 de chaque port GPIO:

# imxregs OCR1

Ecrit 123 au registre OCR1_D ;

# imxregs OCR1_D 123

En changeant les registres des IP du FPGA depuis l'espace utilisateur de Linux avec fpgaregs

Cet outil vous autorise à accéder aux registres du FPGA depuis l'espaceutilisateur/console de Linux. Ainsi, vous pouvez aisément déboguer votre pilote directement depuis la console Linux

Tout d'abordn vous devez activer cet outil dans Buildroot (sélection de paquets pour la cible):

$ make menuconfig

Une fois fait, compilez le:

$ make

Le fichier généré est placé dans buildroot/build_arm_nofpu/fpgaregs-1.0/. Maintenant, vous pouvez le copier sur votre cible. Ensuite sous linux, lancez-le comme suit:

# fpgaregs address (pour lire) ou fpga address value (pour écrire)

Exemples:

Montre le registre à l'adresse interne au FPGA 0x0010:

# fpgaregs 10

Ecrit 0x0123 au registre du FPGA 0x0020:

# fpgaregs 20 0123

Liens

Other languages:

English Flag.svg English  •  French Flag.svg Français