C32 : gestion des exceptions
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

C32 : gestion des exceptions



  1. #1
    schneiderj

    C32 : gestion des exceptions


    ------

    Bonsoir,

    petit à petit j'avance avec ma nouvelle carte (voir ici). Mais de temps en temps un point dure apparait !

    Aujourd'hui il semble que j'ai un souci avec une exception... bigre, qu'est-ce ? Comment comprendre ce qui se passe ? Car jusqu'à aujourd'hui je ne me suis pas posé de question et probablement à tord.

    Mais par où commencé car sur le site de microchip je n'ai pas réussi à trouvé beaucoup d'info sauf cette exemple : http://ww1.microchip.com/downloads/en/DeviceDoc/PIC32_HandlingExceptions_CodeE xample_092311.zip. Tous conseils pour m'aider à acquérir les bases nécessaires seront les bien venus !

    Merci
    Jean-Marie

    -----

  2. #2
    schneiderj

    Re : C32 : gestion des exceptions

    J'ai oublié de mentionner la page figurant dans la documentation de l'utilisateur de C32 et XC32, mais cela ne m'aide pas beaucoup...
    Quelques infos également dans la section 2 des manuels de référence des PIC32.

    Je viens de trouver un message sur le forum de microchip : http://www.microchip.com/forums/m580738.aspx.


    Jean-Marie
    Dernière modification par schneiderj ; 02/08/2012 à 20h56. Motif: ajout section 2 du manuel de reférence

  3. #3
    RISC

    Re : C32 : gestion des exceptions

    Salut,

    Il existe 3 registres dans les PIC32 pour identifier la source des exceptions : Status, cause et EPC.
    En utilisant l'exemple de code tu mets ces 3 registres dans la fenêtre de WATCH.
    Tu essayes les 3 erreurs pour voir à chaque fois comment identifier la source de l'exception.
    Pour cela il faut avoir sous les yeux la description de chacun des bits de ces registres.
    Tu regardes d'abord le registre Status bit EXL, s'il est à 1 tu regardes le champ exception code dans le registre cause.
    Dans EPC tu verras l'adresse de l'instruction qui a causé l'exception ;=)

    a+

    NB : je suis aussi passé par là

  4. #4
    schneiderj

    Re : C32 : gestion des exceptions

    Merci pour tes explications. cela devient plus clair. Ce qui donne :
    • Status 00000000 00010000 00000000 00000011
    • Cause 00010000 10000000 00001000 00011000
    • EPC 10010100 10010011 10010010 10010001
    • excep_code 0x00000006 == EXCEP_IBE
    • excep_addr 10010100 10010011 10010010 10010001

    Je retrouve donc mes petits : un "Bus error exception (instruction fetch)" à l'adresse 0x94939291 = 10010100 10010011 10010010 10010001.

    Mais cette adresse où est-ce que je la retrouve ? Car dans la vue disassembly je ne trouve pas cette gamme d'adresse ( elle commence à 1D00_0000 pour la partie programme et se termine à 1FC0_2FEC)... je disais que c'est plus clair ???

    Jean-Marie

  5. A voir en vidéo sur Futura
  6. #5
    schneiderj

    Re : C32 : gestion des exceptions

    J'ai trouvé le coupable : un tableau dont j'ai modifié la taille... avec une erreur de frappe : 123 c'est transformé en 12 !

    Ceci dit mes questions sont toujours d’actualités : je serai mieux armé la prochaine fois pour résoudre une nouvelle erreur !

    Jean-Marie

Discussions similaires

  1. [Exercice] Code génétique : des exceptions à la règle.
    Par Valentin100510 dans le forum Biologie
    Réponses: 2
    Dernier message: 26/02/2020, 12h31
  2. C32 et library I2C...
    Par schneiderj dans le forum Électronique
    Réponses: 3
    Dernier message: 09/05/2012, 17h25
  3. Doit-on faire des exceptions pour le commerce équitable ?
    Par inviteb5244850 dans le forum Actualités
    Réponses: 2
    Dernier message: 20/03/2012, 12h42
  4. Réponses: 2
    Dernier message: 24/11/2009, 21h23
  5. Des Sciences de Gestion, ou de la Science appliquée aux Arts de gestion ?²
    Par invite5ecc4617 dans le forum [ARCHIVE] Psychologie / Sociologie
    Réponses: 3
    Dernier message: 06/01/2005, 18h42
Découvrez nos comparatifs produits sur l'informatique et les technologies.