π
<-

Un meilleur PoC de firmware tiers pour Prime...

Nouveautés, projets, mises à jour.

Un meilleur PoC de firmware tiers pour Prime...

Unread postby Lionel Debroux » 21 Dec 2015, 19:10

Hier, "Jean-Baptiste Boric" s'est présenté sur Omnimaga comme allant faire un autre firmware tiers pour la Prime, non pas à partir du fichier armfir.elf embarqué dans l'apps disk comme je l'avais fait il y a bientôt un an et demi, mais un niveau plus bas, et donc probablement avec plus de contrôle, dans PRIME_OS.ROM.
Et aujourd'hui, il a posté la trace ordinateur d'une session GDB obtenue en tournant un GDBstub côté calculatrice :)

Code: Select all
(gdb) x/16x 0x30000000
0x30000000:     0x30000020      0x00000000      0x00100000      0x30000000
0x30000010:     0x00100000      0x004a3556      0x36313432      0x00000000
0x30000020:     0xeb000000      0xeafffffe      0xe92d4008      0xe59f000c
0x30000030:     0xeb00017f      0xe59f0008      0xeb0001cc      0xeb00012b
(gdb) set *(unsigned) 0x30000000 = 0x12345678
(gdb) x/16x 0x30000000
0x30000000:     0x12345678      0x00000000      0x00100000      0x30000000
0x30000010:     0x00100000      0x004a3556      0x36313432      0x00000000
0x30000020:     0xeb000000      0xeafffffe      0xe92d4008      0xe59f000c
0x30000030:     0xeb00017f      0xe59f0008      0xeb0001cc      0xeb00012b
(gdb) x/4x 0x56000070
0x56000070:     0x1400150a      0x00000062      0x01554050      0x00000000
(gdb)


Le GDBstub contient des fonctions d'examination et de manipulation d'état des registres et de la mémoire.
ExtendeD en avait implémenté un dans Ncubate, fork de nspire_emu; je l'avais réintégré dans une version plus moderne de nspire_emu; Firebird, le vrai émulateur de Nspire, le propose toujours, bien sûr.


Bref, ça n'a peut-être pas l'air très excitant comme ça pour les non initiés, et puis je m'y prends peut-être mal pour l'expliquer... mais voici donc le PoC merdique (*1) que j'avais fait enfin dépassé :)
Si Jean-Baptiste continue sur sa lancée pendant des semaines, ceci signe peut-être enfin, plus de deux ans après l'introduction des Prime sur le marché, le vrai début de la programmation alternative sur Prime, ce qui n'était pas le but de mon PoC (*2) :)

Nous vous tiendrons informés de ses avancées, bien sûr.

Source de l'info: https://www.omnimaga.org/introduce-your ... ody-22224/ , https://github.com/boricj/ripem

*1: en relatif, mon armfir.elf tiers était mieux que tout ce qui avait été fait jusque là et encore sur presque un an et demi après, mais en absolu, c'était nul, comme on peut s'y attendre pour un travail de ce genre réalisé en une dizaine d'heures seulement. Et puis étant l'auteur, j'ai le droit de critiquer mon travail comme je veux, surtout quand c'est mérité :)
*2: mon PoC était comme une invitro, une invitation à mieux faire - et Jean-Baptiste est le premier à la saisir, félicitons-le ;)
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.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Un meilleur PoC de firmware tiers pour Prime...

Unread postby jean-baptiste boric » 21 Dec 2015, 23:48

Et dire que je voulais garder la surprise pour Noël... :D

Bonjour à tous, c'est l'auteur de ce firmware tiers. Excusez mes manières, je suis tout nouveau ici.

Je tiens à garder la date de sortie "officiel" pour le 25 décembre le temps de pouvoir améliorer le PoC, documenter le tout et faire un triple jeu de mots en anglais, je ne m'étalerai donc pas sur les détails avant la date butoir. Par contre, ce n'est pas pour des raisons de contrôle que j'ai décidé de remplacer PRIME_OS.ROM au lieu de armfir.elf (les deux devraient donner un contrôle total de la machine, mais j'ai pas vérifié).

La raison théorique est que c'est l'endroit idéal pour faire un bootloader non-officiel. Vu que BXCBOOT0.BIN (qui charge PRIME_OS.ROM) n'a pas vocation à être mis à jour aussi souvent que PRIME_OS.ROM (qui charge armfir.elf), c'est un endroit beaucoup plus stable dans le temps pour du développement tiers comparé à armfir.elf. Remplacer BXCBOOT0.BIN n'est par contre pas une bonne idée car à la moindre erreur ressusciter la calculette devient très compliqué, étant donné que le recovery est à l'intérieur.

La raison pratique est que je n'avais pas réussi à faire fonctionner le PoC existant avec la dernière version du firmware de HP pour des raisons qui m'échappent en partie... (j'avais réussi sur une version précédente et j'avais bien remarqué que l'adresse en mémoire de base du fichier ELF avait changé entre temps, mais pas moyen d'obtenir la fameuse mire...)

Premier post et je casse déjà la légende. Ca commence bien on dirait :)
User avatar
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 5.5%
 
Posts: 379
Joined: 21 Dec 2015, 22:22
Gender: Not specified
Calculator(s):
MyCalcs profile
GitHub: boricj

Re: Un meilleur PoC de firmware tiers pour Prime...

Unread postby Adriweb » 22 Dec 2015, 00:04

Bien joué :)
Je me suis mis en watcheur sur le repo GitHub pour suivre l'évolution...

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Un meilleur PoC de firmware tiers pour Prime...

