Bonjour,
J'essaie de flasher une carte STM32F103 via SWD avec une carte de découverte STM32F407. Malheureusement, cela ne fonctionne pas uniquement avec la carte STM32F103.
st-flash
Sortir:
st-flash write prog.bin 0x8000000
2017-01-24T18:44:14 INFO src/stlink-common.c: Loading device parameters....
2017-01-24T18:44:14 INFO src/stlink-common.c: Device connected is: F1 High-density device, id 0x10036414
2017-01-24T18:44:14 INFO src/stlink-common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0 bytes (0 KiB) in pages of 2048 bytes
Comme vous pouvez le voir, cela donne quelque chose d'inattendu comme
Flash: 0 bytes (0 KiB) in pages of 2048 bytes
st-info --probe
Found 1 stlink programmers
serial: 303030303030303030303031
openocd: "\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x31"
flash: 0 (pagesize: 2048)
sram: 65536
chipid: 0x0414
descr: F1 High-density device
Est-ce que quelqu'un sait comment le résoudre.
Merci d'avance.
Résolu avec l'utilitaire ST Link.
le tableau était _protégé en écriture_
Merci pour votre rapport, je pense que je vais l'ajouter à la documentation afin que d'autres personnes n'y échouent pas.
Salut, pouvez-vous m'aider là-dessus? Comment désactiver la protection en écriture ? J'utilise Mac OSX. L'outil utilitaire officiel St-link est pour Windows uniquement, n'est-ce pas ?
Vous pourriez probablement d'abord effacer en masse et je pensais que la protection en écriture était alors effacée. Ou avec quelques commandes openocd (il a plus de fonctionnalités que texane/stlink).
Merci pour votre réponse rapide. J'ai essayé d'effacer le flash, cela a fonctionné. Cependant, le problème demeure. Je vais essayer d'utiliser un ordinateur Windows pour voir ce qui se passe. :\
Avez-vous vu cela dans le README ?
https://github.com/texane/stlink/commit/0f9e4990ba0cdc295875b219b354fdf42f30a9aa
Lorsque vous utilisez OpenOCD, vous pouvez probablement invoquer des commandes monitor stm32f1x unlock 0
(non testées). Voir http://openocd.org/doc/html/Flash-Commands.html.
J'ai exécuté l'utilitaire ST-LINK (sous Windows) et je suis allé dans Cible > Octets d'options... > Désactiver la protection de lecture (zone de liste déroulante). Terminé, problème résolu.
J'ai pu trouver des indices sur la désactivation de la protection contre la lecture à l'aide d'openOCD en suivant ce lien : http://www.openstm32.org/forumthread562. J'utilise la Blue Pill Stm32F103c8t6, une carte chinoise. Il suffit d'ajouter la ligne "monitor flash protect 0 0 11 off" au script d'initialisation d'openOCD. [Non testé]
Salut, j'ai réussi à déverrouiller les bluepills stm32 en utilisant les commandes suivantes sur la session de terminal openocd :
réinitialiser l'arrêt
banques flash
stm32f1x mass_erase 0
stm32f1x déverrouiller 0
Après cela, l'appareil était prêt à être reprogrammé.
@jeroavf Merci ! Cela a fonctionné pour moi et --probe
renvoie maintenant 65536
(on dirait que j'ai l'un des rares modèles de 64 Ko) et clignote correctement.
Un peu amusant, lors de l'étape mass_erase
, il pense même qu'il fait 128 Ko, mais peu importe.
STM32 flash size failed, probe inaccurate - assuming 128k flash
flash size = 128kbytes
Merci, j'ai pu débloquer certains STM32F437 avec un effacement complet de la puce avec l'utilitaire Windows ST-Link, maintenant cela fonctionne à nouveau sur linux st-link :-)
Commentaire le plus utile
Salut, j'ai réussi à déverrouiller les bluepills stm32 en utilisant les commandes suivantes sur la session de terminal openocd :
Après cela, l'appareil était prêt à être reprogrammé.