Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » fxSDK, un SDK alternatif pour écrire des add-ins
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

fxSDK, un SDK alternatif pour écrire des add-ins

Posté le 29/08/2014 22:00

Le fxSDK est une alternative au SDK habituel de Casio. Il permet de développer des add-ins pour la famille de la Graph 35+E et la Graph 90+E, et offre de meilleures performances et plus de possibilités !

Les outils du fxSDK

Le fxSDK marche sous Linux et a été compilé pour Mac OS ; il ne marche pas encore pour Windows mais on peut en discuter.

Il se fonde sur l'indispensable compilateur gcc et sa suite d'outils : as, ld, objdump, objcopy (entre autres). Contrairement au vieux compilateur du SDK, gcc est un compilateur moderne avec beaucoup de possibilités. Il n'est pas fourni avec le fxSDK et fait l'objet d'un tutoriel d'installation à part.

Côté calculatrice, c'est le noyau gint qui fait le travail. Il remplace fxlib et une partie de l'OS pour vous offrir des fonctionnalités plus cool et plus rapides. Les add-ins développés avec le fxSDK utilisent gint toutes les trois lignes !

Le fxSDK fournit également des outils spécifiques pour compiler et étudier les programmes de la calculatrice.

fxsdk est un petit gestionnaire de projet qui vous permet de créer et compiler facilement des projets sans vous prendre la tête avec le Makefile. Parfait si vous ne voulez pas connaître toutes les détails compliqués.

fxg1a sert à créer les fichiers g1a finaux à partir du programme compilé. C'est le successeur de mon vieux g1a-wrapper qui était beaucoup moins puissant.

fxconv convertit des données pour vos add-ins, commes vos images ou polices, dans des formats spécifiques de gint. C'est un peu comme le Sprite Coder mais ça vous évite de copier des gros tableaux dans votre programme et surtout le dessin est beaucoup plus performant !

fxos est un désassembleur et manipulateur d'OS capable de retrouver et disséquer des syscalls en un tour de poignet. C'est un outil de reverse-engineering dont l'usage principal est de produire des listings assembleur annotés pour comprendre très rapidement le code.

Il y a pas mal de différences avec le SDK de Casio donc passer au fxSDK nécessite un peu d'adaptation.

Installer le fxSDK sur votre ordinateur

Ça se passe en trois étapes :

1. Compiler un compilateur gcc à destination de la calculatrice
2. Installer le fxSDK
3. Installer le noyau, gint

Je suppose ici que vous connaissez les bases de la ligne de commande, mais si ce n'est pas le cas, n'hésitez pas à laisser un commentaire pour demander.

La première chose est de vous préparer un cross-compilateur gcc. Vous pouvez sauter l'installation du g1a-wrapper et venir ici dès que la libgcc est installée. Assurez-vous que le compilateur est dans le PATH est vous serez prêt ! C'est le plus gros morceau donc une fois que vous aurez ça, vous aurez déjà pratiquement fini.

Clônez le dépôt git du fxSDK depuis la forge de Planète Casio (vous pouvez aussi utiliser SSH).

% git clone 'https://gitea.planet-casio.com/Lephenixnoir/fxsdk.git'

Configurez le fxSDK ; vous pouvez taper "./configure --help" voir les options disponibles. Par défaut, le fxSDK sera installé dans votre dossier personnel (dans ".local").

% cd fxsdk
% ./configure

Ensuite compilez et installez ! Si vous avez choisi un dossier d'installation différent avec --prefix ou si vous compilez sous Mac, vous pourriez avoir besoin de sudo à l'installation.

% make
% make install

Assurez-vous que votre dossier de destination est dans votre PATH, puis vous pouvez installer gint.

Vous êtes alors prêt à partir !

Développer des programmes avec le fxSDK

TODO: Ajouter l'utilisation de fxsdk. Template intermédiaire par KikooDX.

Toute la partie programmation revient à développer des programmes avec gint. Les tutoriels d'utilisation de gint couvrent tous ce dont vous aurez besoin, y compris l'utilisation de fxconv.

Fichier joint


Précédente 1, 2, 3 ··· 10 ··· 20 ··· 26, 27, 28, 29, 30, 31 Suivante
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 10/05/2021 22:19 | #


