Go Down

Topic: comment lire un programe à partir d'une carte sd (Read 557 times) previous topic - next topic

trimarco232

le problème de l'interpréteur, c'est qu'il faut réécrire le programme dans le langage à interpréter ...
à moins qu'il n'existe un désinterpréteur ; comme tout est possible, on peut aussi délirer un peu

lesept

Avec un Zx81, on pouvait dessiner des bits :  ;D


OK, je sors...
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

J-M-L

#17
Oct 15, 2020, 02:18 pm Last Edit: Oct 15, 2020, 02:20 pm by J-M-L
J'ai commencé l'informatique avec un TO7 qui disposait de tout le système d'exploitation avec interpréteur basic sur une cartouche de 8Ko.
La petite histoire dit que le 70 dans le Nom TO7/70 c'était la mémoire: 48+16+6. Il avait 48 Ko RAM dont 32Ko pour l'utilisateur  + 16 Ko de Mémoire Vidéo +  6 Ko de ROM)

C'est mieux qu'un UNO...

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

https://fr.wikipedia.org/wiki/Thomson_TO7/70 indique:

Quote
Le TO7/70 corrige quelques « erreurs de jeunesse » du TO7 : la trappe permettant d'insérer une cartouche Mémo7 est équipée d'un verrou prévenant toute éjection en plein travail (comme cela arrivait avec le TO7) ; le clavier n'est plus sensitif, mais en gomme ou mécanique ; le nombre de couleurs affichables passe de 8 à 16 ; la capacité mémoire totale (sans extension) passe de 30 à 70 Ko
Moi, je suis un ancien et j'ai connu le vieux de 30ko.  Mais je me suis trompé, c'est 6ko fixe + 16ko de cartouche ce qui fait 22ko de ROM. C'est moins bien que les 31ko de flash disponibles.

Quote
Avec un Zx81, on pouvait dessiner des bits :  ;D
Passons sur l'orthographe, mais elles ont du caractère. Caractère comme dans le code ascii 8 bits de l'époque:



Quote
le problème de l'interpréteur, c'est qu'il faut réécrire le programme dans le langage à interpréter ...
On peut parfaitement écrire un interpréteur C++ en C++!

J-M-L

Quote
On peut parfaitement écrire un interpréteur C++ en C++
dans 31ko (en supposant qu'on lit sur la SD en permanence), j'en doute fort... avec la déclaration de classe, l'héritage etc, ce n'est pas la simplicité du basic de l'époque et ses numéros de lignes et 7 instructions principales
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Quote
On peut parfaitement écrire un interpréteur C++ en C++, j'en doute fort
Pas faux. Alors un interpréteur C en C.

marc-ouellet

pourquoi pas pirater le port série du arduino pour ensuite uploader le data sur une carte sd?
everyting is possible even time travel!
tout est possible même le voyage dans le temps!

fdufnews

En fait, on ne sait pas de quoi il est question.
Les 300% de stockage c'est du code pur, des chaînes de caractères, des images?
Le code pur peut difficilement être lu sur un support externe pour être exécuté. L'architecture Harvard de l'ATmega impose que le code soit en flash donc il faudrait reprogrammer la flash à la volée.
Si ce sont des données comme des chaînes de caractères constantes ou des images il est possible de les stocker sur une SD card, une EEPROM externe et les charger lorsqu'il y en a besoin.

hbachetti

Je rappelle la demande originelle :

Quote
onsidérant le fait que mon programe est bientot rendu à 300% de la capacité maximal du stocage de programme
Même si la quantité de code totale est supérieure à la taille mémoire, il est possible de charger du code en RAM, y compris partiellement, à partir d'un support de masse, mais cela nécessite une gestion de mémoire virtuelle, avec tout le hardware que cela suppose, interruptions et swap en particulier, et un véritable OS.

L'autre alternative est d'implanter un interpréteur digne de ce nom (PYTHON ou RUBY par exemple), qui nécessite des ressources énormes, aussi bien en FLASH qu'en RAM et en vitesse CPU, complètement hors de portée d'un microcontrôleur du genre ATMEGA.

Je rappelle également qu'en #12 je pose des questions auxquelles marc-ouellet ne se donne même pas la peine de répondre.
On ne sait rien à propos du programme développé, ni de l'utilité du support USB ESPLORA (LEONARDO).
Il est tout de même aberrant de se poser de pareilles questions alors qu'on arrive à 300% d'occupation de la mémoire FLASH  :smiley-evil:
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

fdufnews

Même si la quantité de code totale est supérieure à la taille mémoire, il est possible de charger du code en RAM, y compris partiellement, à partir d'un support de masse, mais cela nécessite une gestion de mémoire virtuelle, avec tout le hardware que cela suppose, interruptions et swap en particulier, et un véritable OS.
Oui, mais là on est plus sur une plateforme à base d'ATmega alors que marc-ouellet dit
Quote
je n'ai pas les ressources ou les moyens pour changer un processeur

hbachetti

En fait, on ne sait pas de quoi il est question.
Les 300% de stockage c'est du code pur, des chaînes de caractères, des images?
Si l'ESPLORA est utilisée comme périphérique d'entrée clavier / joystick pour un PC
Vu les réponses fournies à tes questions et aux miennes je pense en rester là.
On tourne en rond ...
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

J-M-L

@marc-ouellet

- charger un programme depuis la carte SD à la demande est hors de votre portée. ça n'existe pas en mode fonctionnel pour un petit Arduino type UNO ou MEGA.

- Posez vous la question "qu'est-ce qui prend tant de place dans ma mémoire programme ?"
  • Si ce sont des données, utilisées de manière temporaire, alors un stockage de ces données sur un support différent (EEPROM, SD, ...) est envisageable facilement
  • Si ce sont des données, et que le code ne peut pas fonctionner sans accès à toutes ces données alors vous avez le retenu le mauvais Arduino.
  • Si c'est du code et des algorithmes compliqués, et que vous ne pouvez pas les simplifier alors vous avez le retenu le mauvais Arduino.


Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

marc-ouellet

#27
Oct 17, 2020, 09:10 pm Last Edit: Oct 17, 2020, 09:14 pm by marc-ouellet
désolé pour le temps que ça a pris avant que je réponde : problème d'instabilité internet.
finalement j'ai pus resoudre le problème en cherchant deux liens plus bas dans la recherche qui m'avais mené à la vieille disscution sur le forum. du coup mon projet est réussi merci pour l'aide (même si elle n'a pas été très utile au final) je peut maintenant ne plus du tout me retenir sur la longueur des codes que je fait.
le projet c'est un jeu plutot énorme pour un arduino : minecraft
(oui j'ai réduit la quantité de truc inclus dedans)
Je rappelle également qu'en #12 je pose des questions auxquelles marc-ouellet ne se donne même pas la peine de répondre.
On ne sait rien à propos du programme développé, ni de l'utilité du support USB ESPLORA (LEONARDO).
Il est tout de même aberrant de se poser de pareilles questions alors qu'on arrive à 300% d'occupation de la mémoire
dsl comme je viens de le dire j'ai eu des problèmes avec l'internet, j'ai pas pu répondre en voyant le message et je n'ai pas dû voir le #12 lorsqu'il a été posté.
sinon je n'utilise pas du tout le port usb ou serie le esplora est juste le plus adapté pour le projet.
everyting is possible even time travel!
tout est possible même le voyage dans le temps!

lesept

Fais nous profiter de ta solution. Tu peux aussi poster ton projet dans la section des projets terminés. Ça servira à tout le monde. 
Merci
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up