Lorsque CPU reçoit exception, pré-traitement par le matériel Sauvegarde les valeurs PC et PSW courant dans la mémoire vive (ou dans le contrôle registres dans le cas de l'interruption rapide) et Lecture du vecteur Le branchement au début de la routine de gestion des exceptions est effectué. Toutefois, les registres généraux et les registres de contrôle autres que le PC et le PSW devant être utilisés dans la routine de traitement des exceptions doivent être conservés sur la pile par le code du programme utilisateur au début de la routine de gestion des exceptions. L'inversion est répétée par le code utilisateur et le matériel au retour d'une exception. (Référence: Renesas RX62N manuel du matériel, page 297, Chapitre: Exceptions)sur métal nu, non-OS, comment le changement de contexte se produit lors des exceptions/interruptions
Ma question est où est le code d'utilisateur pour le changement de contexte et comment il se fait appelé?
Le runtime devrait être, ou votre propre code libre –
si c'est du métal nu alors c'est tout votre code, vous l'avez écrit, vous savez où est ce code qui fait tout cela. Cela n'a vraiment rien à voir avec le métal nu, ni avec ce fournisseur de puces spécifique ni avec l'architecture. C'est ainsi que fonctionne la gestion des exceptions. Vous devez conserver l'état afin de pouvoir revenir au code interrompu comme si rien ne s'était passé mais le temps qui passait. –
S'il ne s'agit pas d'un système d'exploitation, pourquoi changez-vous de contexte? –