π
<-
Chat plein-écran
[^]

Compilation Ndless - Petites tailles des exécutables

C, C++, ASM...

Compilation Ndless - Petites tailles des exécutables

Message non lude newprog_creator » 13 Aoû 2023, 19:50

Bonjour à vous,
Je cherche à limiter au maximum la taille de mes exécutables avec Ndless (C).
Comment dois je faire le 'Makefile' pour ça ?
Pour info, je ne cherche qu'à faire des choses très basiques dans le programme C.
Merci par avance....
Avatar de l’utilisateur
newprog_creatorProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 74.2%
 
Messages: 67
Inscription: 29 Mar 2014, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: bac+13

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude Adriweb » 13 Aoû 2023, 19:51

En passant -Os aux flags du compilateur gcc. Ça optimise pour une taille minimum. Mais bon généralement c'est pas la place qui manque, donc -O2 est suffisant.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude newprog_creator » 13 Aoû 2023, 20:49

Merci pour la réponse mais je ne pense pas que cela puisse faire passer un programme de 90ko à 1ko.
Je pense que Ndless met beaucoup (trop) de données par défaut dans les exécutables (90 ko pour quasi aucun code, meme pas de printf). Peut être il y a til un moyen de ne pas insérer par défaut ces données, mais je ne sais pas comment faire...
Avatar de l’utilisateur
newprog_creatorProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 74.2%
 
Messages: 67
Inscription: 29 Mar 2014, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: bac+13

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude Adriweb » 13 Aoû 2023, 20:59

Faut voir le code et le makefile. Tu peux mettre ça ici dans un zip, qu'on regarde ?
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude newprog_creator » 13 Aoû 2023, 21:03

Bonne idée. Ci-joint le Makefile et le *.c
Fichiers joints
npcxexec.zip
(1.09 Kio) Téléchargé 21 fois
Avatar de l’utilisateur
newprog_creatorProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 74.2%
 
Messages: 67
Inscription: 29 Mar 2014, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: bac+13

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude newprog_creator » 14 Aoû 2023, 14:10

Bonjour,
Je me permets de relancer :-)
Avatar de l’utilisateur
newprog_creatorProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 74.2%
 
Messages: 67
Inscription: 29 Mar 2014, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: bac+13

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude Adriweb » 14 Aoû 2023, 15:24

J'ai envoyé le lien de ce topic à Vogtinator, on verra s'il a le temps de jeter un oeil ^^
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude SlyVTT » 16 Aoû 2023, 08:05

Je crains que cela ne soit lié à la lib nspireio qui est linkée.
C'est la librairie de base qui permet de faire le lien avec le matériel, donc nécessaire pour les projets Ndless.

Faire une librairie plus light est en soi possible, mais cela signifie qu'il faudrait faire l'impasse sur certaines fonctions/le support de certaines parties du matériel.

A titre d'exemple, le "helloworld" du SDK, qui est un simple démonstrateur de l'utilisation des classes en C++ avec un printf() voit la taille du fichier TNS vers 120ko.
Les sources pèsent juste 400o, et fort heureusement de genzehn passe la compression du binaire, car le fichier ELF sorti de l'étape de compilation/linkage pèse lui près de 290Ko.

Tu remarqueras aussi que toujours dans le SDK, l'exemple "colors" est un petit programme qui n'utilise pas la lib nspireio et dont la taille du TNS est nettement plus contenue (5Ko pour des sources qui font 676o et un ELF de 75Ko environ, encore merci à genzhen et aux diverses options)

A mon avis tu dois pouvoir t'inspirer de ce dernier exemple pour faire mieux, par contre, il faut être clair, sans la libnspireio.a linkée, les possibilités seront hyper limitées car plein de fonctions ne seront juste pas accessibles.
Some works in progress :
The GUI Toolkit NF for nSpireMyShmup for fxCG-50Magic Light for Casio Graph 90+E
and
Magic Light for nSpire CX/CX-II
Simple Text Editor for nSpireOutRun for Casio Graph 90+E
95%
50%
100%
75%
100%
And more to come ... stay tuned
Avatar de l’utilisateur
SlyVTTPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 43.1%
 
Messages: 484
Images: 31
Inscription: 19 Jan 2021, 09:41
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
GitHub: SlyVTT

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude newprog_creator » 18 Aoû 2023, 16:42

Bien reçu. Je regarde ça...
Avatar de l’utilisateur
newprog_creatorProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 74.2%
 
Messages: 67
Inscription: 29 Mar 2014, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: bac+13

Re: Compilation Ndless - Petites tailles des exécutables

Message non lude Vogtinator » 21 Aoû 2023, 19:17

nspireio is only necessary if you want to use the console it provides. If you use something else for user input and output, you can avoid it.

There are two tricks you can use to make it smaller. One is to remove unused symbols from the executable with -Wl,--gc-sections. The other is to leverage deflate support in the Zehn file format by adding --compress to ZEHNFLAGS. The latter adds about 13K to the .prg.tns file, but if you target Ndless >= 3.9 (r2000, released in 2015) the plain .tns file is enough.

With those tricks the .tns is ~42KiB here.
Avatar de l’utilisateur
VogtinatorPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 1.6%
 
Messages: 217
Inscription: 29 Mar 2014, 15:55
Genre: Homme
Calculatrice(s):
MyCalcs profile


Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 14 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1785 utilisateurs:
>1767 invités
>13 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)