User / Kernel Mode sur PIC32

User / Kernel Mode sur PIC32 - C - Programmation

Marsh Posté le 20-03-2009 à 10:01:09    

Bonjour à tous,
 
je suis actuellement en train d'essayer quelques fonctionnalité du PIC32 et je bloque complètement sur la création d'une application en mode Utilisateur.
 
Je travaille sur le starter kit de microchip (p32mx360f512l) et voici mon problème:
 
En Kernel mode, le processeur a accès à toute la plage mémoire du pic (cf doc pic32MX family) tandis qu'en User mode, il est limité à sa plage mémoire utilisateur. Je voudrais créer une application fonctionnant dans cette mémoire user uniquement.
 
D'apres la doc, le processeur est en mode User quand certain bits du registre STATUS sont à '0'. Le problème est que je n'arrive pas à modifier ces bit sans tomber dans une exception...
 
Pour le moment j'en suis à faire tourner un petit programme dans une mémoire user ou plutot k-user car c'est de la mémoire utilisateur mais le processeur reste en Kernel...
 
Je sais pas si je me suis bien fait comprendre...?
 
Voici les grandes lignes du programme:

  • J'ai crée des sections de mémoire en mode Utilisateur déterminé par le suffixe mémoire (0x7D...)
  • J'ai initié ma fonction dans cette section:

    Code :
    1. static void __attribute__((section(".prt_user" ))) Task1( void );

  • J'ai réglé le BMX du PIC32 afin d'avoir des partitions User:
Code :
  1. BMXDKPBA = 0x4000;
  2. BMXDUDBA = 0x4000;
  3. BMXDUPBA = BMXDRMSZ;
  4. mBMXSetFlashUserPartition( 256*1024 );//
  5. // Configure le BMX
  6. mBMXSetArbMode(0);  // Init arbitration mode to 0
  7. mBMXEnableCpuDExpt(); // Disable Bus Error Excpt on invalid Data address
  8. mBMXEnableCpuIExpt(); // Disable Bus Error Excpt on invalid Instruction address


  • Mon main appel ma fonction qui est dans la mémoire User

What else?


Message édité par guiweb le 20-03-2009 à 10:04:08
Reply

Marsh Posté le 20-03-2009 à 10:01:09   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed