π
<-
Chat plein-écran
[^]

Compilation et debugging sous Ndless

Regroupement de tous les tutoriaux Nspire.

Compilation et debugging sous Ndless

Unread postby Noury » 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
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 52.8%
 
Posts: 287
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):
MyCalcs profile

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 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.1%
 
Posts: 41493
Images: 14562
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Compilation et debugging sous Ndless

Unread postby Noury » 20 Apr 2019, 19:10

J'ai observé le maitre ;)
Mais j'ai encore du chemin...
User avatar
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 52.8%
 
Posts: 287
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):
MyCalcs profile

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: 41.7%
 
Posts: 31
Joined: 02 Dec 2016, 21:56
Location: Paris 11
Gender: Male
Calculator(s):
MyCalcs profile

Re: Compilation et debugging sous Ndless

Unread postby Noury » 21 Apr 2019, 07:44

Merci STaa.
Je suis content que ça te soit utile.
User avatar
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 52.8%
 
Posts: 287
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):
MyCalcs profile

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 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

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 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.1%
 
Posts: 41493
Images: 14562
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


Return to Tutoriaux

Who is online

Users browsing this forum: tux and 14 guests

-
Search
-
Social TI-Planet
-
Featured topics
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
-
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.
1364 utilisateurs:
>1311 invités
>49 membres
>4 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)