Unread postby Lionel Debroux » 22 Dec 2015, 15:14

Et dire que je voulais garder la surprise pour Noël... :D

Après qu'un breakthrough ait été posté sur un forum public surveillé régulièrement par plusieurs personnes (ce qui est d'autant plus facile, dans le cas d'Omnimaga, que le forum n'est plus que l'ombre de lui-même...), ce breakthrough n'est plus vraiment une surprise :)

Je tiens à garder la date de sortie "officiel" pour le 25 décembre le temps de pouvoir améliorer le PoC, documenter le tout et faire un triple jeu de mots en anglais, je ne m'étalerai donc pas sur les détails avant la date butoir.

Bien sûr, je comprends tout à fait :)
Quand ce sera officiel, tu auras une news sur le portail.

Par contre, ce n'est pas pour des raisons de contrôle que j'ai décidé de remplacer PRIME_OS.ROM au lieu de armfir.elf (les deux devraient donner un contrôle total de la machine, mais j'ai pas vérifié).

J'aurais dû écrire "probablement pas moins de contrôle", ouais.

La raison théorique est que c'est l'endroit idéal pour faire un bootloader non-officiel. Vu que BXCBOOT0.BIN (qui charge PRIME_OS.ROM) n'a pas vocation à être mis à jour aussi souvent que PRIME_OS.ROM (qui charge armfir.elf), c'est un endroit beaucoup plus stable dans le temps pour du développement tiers comparé à armfir.elf. Remplacer BXCBOOT0.BIN n'est par contre pas une bonne idée car à la moindre erreur ressusciter la calculette devient très compliqué, étant donné que le recovery est à l'intérieur.

En effet, modifier le boot0 est une des manips les plus dangereuses existantes pour des Prime, et tant que ce n'est pas une obligation pour bidouiller, nous savons tous qu'il vaut mieux éviter.
Dans les versions récentes de l'OS, HP ne met même plus à jour le boot0 avec le contenu de BXCBOOT0.BIN.

La raison pratique est que je n'avais pas réussi à faire fonctionner le PoC existant avec la dernière version du firmware de HP pour des raisons qui m'échappent en partie... (j'avais réussi sur une version précédente et j'avais bien remarqué que l'adresse en mémoire de base du fichier ELF avait changé entre temps, mais pas moyen d'obtenir la fameuse mire...)

Ah tiens, intéressant. Je n'avais même pas regardé pour faire fonctionner l'armfir.elf tiers sur une autre version: virtuellement tout le monde s'en foutait, de toute façon...

Premier post et je casse déjà la légende

Que veux-tu dire ?
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.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Un meilleur PoC de firmware tiers pour Prime...

Unread postby jean-baptiste boric » 22 Dec 2015, 18:18

Premier post et je casse déjà la légende

Que veux-tu dire ?


Premier post et j'avoue déjà ne (presque) pas savoir ce que je fais, vu qu'au lieu de réussir à comprendre pourquoi je n'arrive plus à lancer un armfir.elf alternatif je décide de remplacer PRIME_OS.ROM à la tronçonneuse, avec tout l'inconfort que de ne pas être chargé avec un fichier ELF bien standard.

Ou comment réussir à implémenter un stub GDB alors que mon code était décalé en mémoire de 32 octets par rapport à ce que je disais au linker faute de documentation. C'est assez impressionnant à quel point le jeu d'instruction ARM est permissif sur ce genre d'erreurs, mon code en a encore des séquelles...

Qu'on se le dise, je suis un débutant dans le monde des calculettes qui est vraiment très, très chanceux. D'où la phrase "premier post et je casse déjà la légende, ça commence bien on dirait" car commencer par exécuter des constantes en mémoire qui par miracle réussissent à finir par arriver au code qui était supposé être lancé au départ + le fait qu'en ARM les grosses constantes sont chargés avec un adressage relatif à pc (et donc l'erreur des 32 octets ne s'est pas fait trop sentir), c'est la chance (monstrueuse) du débutant en action et rien d'autre :o
User avatar
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 5.5%
 
Posts: 379
Joined: 21 Dec 2015, 22:22
Gender: Not specified
Calculator(s):
MyCalcs profile
GitHub: boricj

Re: Un meilleur PoC de firmware tiers pour Prime...

Unread postby Lionel Debroux » 25 Dec 2015, 21:38

Ne te dévalorise pas ;)
Tu fais beaucoup mieux que ne pas savoir ce que tu fais.

Je suis en train de rédiger la news sur la release officielle. C'est dommage que tu l'aies annoncée seulement sur le moins actif des 4 principaux sites de la communauté, tu sais ;)
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.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Un meilleur PoC de firmware tiers pour Prime...

Unread postby DoOmnimaga » 26 Dec 2015, 09:14

Lionel Debroux wrote:C'est dommage que tu l'aies annoncée seulement sur le moins actif des 4 principaux sites de la communauté, tu sais ;)
Je crois que c'est du au fait que le site en question est le premier à apparaitre dans Google lorsqu'on tape HP Prime assembly. :P (ironiquement, la majorité du développement tiers sur HP Prime se déroule depuis toujours dans la communauté TI)
ImageImageImageImage
User avatar
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 21.4%
 
Posts: 696
Images: 51
Joined: 21 Feb 2012, 12:04
Location: Quebec, Canada
Gender: Male
Calculator(s):
MyCalcs profile
Class: 11eme annee scolaire termine
YouTube: DJOmnimaga
Facebook: dreamofomnimaga.page


Return to Actualités

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
871 utilisateurs:
>848 invités
>16 membres
>7 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)