Je ne connais pas vraiment la différence avec un tar.gz pour être honnête. Si le fichier AppImage embarque juste de quoi extraire, ça revient à peu près au même, la vraie différence pour moi c'est le fait de fournir des binaires. (Et puis c'est vite fait de dire « réinventer AppImage » alors que le taux d'utilisation de AppImage est certainement très minoritaire par rapport aux logiciels distribués dans une archive, qui existent depuis bieeeen plus longtemps.)

La subtilité derrière c'est de faire les mises à jour. Je ne sais même pas si fournir des binaire m'intéresse. Pour être honnête, je m'en passerais volontiers.
Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 12/05/2021 00:22 | #


Petit message pour le teasing (pour le moment) histoire de présenter les nouveaux paquets AUR qui tournent autour du fxsdk. Pis @RDP tant qu'à faire.
Lephe doit release une 2.4.1 qui corrige un petit bug, j'attends que ce soit publié pour pousser les modifs sur l'AUR.


Avec en prime pour tous ces paquets des améliorations de la syntaxe et des bonnes pratiques sur les pkgbuild.

Avec l'arrivée du versionnage propre des versions du fxsdk et des bibliothèques associées, je ne maintiens plus les paquets fxsdk-git et gint-git.

Je n'ai volontairement pas packagé giteapc car :
– les paquet ci-dessus suffisent à profiter de l'ensemble des bibliothèques disponibles via giteapc ;
– giteapc utilise des variables d'environnement qui sont spécifiques à l'utilisateur ;
– utiliser giteapc en même temps que les paquets peut mener à des conflits sur le système de fichiers.

Si vous souhaitez utiliser GiteaPC, je vous invite à n'installer aucun de ces paquets, et utiliser la méthode recommandée par Lephe.

Et je tease encore un peu plus, je risque de mettre en place un dépôt avec les paquets déjà construits par mes soins : plus besoin de compiler GCC poussivement pendant 20 minutes si vous avez une vieille machine : ajouter une source à votre pacman.conf devrait faire le taf pour trouver les paquet directement. Exemple envisagé :

# cat << EOF >> /etc/pacman.conf
[casio]
SigLevel = Optional
Server = https://archpkg.middleearth.fr/$repo/os/$arch
EOF

# pacman -Syu
[...]

# pacman -S fxsdk
résolution des dépendances…
recherche des conflits entre paquets…

Paquets (3) sh-elf-binutils-casio-2.36.1-1 sh-elf-gcc-casio-11.1.0-1 fxsdk-2.4.0-1

Taille totale du téléchargement :   87,85 MiB
Taille totale installée :    135,91 MiB

:: Procéder à l’installation ? [O/n]

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 12/05/2021 09:36 | #


Merci ! Tu as bien fait de ne pas packager avec GiteaPC, ce n'était pas pensé pour.

Comme on a (encore) discuté de déploiement avec Darks et Breizh sur la shout l'autre jour, je ne pense pas tenter de faire des versions binaires des libs. La méthode actuelle est un peu fastidieuse (il y a beaucoup de dépôts) mais faire des releases binaires ne répond pas adéquatement au problème. Et puis si Darks en fait sur l'AUR, autant lui laisser le privilège.

J'ai réalisé l'autre jour que j'aurais pu éviter la logique de clônage et gestion des dépôts dans GiteaPC, en mettant tous les dépôts concernés en sous-module du dépôt GiteaPC et les scripts tranquilles dans le dépôt sans installation dans ~/.local ou autre. Ça fait plus de Git et moins de réinvention du gestionnaire de paquets. Maintenant que le système est en place je n'ai pas de raison d'y toucher, mais si on me fait remonter des gros problèmes de gestion du fxSDK ce sera une option.
Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 12/05/2021 22:49 | #


Mis à jour mon post précédent avec le lien vers les paquets correspondants. Y'a eu quelques améliorations syntaxiques en plus avant que je push
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 12/05/2021 22:55 | #


Merci ! Note que OpenLibm n'est pas véritablement optionnel pour gint, il est impliqué si on active les formats %f etc dans les fonctions à la printf. L'en-tête est aussi inclus dans src/3rdparty/grisu2b_59_56/k_comp.h donc tu en as besoin pour make.

Super boulot en tous cas !
Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 12/05/2021 23:02 | #


