Я використовую MDK-Lite версії 5.23 з платою STMicroelectronics STM32F072B-Disco "Відкриття", і я намагаюся використовувати Flash-приклад, наданий зразками Discovery.
Я використовував цю плату та ланцюжок інструментів для інших прикладів, і я зашифрував деякі роботи SPI та GPIO. IDE працює як чемпіон. Однак для цього конкретного проекту я можу створити код та запустити його, завантаживши та скориставшись кнопкою скидання. Я не можу використовувати налагоджувач у проекті, як тільки я використовую процедуру HAL_FLASHEx_Erase (). Після того, як я виконую цю процедуру, IDE спливає діалогове вікно "Не вдається отримати доступ до цілі. Завершення сеансу налагодження."
Для чого це варто, я знаю, що це не помилка програмування, оскільки якщо я завантажую код і потім виконую код, натиснувши кнопку скидання, він буде працювати. Я використовував цей самий налагоджувач із платою TI, і він міг програмувати спалах та виконувати флеш-процедури. Я впевнений, що не стираю частину флеш-пам’ятки, де зберігається код, тому це не так.
Якщо я перейду цей рядок у main.c
if (HAL_FLASHEx_Erase(&EraseInitStruct, &PageError) != HAL_OK)
потім він припиняє сеанс налагодження. Якщо я замість цього перейду до того самого рядка, а потім перейду кожен виклик у режимі спалаху спалаху, тоді він спрацює і врешті-решт вийду з розпорядку, і я можу налагодити решту коду.