Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Créer son propre OS Casio ?
Eastorik Hors ligne Membre Points: 8 Défis: 0 Message

Créer son propre OS Casio ?

Posté le 21/09/2015 19:52

Salut tout le monde !

Cela fait longtemps que je me balade et cherche des solutions sur les forums de Planète Casio mais je ne m'étais jamais inscrit. J'en profite donc pour vous remercier d'être une aussi bonne communauté et pour les nombreuses heures de galères que vous m'avez évité


Voila ma question:
J'aimerai savoir si il est possible de pouvoir créer son propre OS pour casio 35+, et si oui, dans quel langage de programmation il faudrait coder
Bien sur je ne compte pas tout commencer depuis le début mais simplement reprendre quelque bout du code de base par ci par là pour l'arranger à ma sauce

Je sais que lorsque l'on flash la calto de 35+ à 75, on utilise un fichier .fls et que BMP_Injector arrive à modifier ce fichier pour pouvoir changer l'image d'extinction
Du coup je me demandais si il est simple de modifier ce fichier ou de le dé compiler en quelque sorte pour pouvoir le modifier

Je ne sais pas si j'ai été bien clair mais merci d'avance quand même !


1, 2 Suivante
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 21/09/2015 19:59 | #


Oulà, tu as bien du courage X)

A vrai dire, modifier l'OS de Casio à la j'en-ai-marre-de-vivre peut être très risqué. Je te déconseille donc de toucher à l'OS.

Cependant, il y a un projet d'OS alternatif, FixOS. http://www.planet-casio.com/Fr/forums/topic10104-14-Projet-FiXos-%28OS-pour-casio-fx-9860-Prizm%29.html et le repo http://lab.knightsofnii.com/groups/fixos-core-team

Je pense qu'il faut s'y connaitre en C voir C++ et en ASM. De plus, il faut connaitre un peu le fonctionnement d'un OS

Quel modification voudrait tu apporter à un OS?
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 21/09/2015 20:04 | #


Oui il faut faire de l'asm (plus optimisé que le C et langage de bas niveau)
puis c'est transformé en Hexa

