π
<-
Chat plein-écran
[^]

Compilation et debugging sous Ndless

Regroupement de tous les tutoriaux Nspire.

Compilation et debugging sous Ndless

Unread postby nbenm » 20 Apr 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: Select all
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: Select all
make
.

Si vous envisagez d'utiliser des bibliothèques particulières comme nspireio par exemple, il faut ajouter
Code: Select all
,--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: Select all
.global main
 
main:


On crée le Makefile:
Code: Select all
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: Select all
$(AS) -c $< -o $@
par
Code: Select all
$(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: Select all
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: Select all
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: Select all
    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.
User avatar
nbenmVIP++
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 13.2%
 
Posts: 157
Joined: 07 Sep 2018, 09:19
Location: 92
Gender: Male
Calculator(s):

Online

Re: Compilation et debugging sous Ndless

Unread postby critor » 20 Apr 2019, 17:45

Merci à toi pour ce tuto superbement mis en page ! :bj:
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 92%
 
Posts: 32355
Images: 8393
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Compilation et debugging sous Ndless

Unread postby nbenm » 20 Apr 2019, 19:10

J'ai observé le maitre ;)
Mais j'ai encore du chemin...
User avatar
nbenmVIP++
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 13.2%
 
Posts: 157
Joined: 07 Sep 2018, 09:19
Location: 92
Gender: Male
Calculator(s):

Re: Compilation et debugging sous Ndless

Unread postby STaa » 20 Apr 2019, 19:49

Merci pour ce tuto au top, je trouvais pas comment debug ! :)
Image
User avatar
STaaVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 37.5%
 
Posts: 31
Joined: 02 Dec 2016, 21:56
Location: 75
Gender: Male
Calculator(s):
Class: MP - Lycée Militaire de Saint-Cyr

Re: Compilation et debugging sous Ndless

Unread postby nbenm » 21 Apr 2019, 07:44

Merci STaa.
Je suis content que ça te soit utile.
User avatar
nbenmVIP++
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 13.2%
 
Posts: 157
Joined: 07 Sep 2018, 09:19
Location: 92
Gender: Male
Calculator(s):

Re: Compilation et debugging sous Ndless

Unread postby grosged » 26 Apr 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#:
User avatar
grosgedVIP++
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 51.8%
 
Posts: 603
Images: 18
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):

Online

Re: Compilation et debugging sous Ndless

Unread postby critor » 26 Apr 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
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 92%
 
Posts: 32355
Images: 8393
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti


Return to Tutoriaux

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Featured topics
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
478 utilisateurs:
>449 invités
>24 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)