π
<-
Chat plein-écran
[^]

NumBoots - Bootloader pour NumWorks N0110

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby jean-baptiste boric » 28 Nov 2019, 19:01

J'avais abandonné le projet pour le moment étant donné que je n'étais pas arrivé à faire cracher à la toolchain Cortex-M un programme en mode PIC et avec .text/.rodata en Flash immutable à une position non prédéterminée à l'avance. De mémoire, la toolchain générait du code exécutable qui supposait que la GOT/PLT était à un offset constant des sections .text/.rodata au lieu d'utiliser le registre GOT. C'était endémique aux Cortex-M, je n'avais pas ce problème en compilant pour du Cortex-A.

Pour ce qui est de la complexité des fichiers ELF, ce n'est vraiment pas complexe au runtime. Seuls les program headers font foi et mon loader qui faisait du dynamic linking (!) tenait en 150 lignes de C.
User avatar
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 4.5%
 
Posts: 374
Joined: 21 Dec 2015, 22:22
Gender: Not specified
Calculator(s):
MyCalcs profile
GitHub: boricj

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby Lionel Debroux » 28 Nov 2019, 19:12

Un loader ELF n'est pas forcément très complexe au runtime, en effet, mais sur Nspire, je me souviens d'overheads taille variables au runtime, parfois très faibles mais parfois plus difficiles à accepter par rapport au faible apport d'ELF pour ce cas d'usage, des dizaines de KBs sur certains programmes assez simples qui contenaient... ce qu'il fallait pour qu'il y ait de tels overheads, je ne sais pas exactement quoi mais je suppose que ça pouvait être beaucoup de sections, beaucoup de relocations, ou quelque chose de ce genre.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.2%
 
Posts: 6859
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby zardam » 28 Nov 2019, 19:37

De ce que j'ai constaté, pour pouvoir avoir un .data "relocatable" en ram et un .text en flash, il faut utiliser l'option "-mno-pic-data-is-text-relative" qui crée des entrées dans .got pour chaque symbole du .data, et ça pouvait prendre beaucoup de place, pour giac par exemple.

De mémoire aussi, il y a plus de 2Mo de relocations pour giac, donc impossible à faire sur la calculatrice.

C'est plus simple au final de reporter ça en dehors. Du coup pas besoin de toolchain ou libc spécifique, ni rien de complexe ou coûteux sur la calculatrice.
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.6%
 
Posts: 233
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby zardam » 07 Dec 2019, 22:55

Au final, j'ai réussi à compiler ld et objcopy avec emscripten, donc pas besoin d'avoir un outil/format dédié, le link final se fait directement dans le navigateur.

J'ai enrobé tout ça dans une page web disponible ici : https://zardam.github.io/nw-external-apps/

Le firmware et KhiCAS sont à jour avec les modifications pour le mode examen. Les deux autres applications méritent encore un peu d'attention avant d'être pleinement utilisables.
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.6%
 
Posts: 233
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby Lionel Debroux » 07 Dec 2019, 23:51

Super travail, comme toujours :)
Emscripten a décidément progressé au fil du temps.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.2%
 
Posts: 6859
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby Adriweb » 08 Dec 2019, 02:31

Excellent !
Ca va simplifier beaucoup de choses :)
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...)
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 80.1%
 
Posts: 14606
Images: 1216
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby quentinguidee » 08 Dec 2019, 10:04

Merci! C'est super tout ça!! :) Je me pencherai dessus un maximum après mes examens pour adapter Omega et le rendre parfaitement compatible avec cet outil ;)
Image
User avatar
quentinguideeProgrammeur
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 26.5%
 
Posts: 81
Joined: 30 Oct 2019, 20:40
Location: Belgique
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur civil, Bac 1
GitHub: quentinguidee

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby critor » 10 Dec 2019, 19:14

Merci @zardam. :)

Moyen de choisir la ROM pour l'émulateur NES qui semble venir par défaut avec un homebrew 2048 ?
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 41.8%
 
Posts: 41470
Images: 14480
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby zardam » 10 Dec 2019, 19:33

Pas pour la moment, sauf à recompiler, mais ça va arriver (quand ça sera prêt...).

L'ajout de fichiers "custom" sur l'installeur en ligne et pensé entre autre pour ça.

Je suis aussi en train de regarder pour faire un explorateur de fichiers du script store pour pouvoir se passer du workshop, et aussi d'échanger d'autres types de fichiers (sessions KhiCAS).
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.6%
 
Posts: 233
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: NumBoots - Bootloader pour NumWorks N0110

Unread postby M4x1m3 » 11 Dec 2019, 15:52

Zardam si jamais tu veux t'eviter de t'arracher les cheveux avec tout ce qui est WebUSB/DFU j'ai commencé à faire quelques fonctions utiles dans un repo github : https://github.com/M4xi1m3/omega-webdfu-tests
Image
"Regression testing"? What's that? If it compiles, it is good, if it boots up it is perfect.
User avatar
M4x1m3Programmeur
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 62.6%
 
Posts: 170
Images: 12
Joined: 13 Oct 2019, 21:10
Location: Bas-Rhin (67)
Gender: Male
Calculator(s):
MyCalcs profile
Class: M1 Informatique
Twitter: M4xi1m3
GitHub: M4xi1m3

PreviousNext

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

Who is online

Users browsing this forum: No registered users and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
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
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
1420 utilisateurs:
>1409 invités
>6 membres
>5 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)