Introduction:
Dans ce tutoriel on va mettre en place un environement pour debug de l'ARM.
N'ayant pas de trop creusé le sujet, ce tutoriel fait juste office d'introduction globale.
Avec toute la multitude de produits qui embarque des puces ARM, c'est bien d'avoir ce tuto au cas où...
Dans le cas présent nous allons déboguer le Cortex M4 d'un flipper Zero.
Les outils
Pour appliquer ce tutoriel il vous faudra...
Segger J-Link V12 (https://fr.aliexpress.com/item/1005006145455327.html) Sans doute une contrefaçon,
mais c'est la que j'ai acheter le mien, et il inclus toutes les licenses. (Peut être en relation)
Flipper Zero (https://shop.flipperzero.one/)
Embedded Studio (https://www.segger.com/downloads/embedded-studio/) L'ide C++ le compilateur
et le débugger de base
J-Link (https://www.segger.com/downloads/jlink/) J-Link : les tools de base pour configurer et piloter
le Jlink, voir la RAM et la Flash, etc.
Ozone : le débugger avancé (vraiment top) Sur la même page que jlink, plus bas.
I: Démarrage:
Voilà, vous installez déjà tout ça.
En rapide, tous les softs peuvent être lancés indépendamment, mais Embedded Studio par exemple peut débugger avec Ozone au lieu de son débugger de base.
JlinkConfig pour la configuration du boitier Jlink.
JlinkCmd pour piloter le jlink en ligne de commande, c'est en fait comme ça qu'on s'en sert le plus souvent.
Jmem pour voir/programmer la mémoire.
Jflash pareil pour la flash.
Pour interfacer le jlink avec le flipper, c'est simple.
Les processeurs ARM ont un port debug de base (SWD), qui utilise 4 fils: VCC, GND, Data et Clock.
Côté flipper :
VCC (Rouge) sur 3.3V
Clock (Vert) sur SWC
GND (Noir) sur GND
Data (Jaune) sur SIO
Et côté Jlink, mode SWD donc:
VCC Rouge sur 1 VCC/Vref
GND Noir sur 4 GND
Data Jaune sur 7 SWDIO (TMS)
Clock Vert sur 9 SWCLK (TCK)
Une fois nos fils connectés, on lance Ozone.
le New Project Wizard, s'affiche
Configurer le device sur Cortex-M4 et le Register Set sur: Cortex-M4 (with FPU)
Dans la fenêtre suivante, l'assistant de projet va vous demander le type de connexion
Remplissez la Target Interface par SWD ainsi que la vitesse en 4 Mhz.3
Selectioné USB pour Host Interface, puis cliquer sur next
L'interface vous demande le fichier à débugger, cliquez next
Puis vient la fenêtre d'événement pour les pauses, cliquez sur next directement
Voilà, maintenant en haut à gauche à présent on peut par exemple s'attacher au M4 et le mettre en pause
Félicitation, le flipper doit être freeze, vous debugé de l'ARM désormais.
Il existe d'autres softs, mais moins utiles dans un premier temps.
Deux livres qui peuvent être intéressants pour aller plus loin:
https://amzn.eu/d/076CHtv2 - The Definitive Guide to ARM Cortex -M3 and Cortex-M4 Processors
https://amzn.eu/d/0cVzqsbB - The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors
Et voilà c'est déjà la fin.
Xylitol, 23/11/2o24
Copyright (C)- xtx Team (2022)