π
<-
Chat plein-écran
[^]

Compilation et debugging sous Ndless

Regroupement de tous les tutoriaux Nspire.

Compilation et debugging sous Ndless

Message non lude Noury » 20 Avr 2019, 13:25

Compiler et debugger un programme est simple. Tellement simple qu'on oublie parfois de le documenter.
Dans le monde de la programmation Ndless, il y a des informations de bases qui manquent.
De ce fait, un débutant peut avoir beaucoup de difficultés pour aborder ces choses.
Je vais donc essayer ici de présenter les éléments de base pour compiler un programme C ou assembleur sous Ndless, ou encore le debugger.


On part du principe que le lecteur a des connaissances minimales en programmation C ou assembleur selon le cas.
Il faut également avoir déjà compilé des programmes, au moins manuellement.
Enfin pour le debugging, il faut avoir, au moins un peu, pratiqué GDB, le debugger GNU.


I - Installation du SDK Ndless:

Il faut utiliser cette procédure
Elle est particulièrement détaillée et précise. Je l'ai utilisée pour ma part sur Mac et sur Linux.
Je n'utilise pas Windows, je n'ai donc pas d'avis à ce sujet.

J'ajouterai juste que:
1 - l'installation est très longue. Elle m'a pris 1/2 journée. Donc prévoyez du temps.
2 - il faut changer le propriétaire du répertoire d'installation Ndless. Ce n'est pas la seule méthode mais c'est celle que je préfère.
Il faut utiliser la commande chown -R utilisateur:goupe ..../Ndless
Dans mon cas, Ndles est installé dans /usr/local. Mon user est nb.
j'ai utilisé sur Mac:
Code: Tout sélectionner
sudo chown -R nb:staff /usr/local/Ndless

Attention, cette commande est dangereuse. Il faut l'utiliser en sachant parfaitement ce qu'on est en train de faire.


I - Compilation d'un programme C

Une bonne solution est de créer un répertoire vide pour travailler sur un projet.
Il faut ensuite y placer son programme C, et éventuellement ses fichiers d'include.
Disons qu'on a créé un programme test.c
Il faut construire le Makefile : nspire-tools new test

Pour compiler, il faut juste taper
Code: Tout sélectionner
make
.

Si vous envisagez d'utiliser des bibliothèques particulières comme nspireio par exemple, il faut ajouter
Code: Tout sélectionner
,--nspireio,--gc-sections
à la ligne "LDFLAGS".

On obtiendra alors le fichier test.tns qui peut être installé sur la TI-Nspire ou l'émulateur Firebird.

On aura également un fichier test.elf qui sera très utile pour debugger. Il contiendra la table des symboles, et permettra de visualiser le code source sous GDB.

Voilà, c'est très simple, et généralement plutôt bien documenté.


II - Programmation assembleur

Là la documentation n'est pas facile à trouver.
De la même manière que pour un programme C, il faut avoir un fichier avec l'extension ".S" (en majuscule)
exemple: on a un fichier test.S

il doit commencer par les lignes:

Code: Tout sélectionner
.global main
 
main:


On crée le Makefile:
Code: Tout sélectionner
nspire-tools new test


Dans le cas des TI-Nspire récentes qui ont un écran en 240x320, il faut ajouter " --240x320-support true" à la ligne "ZEHNFLAGS"
Ça évitera les problèmes de compatibilité.

Je préconise également de remplacer la ligne
Code: Tout sélectionner
$(AS) -c $< -o $@
par
Code: Tout sélectionner
$(AS) $(GCCFLAGS) -c $< -o $@

C'est à mon avis un petit bug qui n'a pas eu de conséquences pour le plus grand nombre.


Il ne reste plus qu'à compiler:
Code: Tout sélectionner
make

Puis c'est la même chose que pour un programme C en ce qui concerne le ".tns"


III - debugger un programme avec GDB

Pour debugger avec GDB, il faut avoir installé l'émulateur de TI-Nspire "Firebird".
Voici le mode d'emploi

Par défaut, un serveur écoute sur le port 3333.

Pour utiliser le debugger, il faut d'abord avoir compilé le programme C ou assembleur avec l'option "-g".
Pour faire ça, c'est très simple, il faut indiquer au début du Makefile
Code: Tout sélectionner
DEBUG = TRUE
qui par défaut est à FALSE.
Il faut ensuite recompiler le programme à debugger.

Une fois terminé, voici les étapes à suivre:
    1 - lancer firebird-emu
    2 - charger le snapshot voulu (si nécessaire)
    3 - Dans une fenêtre xterm taper:
    Code: Tout sélectionner
    arm-none-eabi-gdb -ex "target remote :3333" test.elf
    (indiquer ici le bon nom de fichier)
    4 - placer les breakpoints, consulter le source...
    5 - c (pour continuer). Le debugger se met en attente.
    6 - lancer le .tns sur l'émulateur
    7 - le programme s'arrête sur le premier point d'arrêt, puis on debugge comme avec un programme ordinaire.

L'émulateur possède un debugger intégré, je ne l'ai pas utilisé. Il ne nous intéresse pas ici.
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Compilation et debugging sous Ndless

Message non lude critor » 20 Avr 2019, 17:45

Merci à toi pour ce tuto superbement mis en page ! :bj:
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Compilation et debugging sous Ndless

Message non lude Noury » 20 Avr 2019, 19:10

J'ai observé le maitre ;)
Mais j'ai encore du chemin...
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Compilation et debugging sous Ndless

Message non lude STaa » 20 Avr 2019, 19:49

Merci pour ce tuto au top, je trouvais pas comment debug ! :)
Image
Avatar de l’utilisateur
STaaVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 41.7%
 
Messages: 31
Inscription: 02 Déc 2016, 21:56
Localisation: Paris 11
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Compilation et debugging sous Ndless

Message non lude Noury » 21 Avr 2019, 07:44

Merci STaa.
Je suis content que ça te soit utile.
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Compilation et debugging sous Ndless

Message non lude grosged » 26 Avr 2019, 15:02

Le site de Jim Bauwens hackspire.org est actuellement hors-service :'(

Voici le message :
"Due to technical issues bwns.be and related services are currently unavailable.
We are trying to get everything back as soon as possible."

J'espère que c'est passager, que cela va vite s'arranger :#roll#:
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Compilation et debugging sous Ndless

Message non lude critor » 26 Avr 2019, 15:12

Oui, il nous a prévenus.
Problèmes techniques sur son serveur, je confirme.

D'ailleurs, il faudrait commencer à documenter la TI-Nspire CX II sur hackspire. ;)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41468
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor


Retourner vers Tutoriaux

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 21 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1104 utilisateurs:
>1081 invités
>18 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)