Difference between revisions of "Trash Fr:Débogage Linux"
(→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 | |
==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> | + | BIOS> run download_kernel |
− | BIOS> bootm | + | 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/ | + | 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
Contents
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
- http://www-users.cs.umn.edu/~boutcher/kprobes/
- http://tree.celinuxforum.org/CelfPubWiki/PatchArchive
Other languages: | |
---|---|