Pendant quelques années, j'utilise le compilateur Mbed Online pour créer des fichiers .bin, puis flasez-les à la ligne de commande comme celle-ci, en utilisant un dongle USB St-Link/V2, et tout fonctionne parfaitement:
st-flash write 01_blink.NUCLEO_F103RB.bin 0x8000000
Aujourd'hui, j'ai téléchargé le STM32Cubeide pour Linux (Fedora 30) et a commencé à traverser ce tutoriel, à l'aide d'une Maple Mini (STM32F103CBT6).
Après avoir construit le projet et commencer une course de débogage, je reçois la sortie:
STMicroelectronics ST-LINK GDB server. Version 5.3.2
Copyright (c) 2019, STMicroelectronics. All rights reserved.
Starting server with the following options:
Persistent Mode : Disabled
Logging Level : 1
Listen Port Number : 61234
Status Refresh Delay : 15s
Verbose Mode : Disabled
SWD Debug : Enabled
Waiting for debugger connection...
Debugger connected
-------------------------------------------------------------------
STM32CubeProgrammer v2.2.0
-------------------------------------------------------------------
Log output file: /tmp/STM32CubeProgrammer_2ZxzGk.log
ST-LINK SN : 34006B063058373138650943
ST-LINK FW : V2J34S7
Voltage : 3.21V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x410
Device name : STM32F101/F102/F103 Medium-density
Flash size : 64 KBytes
Device type : MCU
Device CPU : Cortex-M3
Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_Q2zZSF.srec
File : ST-LINK_GDB_server_Q2zZSF.srec
Size : 4648 Bytes
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Download in Progress:
File download complete
Time elapsed during download operation: 00:00:00.595
Verifying ...
Download verified successfully
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Target is not responding, retrying...
Error! Failed to read target status
Debugger connection lost.
Shutting down...
Après cela, je ne peux plus commencer une séance de débogage parce que je reçois ceci:
Je peux voir le voyant clignotant comme prévu pour que je sache que le programme a été flashé à la carte OK. Mais je ne peux rien faire de plus en plus avec STM32Cubeide et lorsque j'essaie de clignoter via la ligne de commande comme avant, maintenant cela ne fonctionne pas non plus:
[root@localhost Downloads]# st-flash write 01_blink.NUCLEO_F103RB.bin 0x8000000
st-flash 1.5.1-38-gc3577b5
2020-03-24T13:51:09 INFO common.c: Loading device parameters....
2020-03-24T13:51:09 WARN common.c: Invalid flash type, please check device declaration
core status: unknown
Unknown memory region
Heureusement, je peux retourner à mon point de départ à l'aide de l'utilitaire ST-Link (sous Windows) et en maintenant le bouton de réinitialisation avant de vous connecter, puis effectuez une effacement complète, comme mentionné ici:
http://www.kerrywong.com/2012/08/02/Le-Deaded-Cannot-Connect-a-st-Link-Error-Message/
Mais évidemment, ce n'est pas une situation viable pour obtenir un développement productif. Qu'est-ce que je fais mal?
Dans l'onglet 'Debugger' de la boîte de dialogue "Débogueur", j'ai essayé définir "l'interface" comme SWD (c'était déjà réellement) et j'ai également essayé toutes les options pour "réinitialiser le comportement", sans changement de résultat.
Pourquoi cela se passe-t-il toujours? Je lutterai avec quelque chose pendant quelques heures, puis passez 20 minutes de 20 minutes en faisant une question concise et claire que possible avec des captures d'écran, etc., puis deux minutes après avoir posté la réponse, généralement dans une autre SO Réponse que je n'ai jamais vu en quelques heures de recherche. Je pense à une la moitié des questions que j'ai posées sur SO a fini par cette voie.
Le problème semble être que si vous ne déclarez que vous souhaitez utiliser SWD et sur les broches, elle ne sera pas activée par défaut. Donc, dès que le nouveau programme clignoté, la connexion SWD est morte. Je suppose que le programme Mbed conserve l'utilisation de SWD sur les broches standard par défaut, ce qui n'était donc jamais un problème là-bas.
Quoi qu'il en soit pour éviter cela, revenez à la broche et à la configuration (double-cliquez sur le fichier .ioc dans l'explorateur de projet). Définissez les broches appropriées pour SWD (PA13, PA14 dans mon cas) et sous "System Core", cliquez sur SYS et définissez l'option de débogage sur "Fil série".
Oui, c'est correct iforce2d. Une fois que vous avez activé le fil de série, vous pouvez maintenant clignoter votre nouveau programme à la carte (à l'intérieur de l'IDE) sans qu'il soit nécessaire de tout d'abord effacer tout l'utilisation de l'utilitaire ST-Link.
Suivez ces étapes :
Une fois que vous avez un programme dans la STM32, les broches SWD sont activées, vous ne serez plus "verrouillé", de sorte que vous n'avez pas besoin d'utiliser boot0 (ou réinitialiser) à nouveau après cette ...
Remarque: la configuration de débogage (qui fonctionne le mieux pour moi): Probe de débogage = ST-LINK (OPENOCD); Mode de réinitialisation = Réinitialisation du système logiciel.