Envoyer le PC à une adresse précise (sur PIC32)
Bonjour,
je me heurte à un problème aujourd'hui, je souhaiterais envoyer le program counter à une adresse bien spécifique (je travaille sur un pic32) et je ne sais pas comment faire.
Tout d'abord, je stocke l'adresse souhaitée dans un pointeur et après je ne sais pas comment dire au PC va à cette adresse en C.
Envoyer le PC à une adresse précise (sur PIC32)
Note de modération : ce message est issue d'une discussion doublon qui a été fermée.
bonjour à tous,
voila je travaille sur un pic32 avec mplabX, je souhaite passer une adresse que j'ai en C contenu dans une variable a un bout de code en assembleur.
Après m'être documenté j'ai réusssi a mixer assembleur et c comme ceci:
fichier .s
Code:
1 2 3 4 5 6 7 8 9
| #include <xc.h>
.extern ptr_PC
.global asmFunction
.ent asmFunction
asmFunction:
J ptr_PC /*jump*/
.end asmFunction |
fichier.c
Code:
1 2 3 4 5 6 7
| volatile UINT16 *ptr_PC=NULL;
main{
extern void asmFunction(void);
ptr_PC=OS_TASKS[1].NAME;
asmFunction();
} |
J'ai essayé plein de chose comme le passer directement dans la fonction comme ceci asmFunction(ptr_PC); mais je ne sais pas comment le récupérer dans l'assembleur.
l'erreur est: relocation truncated to fit: R_MIPS_26 against `ptr_PC'
Voila si quelqu'un peut m'aider
cordialement