STM32CubeIDE Разрыв по адресу "xxx" при отсутствии отладочной информации или вне программного кода
Я занят новым оборудованием с микроконтроллером STM32F030C8. Я использую STM32CubeIDE с gcc. Я новичок в разработке микроконтроллеров, и это мой первый проект с ST и их инструментами.
Это очень простая программа, которая просто запускает 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 ответ
Код размещен по адресу 0x08000000. В 0x1fffecec нет кода пользователя. Это системная область и, вероятно, загружает системный загрузчик. Это показывает, что контакт BOOTx подключен неправильно.