1

Je crains qu'il n'y ait un bug sournois dans le système de lib conditionelles ou alors c'est moi qui ait bugé mais j'aimerais savoir où.
Quand je programme en C, l'usage des libs conditionnelles freeze totalement ma vraie TI89 sous AMS(enfin j'ai testé qu'avec 2.09) alors que ca marche parfaitement sous PedroM sad . De plus ca marche avec tous les AMS et Pedrom que j'ai testé sous VTI.

Par exemple, le programme suivant freeze l'écran me ma vraie TI89+ AMS2.09 au niveau de "proc();".
//=============================================
//============== Fichier main.c ===============
//=============================================
#define USE_TI89
#include <kernel.h>

void _main(){
  LibRef *truc;
  void (*proc)();
  truc=kernel_LibsBegin("somlib",0);
  proc=kernel_LibsPtr(truc,0);
  proc();
  kernel_LibsEnd(truc);
  ngetchx();
}

//=============================================
//============= Fichier somlib.c ==============
//=============================================
#define USE_TI89
#include <kernel.h>
#define _library

void somlib__0000(){
  clrscr();
}
avatar

2

Je vais tester ca ce soir. Quelle version de Preos utilises-tu ?
Verifie aussi en affichant si les relocs se font biens (Verifie quand meme que les ptr soient non-nuls!)

PS: ecris int _library; ca marchera mieux smile

3

J'ai PreOS 0.67
C'est une version alégée au maximum (pour être sur que le problème venait de la) d'un prog ou il me semble bien que je vérifiait les pointeurs. Quoique maintenant que tu le dis j'ai un doute. De toute facon il devrait les trouver.

avatar

4

int _library ca change vraiment quelquechose? Je pensais que tigcclib avait un truc du genre
#ifdef _library
int _library;
#endif
avatar

5

Non, il n'y a rien de ce style dans TIGCCLIB.
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é

6

C'est comme ca. J'ai pas pu tester ce soir. Desole. T'as verifie si les ptr sont non-nuls ?

7

Oui j'ai vérifié, c'est bien kernel_LibsPtr qui retourne 0. En fait je verifiais seulement le LibRef retouné par kernel_LibsBegin qui lui n'est pas nul. Je ne controlais le pointeur retourné par kernel_LibsPtr.

avatar

8

Je suis pas sur que tigcc exporte bien la library. Compile-le et fait un appel direct a :
somlib__0000();
dans ton programme. Si ca ne marche pas, c'est un bug de tigcc.

9

En effet, il se peut qu'il y ait des bogues dans l'ancien linker au niveau des librairies dynamiques. geogeo a aussi eu des problèmes. Je conseille d'utiliser TIGCC 0.95 bêta 1.
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é

10

D'ailleurs y'avait un probleme de version: la gestion des versions ne marchait pas. M'enfin bon.
Mais si tu utilises tigcc 0.95, fait attention au fichier kernel.h que tu devras adapter.