Quoi qu'il arrive je considère qu'OpenLibm est requise pour build gint (c'est dans le makedepends). Si je n'utilise pas le flag %f (ni aucune autre partie qui utilise un bout d'OpenLibm), est-ce que je peux quand même compiler mon addin ?

Edit : dans ce cas de figure, je peux modifier la description d'OpenLibm en
openlibm-casio: mathematical functions and support of %f-like printf's formats

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 12/05/2021 23:05 | #


Je pourrais m'arranger pour que ce soit possible, mais actuellement ce n'est pas le cas parce que le flag -lopenlibm est ajouté inconditionnellement.
Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 13/05/2021 00:02 | #


Seems legit. J'ai poussé un patch du coup.

Ajouté le 13/05/2021 à 14:46 :
J'ai créé un dépôt communautaire chez moi, à l'adresse https://arch.middleearth.fr/. Ce dépôt contient les versions compilées des paquets disponibles sur l'AUR (voir message précédent). Ce qui veut dire que vous n'avez pas à vous soucier de compiler quoi que ce soit, je m'en suis occupé pour vous.

Pour l'instant, je ne supporte que l'architecture x86_64, mais peut-être que je me motiverai à supporter aarch64. Bientôt la compilation sur RaspberryPi ou PinePhone ?

Le dépôt est en phase expérimentale : j'ai setup quelques outils pour m'aider à la maintenance, mais je ne garantis pas (encore) un fonctionnement parfait. D'ailleurs je ne signe pas encore les paquets (mais ça devrait venir).

Si vous êtes sous Arch (ou Arch-based, comme Manjaro) et que vous voulez tenter l'expérience, ajoutez ceci à la fin de /etc/pacman.conf :
[casio]
SigLevel = Optional TrustAll
Server = https://arch.middleearth.fr/$arch


Puis faites une mise à jour des sources :
$ sudo pacman -Syyu


Une fois que c'est bon, la paquets compilés sont directement disponibles dans le repo casio :
$ paru casio
1 casio/fxsdk 2.4.0-1 [76.97KB 144.04KB]
    Tools to program for the Casio fx9860 calculators
2 casio/gint 2.4.1-1 [134.17KB 488.42KB]
    Alternative library and kernel for add-in development on fx-9860G and fx-CG50 under Linux
3 casio/gint-devel-git 2.4.1-1 [55.06KB 158.10KB]
    Set of tools and libraries based on gcc, fxsdk and gint to build native programs for Casio calculators
4 casio/giteapc 1.1-1 [22.88KB 28.39KB]
    Utility program to automatically install, build and update repositories from Planète Casio's Gitea forge.
5 casio/openlibm-casio 0.7.2-1 [126.53KB 471.66KB]
    Fork of the OpenLibm math library with support for fx-9860G and fx-CG 50
6 casio/sh-elf-binutils-casio 2.36.1-3 [3.63MB 16.55MB]
    GNU binary utilities for the Casio calculators SuperH processors.
7 casio/sh-elf-gcc-casio 11.1.0-3 [28.55MB 95.81MB]
    The GNU Compiler Collection for the Casio calculators SuperH processors.


Pour installer la toolchain usuelle upstream, faites juste une installation classique :
$ sudo pacman -S gint-devel-git
résolution des dépendances…
recherche des conflits entre paquets…

Paquets (5) fxsdk-2.4.0-1  gint-2.4.1-1
            sh-elf-binutils-casio-2.36.1-3
            sh-elf-gcc-casio-11.1.0-3  gint-devel-git-2.4.1-1

Taille totale installée :  113,14 MiB

:: Procéder à l’installation ? [O/n]
(5/5) vérification des clés dans le trousseau      [###############] 100%
(5/5) vérification de l’intégrité des paquets      [###############] 100%
(5/5) chargement des fichiers des paquets          [###############] 100%
(5/5) analyse des conflits entre fichiers          [###############] 100%
(5/5) vérification de l’espace disque disponible   [###############] 100%
:: Traitement des changements du paquet…
(1/5) installation de sh-elf-binutils-casio        [###############] 100%
(2/5) installation de sh-elf-gcc-casio             [###############] 100%
Dépendances optionnelles pour sh-elf-gcc-casio
    isl: integer set library [installé]
(3/5) installation de fxsdk                        [###############] 100%
Dépendances optionnelles pour fxsdk
    gint: alternative library and kernel for add-in development on
    fx-9860G and fx-CG50 [en attente]
    mkg3a: a tool to create Casio FX-CG addon files [installé]
    udisks2: disk management service, for auto-mount of calculator
    [installé]
(4/5) installation de gint                         [###############] 100%
Dépendances optionnelles pour gint
    openlibm-casio: mathematical functions
(5/5) installation de gint-devel-git               [###############] 100%
:: Exécution des crochets de post-transaction…
(1/1) Arming ConditionNeedsUpdate...


On peut alors créer un projet de test et le compiler :
$ fxsdk new test
$ cd test
$ fxsdk build-cg
-- The C compiler identification is GNU 11.1.0
-- The CXX compiler identification is GNU 11.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/sh-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/sh-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Gint: TRUE (found suitable version "2.4.0-14", minimum required is "2.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/test/build-cg
Scanning dependencies of target myaddin
[ 33%] Building C object CMakeFiles/myaddin.dir/src/main.c.obj
[ 66%] Building FXCONV object CMakeFiles/myaddin.dir/assets-cg/example.png
[100%] Linking C executable myaddin
[100%] Built target myaddin


Je suis preneur de retours si vous avez des soucis avec ces différents paquets

@RDP là aussi
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Kikoodx Hors ligne Labélisateur Points: 2726 Défis: 11 Message

Citer : Posté le 13/05/2021 15:23 | #


Génial DS ! Est-ce que tu penses pouvoir fournir mkg3a aussi ? Ça permettrait d'avoir la toolchain entière pour la CI si j'ai rien raté.

Ajouté le 13/05/2021 à 15:47 :
J'ai suivi les instructions avec un Manjaro à jour, j'ai des erreurs liées à libisl.so.23 et bien d'autres au build du projet test.

Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags:  

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: -c

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: -Aa

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: -D__CLASSIC_C__

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3

The output was:
1
sh-elf-gcc: error: unrecognized command-line option '--target=arm-arm-none-eabi'
sh-elf-gcc: error: unrecognized command-line option '-mcpu=cortex-m3'


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags:  

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: -c

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: -Aa

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: -D__CLASSIC_C__

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /usr/bin/sh-elf-gcc
Build flags:
Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3

The output was:
1
sh-elf-gcc: error: unrecognized command-line option '--target=arm-arm-none-eabi'
sh-elf-gcc: error: unrecognized command-line option '-mcpu=cortex-m3'


Checking whether the C compiler is IAR using "" did not match "IAR .+ Compiler":
sh-elf-gcc: fatal error: no input files
compilation terminated.
Checking whether the C compiler is IAR using "" did not match "IAR .+ Compiler":
sh-elf-gcc: fatal error: no input files
compilation terminated.
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags:  

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1plus: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: -c

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1plus: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: --c++

The output was:
1
sh-elf-g++: error: unrecognized command-line option '--c++'


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: --ec++

The output was:
1
sh-elf-g++: error: unrecognized command-line option '--ec++'; did you mean '-Weffc++'?


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3

The output was:
1
sh-elf-g++: error: unrecognized command-line option '--target=arm-arm-none-eabi'
sh-elf-g++: error: unrecognized command-line option '-mcpu=cortex-m3'


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags:  

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1plus: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: -c

The output was:
1
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1plus: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: --c++

The output was:
1
sh-elf-g++: error: unrecognized command-line option '--c++'


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: --ec++

The output was:
1
sh-elf-g++: error: unrecognized command-line option '--ec++'; did you mean '-Weffc++'?


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: /usr/bin/sh-elf-g++
Build flags:
Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3

The output was:
1
sh-elf-g++: error: unrecognized command-line option '--target=arm-arm-none-eabi'
sh-elf-g++: error: unrecognized command-line option '-mcpu=cortex-m3'


Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler":
sh-elf-g++: fatal error: no input files
compilation terminated.
Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler":
sh-elf-g++: fatal error: no input files
compilation terminated.
Detecting C compiler ABI info failed to compile with the following output:
Change Dir: /home/kdx/projects/test/build-fx/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make -f Makefile cmTC_2b729/fast && /usr/bin/make  -f CMakeFiles/cmTC_2b729.dir/build.make CMakeFiles/cmTC_2b729.dir/build
make[1]: Entering directory '/home/kdx/projects/test/build-fx/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_2b729.dir/CMakeCCompilerABI.c.obj
/usr/bin/sh-elf-gcc -DTARGET_FX9860G  -mb -ffreestanding -nostdlib -Wa,--dsp -o CMakeFiles/cmTC_2b729.dir/CMakeCCompilerABI.c.obj -c /usr/share/cmake-3.20/Modules/CMakeCCompilerABI.c
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory
make[1]: *** [CMakeFiles/cmTC_2b729.dir/build.make:78: CMakeFiles/cmTC_2b729.dir/CMakeCCompilerABI.c.obj] Error 1
make[1]: Leaving directory '/home/kdx/projects/test/build-fx/CMakeFiles/CMakeTmp'
make: *** [Makefile:127: cmTC_2b729/fast] Error 2




Determining if the C compiler works failed with the following output:
Change Dir: /home/kdx/projects/test/build-fx/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make -f Makefile cmTC_d3ea0/fast && /usr/bin/make  -f CMakeFiles/cmTC_d3ea0.dir/build.make CMakeFiles/cmTC_d3ea0.dir/build
make[1] : on entre dans le répertoire « /home/kdx/projects/test/build-fx/CMakeFiles/CMakeTmp »
Building C object CMakeFiles/cmTC_d3ea0.dir/testCCompiler.c.obj
/usr/bin/sh-elf-gcc -DTARGET_FX9860G  -mb -ffreestanding -nostdlib -Wa,--dsp -o CMakeFiles/cmTC_d3ea0.dir/testCCompiler.c.obj -c /home/kdx/projects/test/build-fx/CMakeFiles/CMakeTmp/testCCompiler.c
/usr/libexec/gcc/sh3eb-elf/11.1.0/cc1: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory
make[1]: *** [CMakeFiles/cmTC_d3ea0.dir/build.make:78 : CMakeFiles/cmTC_d3ea0.dir/testCCompiler.c.obj] Erreur 1
make[1] : on quitte le répertoire « /home/kdx/projects/test/build-fx/CMakeFiles/CMakeTmp »
make: *** [Makefile:127 : cmTC_d3ea0/fast] Erreur 2

Protip
Ne me remerciez pas
Shadow15510 Hors ligne Administrateur Points: 4981 Défis: 16 Message

Citer : Posté le 17/05/2021 09:06 | #


C'est extrêmement puissant, bien joué !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 17/05/2021 09:10 | #


Mmm, il doit manquer les dépendances à la libisl. Chelou, il me semblait l'avoir ajoutée pourtant <_<
Je vais checker ça ce soir (pis mettre en place un setup de build + tests correct, ie automatique).

Au passage @Lephenixnoir, tu me confirme que gintctl version 2.3.0 compile correctement avec gint 2.3.* ? Et donc que je pourrais m'en servir comme support pour vérifier que tout est ok une fois l'installation terminée.

Merci Shadow, c'est le but après tout
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Shadow15510 Hors ligne Administrateur Points: 4981 Défis: 16 Message

Citer : Posté le 17/05/2021 09:12 | #


J'ai réinstallé Gint, dans l'espoir de reprendre quelques vieux jeux xD je sais pas si je vais réellement réussir à me remettre dedans, mais je suis content d'avoir à nouveau Gint
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 17/05/2021 15:11 | #


Au passage @Lephenixnoir, tu me confirme que gintctl version 2.3.0 compile correctement avec gint 2.3.* ? Et donc que je pourrais m'en servir comme support pour vérifier que tout est ok une fois l'installation terminée.

La version CG oui. Si ça compile tu devrais être bon (puis comme toutes les libs du monde sont impliquées dans la compilation de gintctl ça te donnera une bonne idée). La version FX il semble y avoir une image perdue.
Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 17/05/2021 15:14 | #


Lephe a écrit :
puis comme toutes les libs du monde sont impliquées dans la compilation de gintctl ça te donnera une bonne idée

C'est bien pour ça que je compte en faire une sorte de test d'intégration
Merci pour l'info. Si à l'occas' tu trouve le temps de tagger une 2.3.1 qui compile aussi sur FX, ça me permettra de tester les deux cas de figure
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 17/05/2021 15:16 | #


Ouais je devrais rajouter des tags, désolé, c'est moins régulier sur gintctl. Ce sera sans doute 2.4.x direct par contre.
Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 17/05/2021 15:18 | #


Np. C'est pas urgent

Ajouté le 18/05/2021 à 18:55 :
Kikoodx a écrit :
Génial DS ! Est-ce que tu penses pouvoir fournir mkg3a aussi ? Ça permettrait d'avoir la toolchain entière pour la CI si j'ai rien raté

J'ai ajouté mkg3a dans le dépot.

J'ai suivi les instructions avec un Manjaro à jour, j'ai des erreurs liées à libisl.so.23 et bien d'autres au build du projet test

Merci pour le signalement, j'avais en effet oublié d'ajouter ISL comme dépendance pour gint. C'est corrigé, et j'ai ajouté le paquet dans le dépot.

Tu peux pacman -Syu et me dire si c'est ok ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 25/05/2021 22:30 | #


Nouvelle version : fxSDK 2.5.0

Plusieurs choses sympa aujourd'hui !

• Ajouté les conversions personalisées à fxconv pour les projets CMake (un oubli de la version précédente), telles que décrites dans les tutoriels d'utilisation de gint.
• Ajouté le mode interactif de fxlink pour communiquer en USB avec la calculatrice !
• Une vraie libc est maintenant en production, et on espère permettra même d'utiliser la lib C++ dans le futur (pas trop lointain) !

Communication USB avec fxlink

Les détails sur l'utilisation du module USB arriveront dans le changelog gint pour cette version. Côté PC il suffit de lancer fxlink -iw et fxlink se met automatiquement à l'écoute de messages provenant de la calculatrice. Il y a plusieurs types de message, et selon le type les données peuvent être affichées dans le terminal (texte) ou enregistrées automatiquement dans des fichiers (images et données brutes).

Voilà par un exemple des tests avec gintctl :

% fxlink -iw
Connected to 1:14, starting test.
New message (v1.0): application 'fxlink', type 'image', size 177420 bytes
Got 2004 bytes of message data!
Got 2048 bytes of message data!
Got 2048 bytes of message data!
(...)
Got 1336 bytes of message data!
Successfully read 177420 bytes
Saved image (396x224, format=0) to './fxlink-image-2021.04.25-22h15-1.png'
Disconnected, leaving.

Une vraie lib standard

Le langage C a une bibliothèque standard (libc) qui fournit des fonctions que tout système de développement C est supposé fournir. Jusqu'ici, gint fournissait quelques-unes de ces fonctions, mais sans plus. Memallox avait porté une libc existante, Newlib, mais le port n'est plus maintenu et je crois qu'il est instable.

Grâce aux bonnes idées de Yatis et un peu de coopération récemment, on a commencé à coder une version de la libc adaptée spécifiquement pour les calculatrices, qui s'appelle fxlibc. Avec ce qui est codé aujourd'hui, vous pouvez déjà #include <string.h> (au lieu de <gint/std/string.h>) et utiliser plus librement les fonctions standard, car beaucoup ont été implémentées qui n'était pas disponibles avant. La liste exacte est ici.

Les fonctions standard codées par gint sont en train d'être déplacées vers la libc, et dans le futur la séparation sera bien propre. Lorsque la libc sera assez complète, on devrait pouvoir s'en servir pour compiler une lib standard C++ (une externe cette fois-ci, on ne la recode pas !) et proposer du C++ vraiment utile.

Instructions de mise à jour

Si vous utilisez GiteaPC, mettez à jour avec giteapc install -u. fxlibc est maintenant une dépendance de gint donc elle devrait s'installer toute seule.

% giteapc install -u Lephenixnoir/fxsdk Lephenixnoir/gint # si vous avez d'autres libs listez-les ici

Si vous utilisez le fxSDK avec une installation manuelle, vous devrez compiler fxlibc (ce qui prend deux lignes, vraiment), et aussi mettre à jour OpenLibm dont j'ai raffiné le portage et récupéré la dernière version.

1. Mettez à jour OpenLibm.
2. Compilez et installez fxlibc (il suffit de copier/coller les commandes de giteapc.make).
3. Mettez à jour le fxSDK et gint comme d'habitude.
Dark storm Hors ligne Labélisateur Points: 11538 Défis: 176 Message

Citer : Posté le 25/05/2021 23:48 | #


Mis à jour sur l'AUR et https://arch.middleearth.fr
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 26/05/2021 12:22 | #


Yeah, c'est ça qu'on aime voir. Merci o/
Ninestars Hors ligne Membre Points: 2384 Défis: 22 Message

Citer : Posté le 26/05/2021 19:53 | #


Excellent !
Un bon pas vers le C++
Très bonne mise à jour
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Citer : Posté le 26/05/2021 20:14 | #


Tu es mon lobby C++ et honnêtement si ça marche ce sera un grand pas en avant
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 26, 27, 28, 29, 30, 31 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 v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 61 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