STM32CubeIDE Разрыв по адресу "xxx" без отладочной информации или вне программного кода - PullRequest
3 голосов
/ 02 марта 2020

Я занят установкой нового оборудования с STM32F030C8 MCU. Я использую STM32CubeIDE с g cc. Я очень новичок в разработке микроконтроллеров, и это мой первый проект с ST и его инструментами.

Это очень простая c программа, которая просто запускает GPIO. Все остальное - сгенерированный код. Поскольку у меня очень мало опыта в этой области, я надеюсь, что кто-то может указать место, где я могу посмотреть. Я подозреваю, что это может быть проблема конфигурации.

Вот код (я удалил все сгенерированные комментарии, чтобы сделать его более компактным):

int main(void)
{
  HAL_Init();

  SystemClock_Config();

  MX_GPIO_Init();

  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2); //my code 1
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2); //my code 2

  while (1)
  {
      HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2);
      HAL_Delay(1000);
  }
}

Когда я шагаю по коду, он активирует GPIO для «моего кода 1», а когда я перехожу к «моему коду 2», это вызывает проблему. Я даже пытался запустить полностью сгенерированную программу без изменений, и проблема не устранена. Это был быстрый тест, чтобы увидеть, действительно ли программа работает на mcu. И это так же, как и запуск GPIO.

Вывод на консоль отладчика:

Temporary breakpoint 1, main () at ../Core/Src/main.c:74
74        HAL_Init();

Program received signal SIGTRAP, Trace/breakpoint trap.
0x1fffecec in ?? ()

Временная точка останова - это то место, где запускается программа, затем я могу либо выполнить оттуда. Или шаг за шагом, все с одинаковым результатом.

Вывод на консоль:

Waiting for debugger connection...
Debugger connected
      -------------------------------------------------------------------
                        STM32CubeProgrammer v2.4.0                  
      -------------------------------------------------------------------

ST-LINK SN  : 34FF6E065250343816210143
ST-LINK FW  : V2J36S7
Voltage     : 3.22V
SWD freq    : 4000 KHz
Connect mode: Under Reset
Reset mode  : Hardware reset
Device ID   : 0x440
Device name : STM32F05x/F030x8
Flash size  : 64 KBytes
Device type : MCU
Device CPU  : Cortex-M0



Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_PEkdAh.srec
  File          : ST-LINK_GDB_server_PEkdAh.srec
  Size          : 4944 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.627

Verifying ...

Download verified successfully 

Полная ошибка:

Break at address "0x1fffecec" with no debug information available, or outside of program code.

Вот два изображения, которые могут помочь. Как я уже говорил, я очень новичок в этом. Так что любая другая необходимая информация, пожалуйста, спросите. Заранее спасибо.

Просмотр отладки Разборка

1 Ответ

2 голосов
/ 02 марта 2020

Код размещен по адресу 0x08000000. В 0x1fffece c отсутствует код пользователя. Это системная область и, вероятно, она загружает системный загрузчик. Это показывает, что контакт BOOTx подключен неправильно.

...