π
<-
Chat plein-écran
[^]

NumBoots - Bootloader pour NumWorks N0110

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby elicolh » 13 Sep 2019, 18:07

salut, désolé de vous déranger pour si peu mais cet article (viewtopic.php?f=97&t=22824) m'a donné très envie. J'ai la version N0110 et je me demandais si les commandes que tu a mise permettent d'installer le firmware de l'article et si oui comment faire exactement. Merci d'avance
User avatar
elicolh
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 68.8%
 
Posts: 35
Joined: 13 Sep 2019, 18:02
Gender: Not specified
Calculator(s):
Class: TS

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby critor » 13 Sep 2019, 19:06

Les fichiers .dfu peuvent être flashés sur N0110
(et N0100)
avec dfu-utils.
Mais https://ti-planet.github.io/webdfu_numworks/ ne gère apparemment pas les .dfu, juste les images firmware brutes. :( Et https://devanlai.github.io/webdfu/dfu-util/ non plus.
Image
User avatar
critorAdmin.
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 2.5%
 
Posts: 34782
Images: 9172
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby elicolh » 13 Sep 2019, 20:32

et tu saurais où obtenir le dfu du super firmware?
User avatar
elicolh
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 68.8%
 
Posts: 35
Joined: 13 Sep 2019, 18:02
Gender: Not specified
Calculator(s):
Class: TS

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby critor » 13 Sep 2019, 20:39

Je pense même pas qu'il marche correctement dans ton cas.
Le firmware a été compilé pour N0100, pas N0110. Il y a des différences matérielles significatives entre les deux.
Image
User avatar
critorAdmin.
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 2.5%
 
Posts: 34782
Images: 9172
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby elicolh » 13 Sep 2019, 20:54

ah, d'accord
Merci pour les infos
User avatar
elicolh
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 68.8%
 
Posts: 35
Joined: 13 Sep 2019, 18:02
Gender: Not specified
Calculator(s):
Class: TS

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby critor » 14 Sep 2019, 08:46

Avec dfu-util pour N0110, il faut apparemment flasher :
  • en 0x09000000 pour la Flash externe
  • en 0x08000000 pour la Flash interne
Image
User avatar
critorAdmin.
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 2.5%
 
Posts: 34782
Images: 9172
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby zardam » 28 Nov 2019, 01:27

Cela fait quelques semaines que je réfléchis à l'idée aussi. Je ne suis pas du tout expert dans ce domaine, mais j'ai l'impression que la voie de l'exécutable PIC/PIE est très séduisante, mais aussi assez complexe. Il me semble aussi que la newlib n'est pas vraiment adaptée à ce fonctionnement (même en la recompilant correctement). J'ai par contre bien aimé l'idée du tar comme étant le support du "système de ficher" flash.

Du coup, je suis parti sur l'idée de générer un elf linké partiellement (donc avec le plus gros du travail de fait, et juste quelques relocations à gérer), et de faire le link final au moment d'ajouter le binaire au tar. C'est dommage car cela requiert d'avoir un linker sous la main, mais ça reste très rapide et je suppose qu'on doit pouvoir faire assez facilement un outil javascript pour faire ça directement depuis une page web (et couplé avec webdfu, ça serait parfait).

Au final, ça fonctionne plutôt bien, j'ai porté KhiCAS dans ce "mode" sans trop de souci (mais je bute un peu sur la simplification/normalisation de son interaction avec epsilon, du coup j'ai repris l'api actuelle telle que).

Je suis resté assez "terre à terre" pour la communication app externe/epsilon. Le point d'entrée de l'app externe reçoit un tableau de pointeurs des points d'entrée de l'API, et une zone mémoire lui servant de heap. Les sections data et bss sont alloués statiquement en bas de la pile et réinitialisées entre chaque lancement. Chaque application embarque sa libc, et son malloc qui va utiliser le heap pré-alloué. Ça permet de repartir avec un heap propre à chaque lancement, mais pour l'instant aucun état n'est sauvegardé (sauf pour KhiCAS qui utilise le script store).

Les dépôts sont disponibles ici (epsilon/delta avec launcher, et le "builder" de tar):

https://github.com/Delta-NumWorks/delta/tree/external
https://github.com/Delta-NumWorks/external-apps
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 29.9%
 
Posts: 221
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):

Online

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby Lionel Debroux » 28 Nov 2019, 07:39

Bien, la modularité que NumWorks n'a jamais mise en place prend décidément de plus en plus forme :)
Dans le SDK Ndless, un format custom appelé "Zehn" a fini par être utilisé, parce que BFLT est limité et ELF peut être complexe. Je le mentionne parce que même si tu as déjà fait le gros du boulot, peut-être y a-t-il des idées ou du code à reprendre.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.7%
 
Posts: 6428
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby zardam » 28 Nov 2019, 08:06

Merci, j'ai croisé effectivement le bflt, je vais regarder le Zehn (je suis tombé sur des ressources dans ndless, mais pas celle ci)

Tant qu'on a un objdump/ld sous la main, le .elf est plutôt pratique. Par contre pour faire la dernière relocation dans une page web, ça risque de se corser une peu, et il faudrait peut être un format intermédiaire plus simple effectivement. Je n'ai pas encore trop creusé de ce coté, c'est la prochaine étape.

J'aimerais bien reprendre et isoler proprement quelques fonctions de l'api de KhiCAS (gestion des scripts, et des événements) et sortir celle qui ne sont pas strictement nécessaires, mais il y a aussi pas mal de boulot de ce coté la.

J'espère que du coup on peut considérer epsilon comme un OS, et donc que le problème de licence ne se pose plus pour les applications "externes". (Mon dernier doute concerne le tableur de pointeurs, mais ce n'est pas très différent de ce que fait un linker dynamique sur un OS traditionnel).
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 29.9%
 
Posts: 221
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):

Online

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby Lionel Debroux » 28 Nov 2019, 08:26

Le format est défini et documenté par https://github.com/ndless-nspire/Ndless ... ude/zehn.h , et https://github.com/ndless-nspire/Ndless ... enzehn.cpp prend bien de l'ELF en entrée. Les dépendances de genzehn sont Zlib, <cstring>, <iostream>, <algorithm>, <vector>, boost::program_options et ELFIO qui est une lib portable header-only: le ciblage de JS / WASM à partir de genzehn devrait être donc faisable, quitte à devoir ajuster quelques bouts de code ou upgrader ELFIO, actuellement 3.2 d'il y a plus de 3 ans, mais 3.3 et 3.4 ont été publiées depuis.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.7%
 
Posts: 6428
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

PreviousNext

Return to Programmation native (C/C++/...)

Who is online

Users browsing this forum: No registered users and 0 guests

-
Search
-
Featured topics
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
535 utilisateurs:
>505 invités
>24 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)