2

ça sert à lancer des programmes en mode Kernel...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

ben voilà smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

j'ai posé la question dans actualité, Kevin m'a répondu mais j'attend aussi sa nouvelle réponse pour en savoir un peu plus...
Ca change quoi exactement pour mettre en mode kernel?
En clair qu'est ce qu'il y a dedans? ca modifie koi sur la calcu?

6

Alors là c'est son domaine, donc il est bien plus qualifié que moi pr répondre... Je vais quand même mettre ce que je crois savoir :

Les kernel étaient avant la seule solution pour faire tourner des programmes ASM et C sur Ti. Les programmes nécessitaient donc non seulement un kernel mais aussi des librairies dynamiques qui contiennent toutes les fonctions (c'est encore le cas d'ailleurs).
Les programmes nostub sont beaucoup plus recent, et ne necessitent rien pour fonctionner. Par contre, étant donné qu'ils n'ont (sauf exeption) pas besoin de librairie dynamique, toutes les fonctions qu'ils utilisent sont contenues dans le programme, parfois plusieurs fois. Pour ça, les programmes nostub sont souvent plus gros que leurs homologues kernel.

Voilà y'a plus qu'à attendre Kevin pour savoir si j'ai dit une connerie smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

[quote:59a945abe4="Swal89"]Ca change quoi exactement pour mettre en mode kernel?[/quote:59a945abe4]
Le programme ne marche pas si un kernel n'est pas installé, parce qu'il a besoin d'une fonction du kernel pour être relogé au lieu de faire faire ce travail à AMS comme prévu.

[quote:59a945abe4="Swal89"]En clair qu'est ce qu'il y a dedans? ca modifie koi sur la calcu?[/quote:59a945abe4]
Ça exporte une fonction à une place non utilisée de la table des vecteurs (où il y a les adresses des routines qui gèrent les interruptions, de traps etc.), et le programme pour kernel appelle cette fonction pour se reloger. Après l'appel de cette fonction du kernel, le programme ne continuera pas directement l'exécution, mais le kernel appellera le point d'entrée [i:59a945abe4]_main[/i:59a945abe4] du programme comme une sous-routine. (Le début du programme, qui est chargé d'appeller cette routine du kernel, s'appelle le "stub", d'où le nom "no stub" pour les programmes qui n'ont pas besoin de kernel.)
La routine de relogement du kernel se distingue de celle de AMS de 2 manières:
* le programme doit être dérelogé à exécution finie - c'est pour ça que le kernel l'appelle comme s'il était une sous-routine du kernel.
* elle gère des trucs supplémentaires par rapport au simple relogement: insertion des adresses pour les ROM_CALLs (plutôt que la procédure d'appel indirect prévue par TI), "RAM_CALLs" (adresses de certaines variables globales privées (non-exportées) de AMS, dont le kernel fournit l'adresse pour ceux qui aiment programmer de manière sale au lieu d'utiliser les ROM_CALLs prévus), librairies dynamiques.

[quote:59a945abe4="Bob 64"]Par contre, étant donné qu'ils n'ont (sauf exeption) pas besoin de librairie dynamique, toutes les fonctions qu'ils utilisent sont contenues dans le programme, parfois plusieurs fois. Pour ça, les programmes nostub sont souvent plus gros que leurs homologues kernel.[/quote:59a945abe4]
Mais:
* pas toujours (le stub et le header du format kernel prennent de la place)
* si c'est le cas, la différence de taille est négligeable
* si on compte la taille totale (programme+kernel+librairie dynamique), le programme _nostub est plus petit.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

Bon bah ça va je ne me suis pas trop planté pour un truc où je ne connaisait rien grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)