Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » limite memoire ? (12 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Xantares Ecrit le: Jeudi 9 juin 2005 à 21:58 Déconnecté(e)    Voir le profil de Xantares Envoyer un email à Xantares Envoyer un message privé à Xantares  

Bonjour

J'utilise TIGCC 0.96 et je programme en c (ti89 titanium).

Je crée crée un jeu avec lequel on peut jouer contre un adversaire géré par le programme
l'algorithme qui fait jouer l'adversaire utilise une fonction recursive qui teste touts les coups possibles et garde celui qui aboutit à la mailleure configuration
En pratique cela fonctionne pas mal et tres rapidement, mais lorsque la fonction doit s'apeller recursivement plus de 4 fois la calculatrice plante (invalid instruction - barre noire).
La fonction s'appelle avec en parametre un tableau tridimensonnel de 512 type short.

Est-ce qu'il y a une limite de memoire ? Si oui peut-on la repousser ?
    
./Post n°1   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 9 juin 2005 à 22:14 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Oui, la "pile" (la mémoire qui contient les paramètres) est limitée, tu peux utiliser autour de 8 KO. Ta fonction récursive nécessite beaucoup trop de mémoire sur la pile!
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°2   Marquer comme non lu.
Jfg Ecrit le: Mardi 21 juin 2005 à 18:19 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Tu peux un peu repousser la limite en n'utilisant pas la sauveguarde automatique de l'écran.
Kill Mario
    
./Post n°3   Marquer comme non lu.
Folco Ecrit le: Mardi 21 juin 2005 à 18:30 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Effectivement, tu pourrais le faire à la main dans un handle, ça te gagnerais dans les 4 kilos de pile. :)
Sinon, il te reste à créer ta propre pile (c'est pas trop dur en C???) de la taille convenable.
-Edité le Mardi 21 juin 2005 à 18:31 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°4   Marquer comme non lu.
geogeo Ecrit le: Mardi 21 juin 2005 à 20:36 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Une pile en C? Je dirais que ce n'est pas adapté en C mais en ASM c'est possible à faire très facilement contrairement au C! Bref ça dépend aussi de l'utilité que tu en fais.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°5   Marquer comme non lu.
Folco Ecrit le: Mardi 21 juin 2005 à 21:13 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


oui, je voyais bien un pile de 64 ko en asm, mais je saurais pas faire ça en C ^^
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°6   Marquer comme non lu.
Sasume Ecrit le: Mardi 21 juin 2005 à 22:45 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

C'est aussi simple en C #confus#
    
./Post n°7   Marquer comme non lu.
Jfg Ecrit le: Mercredi 22 juin 2005 à 00:02 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


pour faire une pile, il faut juste allouer un espace et se balader dedans avec un poiteur ?
-Edité le Mercredi 22 juin 2005 à 00:02 par jfg-
Kill Mario
    
./Post n°8   Marquer comme non lu.
Folco Ecrit le: Mercredi 22 juin 2005 à 01:21 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


oui. Avec deux fonctions d'accès, une qui décrémente le pointeur de al valeur de la taille de ce qu'on met, et une autre qui incrémente le pointeur de la taille de ce qu'on en retire.
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°9   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 22 juin 2005 à 09:13 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> La fonction s'appelle avec en parametre un tableau tridimensonnel de 512 type short.
Tu passes par valeur un tableau aussi gros ???

Semi-off-topic: pour les vilains, de la mémoire temporaire peut se trouver dans la partie inutilisée de l'EStack (qui fait 16 KB, sauf sous PedroM). C'est comme ça que je ferais si je me remettais à tthdex (avec lequel PedroM ne sera jamais compatible, pas de souci pour moi de ce côté-là).
Lionel Debroux - membre de TICT.
    
./Post n°10   Marquer comme non lu.
geogeo Ecrit le: Mercredi 22 juin 2005 à 11:42 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Sasume :
C'est aussi simple en C #confus#


geogeo :
Une pile en C? Je dirais que ce n'est pas adapté en C mais en ASM c'est possible à faire très facilement contrairement au C! Bref ça dépend aussi de l'utilité que tu en fais.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°11   Marquer comme non lu.
FpgForce Ecrit le: Mercredi 22 juin 2005 à 13:51 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

de la mémoire temporaire peut se trouver dans la partie inutilisée de l'EStack (qui fait 16 KB, sauf sous PedroM). C'est comme ça que je ferais si je me remettais à tthdex
J'ai pas mal analysé l'estack et c'est vrai que la l'espace inutilisé est vraiment très grand. (La partie non utilisée se trouve entre top_estack et estack_max_index, voir http://www.tiwiki.org/Estack)
    
./Post n°12   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 22 juin 2005 à 16:03 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Une partie très significative (plus d'un tiers) de la différence entre la RAM libre sous PedroM et la RAM libre sous AMS ne vient que de là.
Tiens, je vais suggérer à PpHd de mettre une EStack de 5 KB, de manière à ce qu'on puisse utiliser la partie [estack_max_index - LCD_SIZE - 1] à [estack_max_index - 1] environ comme buffer, comme sous AMS !
Lionel Debroux - membre de TICT.
    
  :: Index » Forum Ti68K » Programmation C » limite memoire ? (12 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 78.05ms avec 18 requetes