je tourne en rond depuis quelques jours déjà sur un truc qui doit être simple, mais je ne m'en sort pas
Mon soucis vient de la bibliothèque Servo.
Si je charge l'exemple Sweep et que je compile pour une carte UNO, ça fonctionne.
Si je sélectionne la carte Generic SPT32F407V Serie, j'ai un message d'erreur concernant le fichier types.h qui est absent.
In file included from /home/bernique/Arduino/libraries/Servo/src/Servo.h:69:0,
from /tmp/.arduinoIDE-unsaved202495-934119-1ig31hx.o13/Sweep/Sweep.ino:10:
/home/bernique/Arduino/libraries/Servo/src/stm32f4/ServoTimers.h:35:19: fatal error: timer.h: No such file or directory
#include "timer.h"
^
compilation terminated.
exit status 1
Compilation error: exit status 1
/
En y regardant de plus près, le fichier ServoTimers.h dans mon /home/Arduino/libraries/Servo/src/stm32f4 appelle bien #include "types.h"
J'ai essayé de placer un fichier types.h trouvé sur le web dans le répertoire ci-dessus et/ou dans le répertoire du programme, mais ça ne résoud rien.
Je suis surpris ce sont normalement des fichiers du package de base on a pas besoin de les ajouter.
D'ailleurs, le nom du fichier dans le #include devrait devrait être entre <>
j'y suis depuis 20 minutes à créer une arborescence avec les fichiers manquants dans mon home/Arduino/libraries/Servo/src/stm32f4, et c'est sans fin!
Je me demande si je n'ai pas une installation merdeuse de l'IDE2.0 Arduino.
Pour la petite histoire, j'ai refait une installation clean de Ubuntu Mate 24.01.1 suite à plantage de la migration automatique depuis 22.01, mais j'ai comme mon /home est sur une partition séparée, il est de ce fait resté intact depuis la 22.01.
Du coup, pas sûr que le AppImage tout frais apprécie l'historique des bibliothèques antérieures.
Maintenant, avec ces AppImages, je ne vois pas comment refaire une installation propre comme on le pouvait avec apt remove
je partage, j'ai voulu essayer vue la mode actuelle mais promis je ne recommencerai pas et j'irai compiler du C en ligne de commande sous gcc pour me ressourcer
Téléchargement en cours (c'est très long, la fibre n'existe pas sur mon volcan)...
Disons que la bibliothèque n’est probablement pas adaptée au microcontroleur de la carte.
Sur l’ide arduino je ne sais pas, avec platformIO, c’est un autre de ses avantages, le gestionnaire de bibliothèques indique les micro possibles pour chaque bibliothèque. Aucune prise de tête c’est clairement indiqué.
il me semble bien pourtant avoir lu des exemples de STM32 pilotant un servo avec cette bibliothèque, mais j'ai peut-êre mal interprété ou extrapolé à tord à mon processeur.
J'avais aussi essayé la biblio PRDC_ServoHT clairement orientée STM32 (avec pwm hardware), et c'était encore pire côté messages d'erreurs.
Je vais continuer à investiguer pour trouver une solution, merci pour l'aide (et regarder platformio aussi, je ne connais pas)
j'ai passé une bonne partie de l'après-midi à chercher une biblothèque compatible qui fonctionne sur mon installation, mais je collectionne les messages d'erreur de plus en plus hésotériques.
Du coup, j'ai essayé platformio pour découvrir l'interface et voir si je peux en apprendre plus.
A priori, ça compile sans erreur en utilisant la bibliothèque Servo.h classique Arduino.
Cela militerait pour un problème d'IDE Arduino chez moi, ce que tendrait à soutenir les erreurs avec d'autres bibliothèque essayées.
Il reste un gros hic: impossible d' uploader sur le µC, avec ce message d'erreur à la clef que je ne parviens pas à interpréter:
Processing genericSTM32F407VET6 (platform: ststm32; board: genericSTM32F407VET6; framework: arduino)
------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F407VET6.html
PLATFORM: ST STM32 (17.6.0) > STM32F407VE (192k RAM. 512k Flash)
HARDWARE: STM32F407VET6 168MHz, 128KB RAM, 502.23KB Flash
DEBUG: Current (stlink) External (jlink, stlink)
PACKAGES:
- framework-arduinoststm32 @ 4.20801.240815 (2.8.1)
- framework-cmsis @ 2.50900.0 (5.9.0)
- tool-dfuutil @ 1.11.0
- tool-dfuutil-arduino @ 1.11.0
- tool-openocd @ 3.1200.0 (12.0)
- tool-stm32duino @ 1.0.1
- toolchain-gccarmnoneeabi @ 1.120301.0 (12.3.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 14 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Servo @ 1.1.2
Building in release mode
Checking size .pio/build/genericSTM32F407VET6/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [ ] 1.2% (used 1524 bytes from 131072 bytes)
Flash: [ ] 3.3% (used 16796 bytes from 514288 bytes)
Configuring upload protocol...
AVAILABLE: dfu, jlink, stlink
CURRENT: upload_protocol = stlink
Uploading .pio/build/genericSTM32F407VET6/firmware.elf
xPack Open On-Chip Debugger 0.12.0-01004-g9ea7f3d64-dirty (2023-01-30-15:03)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 1
hla_swd
none separate
[stm32f4x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000fa8 msp: 0x10010000
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f4x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 100ms
** Programming Started **
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f4x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 300ms
Error: auto_probe failed
embedded:startup.tcl:1516: Error: ** Programming Failed **
in procedure 'program'
in procedure 'program_error' called at file "embedded:startup.tcl", line 1581
at file "embedded:startup.tcl", line 1516
*** [upload] Error 1
========================= [FAILED] Took 2.08 seconds
J'ai peut-être mal configuré platformio?
Merci d'avance pour les retours
merci pour le lien, je vais aller voir de plus près même si mes recherches précédentes m'ont déjà souvent amené à lire des posts sur ce forum.
En relisant au dessus, je me suis arrêté sur cette remarque:
Du coup, j'ai regardé de plus près et les STM32 ne sont pas clairement indiqués pour la bibliothèque Servo. Pas sûr que ça explique mes soucis d'upload, mais en tout cas ce n'est pas bon signe!
En revanche, j'en vois d'autres qui semblent plus compatibles comme * ServoEasing* et que je n'ai pas encore essayées.
J'y retrouve aussi STM32_ISR_Servo qui m'a renvoyé plein de messages d'erreur sous IDE Arduino mais qui mériterait d'être essayée sous platformio...
Bref, il y a encore à creuser par moi-même et pourquoi pas aller causer l'english sur stm32duino