Bien du courage pour faire un OS ce n'est pas possible si tu n'as pas toutes les connaissances nécéssaires car le test sur machine sera une catastrophe (tu n'auras plus de machine) ...
In Arch, I trust ! And you ?
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 21/09/2015 20:06 | #


Alors, pour commencer, il faut savoir que 99% des OS sont codés en C, car ils ont besoin d'être non-seulement compilé, mais aussi de pouvoir accéder facilement aux ressources de bas niveau de la machine. Et le C est le langage qui est le plus adapté.

La seconde chose qu'il faut savoir, c'est que tu n'arrivera pas à comprendre l'OS de Casio, même décompilé. Ou alors t'es un génie et je veux bien que tu fasse une grosse doc dessus. Mais si t'as beaucoup de temps libre et d'excellentes connaissances en ASM, va-y !

La troisième, c'est que FiXos, le projet dont as parlé Intelligide au dessus est en cours de développement depuis environ 3 ans, et actuellement il gère à peine un terminal. D'ailleurs c'est un kernel et non un OS. Ok il respecte autant que possible la norme POSIX, mais quand, même, créer un OS de zéro demande beaucoup (énormément) de rigueur, de savoir faire, et de temps. Mais si tu souhaites en savoir plus, je te conseille l'excellent site osdev.org.

Dans tout les cas, commence par apprendre et maitriser le C, le fonctionnement d'un kernel, d'un OS, la doc des composants de la calculatrice, etc. Ensuite tu avisera.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eastorik Hors ligne Membre Points: 8 Défis: 0 Message

Citer : Posté le 21/09/2015 20:14 | #


Bha niveau C/C++ je suis plutôt bon et pour ce qui est de l'ASM je suis en train de l'apprendre au cours de mon BTS Science du Numérique donc je pense que ça devrait le faire
Par contre j'avoue que niveau fonctionnement d'un os je ne m'y connait pas tellement.

Ce serait surtout des modifications d'interface:
- Modifier l'apparence du menu principal
- Ajouter une horloge (je pense que c'est possible grâce à l'horloge interne)
- Ajouter un écran de démarrage
- Ajouter quelques animations

Après c'est pas que j'en aurait vraiment une utilité, c'est juste me donner un petit challenge, explorer un nouveau domaine et avoir une calto un peu plus personnelle
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 21/09/2015 20:23 | #


Pour l'horloge, cela nécessiterait de laisser un processeur tourner en continu, même en extinction et viderait vite les piles je pense.

En tout cas, si tu t'y lances, bonne chance.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Eastorik Hors ligne Membre Points: 8 Défis: 0 Message

Citer : Posté le 21/09/2015 20:31 | #


Ce compteur est déjà présent dans l'OS de base
Quand on développe en C un Add-in, on peut récupérer le nombre de "Tick" qui se sont écoulé depuis la première mise en service de la calculatrice avec la fonction RTC_getTicks(), et ce nombre comprend aussi le nombre de Ticks écoulé penant l'extinction de la machine

Merci
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 25/09/2015 20:46 | #


Legolas a écrit :
Pour l'horloge, cela nécessiterait de laisser un processeur tourner en continu, même en extinction et viderait vite les piles je pense.

En tout cas, si tu t'y lances, bonne chance.


Non pas du tout. Actuellement, il y a déjà ce petit processeur comme tu dis (qui consomme presque rien) qui tourne sur la calculatrice. A ton avis, comment fonctionne l'horloge de lephé ou encore Fourmizz de The Prog

Edit : Le mec qui poste sans regarder le dernier message
Sinon, tu as avancé sur tes recherches ?
1337
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 25/09/2015 20:47 | #


Enfin, entre y acceder dans un addin et y accéder en modifiant l'OS, c'est pas la même… Je suis même pas sur que SimLo soit capable de le faire
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 25/09/2015 20:48 | #


C'est pas juste une adresse dans la mémoire
1337
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 25/09/2015 20:51 | #


L'horloge oui. Exécuter du code en modifiant l'OS, c'est une autre paire de manche. Parce que ce qu'il veut faire, c'est modifier le comportement de la fonction d'affichage du menu pour y incruster une horloge. Arriver à localiser précisément ce bout de code et le modifier en conséquence, c'est pas de la tarte.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 25/09/2015 20:54 | #


Oui bien sure. Quoi que le bandeau a déjà été modifié, donc ce n'est pas impossible
Après faut qu'il ai aussi des connaissance en ASM
1337
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 25/09/2015 20:56 | #


>_<
Le bandeau est modifié en statique. Faire un truc dynamique c'est limite impossible !
Faut savoir que le fichier de 1,5Mo décompilé fait environ 750k lignes. Bonne chance.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1242 Défis: 54 Message

Citer : Posté le 25/09/2015 21:05 | #


Bah, tu cherches dans l'OS avec un logiciel de recherche type ctrl+f ( ), les endroits ou apparaissent l'adresse en question où est stocké le bandeau, à priori ça ne devrait intervenir qu'à l'affichage de ce dernier, tu modifies cette adresse là où c'est intéressant pour pointer vers une zone de la RAM à priori utilisée par personne, et ensuite tu fais un addin qui instaure un timer sur une fonctions chargée de remplir la nouvelle zone avec un bandeau qui contient l'heure, et tu ne dés-instaure jamais le timer (un peu en mode Program2) et en revenant au menu il sera toujours actif.

Voilà une méthode simple mais 100% fiable, fonctionnelle et sûre… (ou pas ! )
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 25/09/2015 21:45 | #


Marchera pas : lancer une appli quelconque désinstalle les timers automatiquement. Prgm2 lance l'appli "Programs" directement, c'est pour cela que ça fonctionne. Du coup via un addin c'est mort, sauf si t'arrives à recréer intégralement un gestionnaire d'interruptions fiable à 100% et grâce auquel l'OS tourne sans soucis.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 26/09/2015 10:00 | #


Il faut aussi qu'après avoir modifier l'OS la taille soit toujours la même. Mais après ça dépend d'où tu prends ton horloge (ticks) je sais pas si ça vient du peripherical clock ou du bus clock mais je pense que c'est largement accessible dans un add-in mais moins facile dans un OS.

Sinon il reste qu'a désassembler à l'endroit de la rom à l'adresse 0x8001 2AB8 (2.04 SH4) et si tu désassembles à cet endroit et tu devrais certainement trouver ce que tu veux
In Arch, I trust ! And you ?
Eastorik Hors ligne Membre Points: 8 Défis: 0 Message

Citer : Posté le 05/10/2015 10:47 | #


Ça faisait un bout de temps que je n'avais pas regardé le forum
Merci à tous pour vos réponses !

Je n'ai pas avancé d'un poil mais j'avais commencé à me documenter sur la création d'un OS avec le lien de Dark Storm, mais ça a l'air assez compliqué bien que je pense avoir les connaissances nécessaires

Il n'y a vraiment aucun moyen de "dé compiler" l'OS de base ou d'en trouver un déjà prêt sur internet ?
Car je voudrait seulement modifier quelques trucs sans pour autant recréer un OS au complet
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 05/10/2015 16:29 | #


Ben tu peux toujours le désassembler, mais ça te donnera environ 750k lignes d'ASM…
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 05/10/2015 16:33 | #


Si, on peut désassembler l'OS. Mais tu n'arriveras pas à modifier quoi que ce soit.

Voilà un paste de ce qu'on obtient (désassembleur maison) sur les 0x1000 premiers octets :
http://pastebin.com/VBCDrgwx
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Mgl64200 Hors ligne Membre Points: 649 Défis: 0 Message

Citer : Posté le 05/10/2015 19:23 | #


C'est de l'ASM je suppose
Toi t'es en train de lire ma signature là...
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 05/10/2015 19:30 | #


Oui, bien entendu.
Jamais vous n'aurez du C à partir de binaire.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 98 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd