J'ai un chargeur de démarrage simple, qui initialise et prépare la SDRAM. Ensuite, il charge une application à partir du Flash et la démarre à une certaine adresse dans la RAM. Une fois l'exécution de l'application terminée, le système redémarre. Il n'y a pas de pile système.C/Assembleur - Code retour dans un système d'exploitation mono-utilisateur mono-tâche sans pile
Maintenant, je voudrais que ce chargeur de démarrage récupère le contrôle après qu'une application a terminé son exécution. Le bootloader (appelons-le OS) doit également lire le code retour d'une application.
Comment une application peut-elle renvoyer une valeur au système d'exploitation appelant et comment le système d'exploitation appelant récupère-t-il le contrôle? Je suppose que cela peut être fait en utilisant des interruptions - OS a une fonction résidente spéciale jointe à une interruption et chaque application appelle cette interruption à la fin de sa propre exécution. Mais comment un code de retour peut-il être lu par OS s'il n'y a pas de pile système?
Je ne suis pas sûr que ce soit une bonne solution, mais peut-être vous pouvez simplement enregistrer la valeur de retour à un emplacement de mémoire spécial utilisé uniquement dans ce but précis? Cela devrait fonctionner si votre système d'exploitation ne permet qu'une seule application en même temps. –