Liste des interfaces
sudo lsusb -v -d 1d50:60e6 | grep "bEndpointAddress"
Voir toutes les interfaces avec leurs caractéristiques
sudo lsusb -v -d 1d50:60e6 | grep -A 10 "bInterfaceNumber"
Vérifiez aussi l'endpoint OUT complet
sudo lsusb -v -d 1d50:60e6 | grep -E "(bInterfaceNumber|bEndpointAddress)" bInterfaceNumber 0 bInterfaceNumber 1 bEndpointAddress 0x81 EP 1 IN bEndpointAddress 0x02 EP 2 OUT
Format de base d'une requête
struct greatfet_request {
uint32_t class_number; // Numéro de la classe
uint32_t verb; // Verbe (commande) de la classe
uint8_t data[]; // Données optionnelles
};
Initialiser la carte
* environmement python
* sudo apt install python3-pip
* sudo apt install python3.11-venv
* python3 -m venv ~env_board
* source env_board/bin/activate
* pip install greatfet
* gf firmware –autoflash
Compilation du firmeware
- sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi
- pip install pyyaml
- git clone --recursive https://github.com/greatscottgadgets/greatfet.git
- cd greatfet
- git pull
- git submodule update
- cd firmware/libopencm3
- make
- cd greatfet/firmware/greatfet_usb
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
- python3 -m pip install pyyaml
- cmake --build .
- make $(,proc) <-- build greatfet_usb.bin
Configurer les permissions udev
Ajouter dans /etc/udev/rules.d/60-greatfet.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="1d50", ATTR{idProduct}=="60e6", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="1fc9", ATTR{idProduct}=="000c", MODE="0666", GROUP="plugdev"
Rechargez les règles udev
sudo udevadm control --reload-rules
sudo udevadm trigger
Mise à jour du firmware
Méthode avec le switch DFU
- source env_board/bin/activate
- selectionner bouton DFU
- lsusb | grep -i nxp
- sudo apt install dfu-util
- dfu-util -l -> Found DFU: [1fc9:000c] ver=0100, devnum=7, cfg=1, intf=0, path="1-1", alt=0, name="DFU", serial="ABCD"
- sudo dfu-util -d 1fc9:000c -D greatfet_usb.bin
Description
Languages
C
93%
Python
6.6%
Makefile
0.4%