#Layout custom pour la ram

1 messages · Page 1 of 1 (latest)

feral isle
#

Dans le code source de Upsilon, es-ce possible de faire un layout custom de la ram (repartition python / systeme/ stack et heap app externe), si oui comment le modifier ? (meme si c'est dans un fichier ecrit en assembleur).

atomic mica
#

Toute la mémoire est allouée statiquement, donc la mémoire système ne peut pas être modifiée (elle est au strict minimum).
Pour ce qui est modifiable facilement :

  • La stack peut être modifiée probablement dans ion/src/device/bootloader/bootloader.A.ld ligne 23 (il y a le même fichier en .B.ld pour le slot B), mais ce n'est pas testé sur des tailles réduites, donc je recommande pas trop (si tu le change, teste notamment de brancher la calculatrice en USB, et de faire des calculs compliqués, ça devrait utiliser une bonne partie de la stack)
  • Le stockage des fichiers en RAM (notamment Python) est configuré dans ion/include/ion/internal_storage.h ligne 28
  • Le heap Python et des applications externes sont au même endroit, et sont définis par la mémoire utilisée par l'application en utilisant le plus (sachant qu'une seule application peut utiliser la mémoire à la fois). C'est Python qui utilise le plus actuellement, donc ça s'ajuste apps/code/app.h ligne 78 (mettre des valeurs trop petites n'a pas d'intérêt, vu que les autres applications vont finir par prendre plus de mémoire)
  • La mémoire du moteur de calcul (Poincaré) se définie dans poincare/include/poincare/tree_pool.h ligne 54
feral isle
#

mon but c'est de tout reduire au minimum pour laisser de la stack et surtout une tres grosse heap pour les apps externes (meme si le stockage de fichier et python ne fonctionne plus du tout)

#

le systeme utilise combien au max a peu pres ?

atomic mica
#

Si tu veux un gros heap pour les applications externes, pourquoi ne pas utiliser Khi18/le slot Khi (bouton 2 du bootloader) ?

#

C'est conçu spécialement pour ça

feral isle
#

ah le heap est deja enorme ?

#

ca parait logique

#

mais dcp l'os prend combien au max ?

atomic mica
atomic mica
#

C'est possible que pour supprimer les paramètres ou l'appli calculs, il faille faire une légère modif du code pour que ça compile quand-même

feral isle
#

j'ai deja le slot Khi, je l'ai mis y a fort longtemps

#

tu penses 153600 o (tout l'ecran) ca passe en slot Khi ?

#

en heap dcp

atomic mica
#

Possible, mais c'est probablement à la limite. J'ai pas testé donc je ne saurais pas dire

feral isle
#

je testerai sinon je vais serrer sur le layout

atomic mica
#

Sinon tu as aussi 16 Kio de RAM à partir de 0x0 utilisable dans les applications externes (tout ce qui est déclaré static est alloué dedans)

feral isle
#

car c'est bien marquer que la ram total sur les specs elle est de 256 ko

atomic mica
#

Oui, mais il y a des buffers qui restent. Je ne sais pas si Khi est réellement au minimum ou s'il n'y a que les applications internes de supprimées

feral isle
#

apres qund y a deja plein de choses qui consomme tout

atomic mica
#

Essaye au pire de supprimer presque toutes les applications et de baisser toutes les valeurs modifiables (sauf la stack si tu veux éviter de crash de manière random) pour voir, au pire

atomic mica
feral isle
#

att comment on supprime des app interne qui existe au moment de compiler ou de flash ?

atomic mica
#

Dans build/config.mak, tu peux choisir quelles applications compiler (et leur ordre, même s'il y a aussi un CSV dans apps/home à ajuster dans ce cas)

#

Si tu modifies, puis un make cleanall, puis recompile, ça devrait les supprimer

feral isle
#

donc je peux garder les apps externes et settings et c'est tout ?

atomic mica
#

Oui, les applications externes sont gérées par l'application external (qui ne devrait plus exister depuis longtemps, ça devrait être plutôt dans Ion vu qu'il n'y a que du backend, plus de frontend dedans) et le flag HOME_DISPLAY_EXTERNALS

feral isle
#

si je ferme le post je peux en theorie retrouver les infos que tu m'as donne ?

atomic mica
#

Le post restera, mais il va juste être plus bas dans la liste, si c'est la question

#

(il faudra aller manuellement dans #1019641616652304384 pour le trouver)