Перейти к содержанию
    

На HAL_Init(); программа зацикливается

STM32F103C9T6, Keil. Настройки сгенерированны в Кубе. В обычном режиме программа работает без замечаний. Когда вхожу в отладчик, то она зацикливается на функции HAL_Init(). Последним вызовом в этой функции является функция "void HAL_MspInit(void)". Что может быть?, какова методика поиска ошибки? Понимаю, что скорее всего надо  лезть в асемблер, в котором я, к сожалению, ничего не понимаю. Так же на  это может может влиять связка ST-Link - Keil.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, Юрий48 сказал:

 Что может быть?, какова методика поиска ошибки? Понимаю, что скорее всего надо  лезть в асемблер, в котором я, к сожалению, ничего не понимаю.

Обычный си. Ищите вызов HAL_Mspinit, простым поиском по всему коду.

Но почему у вас в отладчике не переходит на вызов HAL_Mspinit я не понимаю, у меня корректно происходит переход.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.12.2023 в 15:38, HardEgor сказал:

Обычный си. Ищите вызов , простым поиском по всему коду.

Но почему у вас в отладчике не переходит на вызов HAL_Mspinit я не понимаю, у меня корректно происходит переход.

 В отладчике в функцию HAL_Mspinit вхождение происходит. Там всего три строки:

void HAL_MspInit(void)
{
  /* USER CODE BEGIN MspInit 0 */

  /* USER CODE END MspInit 0 */

  __HAL_RCC_AFIO_CLK_ENABLE();
  __HAL_RCC_PWR_CLK_ENABLE();

  /* System interrupt init*/

  /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
  */
  __HAL_AFIO_REMAP_SWJ_NOJTAG();

  /* USER CODE BEGIN MspInit 1 */

  /* USER CODE END MspInit 1 */
}

На всех трёх строках по стопу происходит остановка. Но после послентей строки программа возвращается на HAL_Init().

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

STM32L4xx_HAL_Driver: Initialization and de-initialization Functions (stm32l4-libraries-documentation.readthedocs.io)
Description of STM32F2 HAL and low-layer drivers - User manual
SYSTEM.pdf - Yandex Documents

MSP - MCU Support Package. И да, документацию на HAL нужно тоже читать.

2 минуты назад, Юрий48 сказал:

Но после послентей строки программа возвращается на HAL_Init().

Значит, что-то не так с отладкой. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ссылку.

В 23.12.2023 в 17:06, EdgeAligned сказал:

Значит, что-то не так с отладкой. 

В какой части? Настройки Keil, ST-Link, камень, Kube, может, ещё чего. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаю. Наши штатные телепаты уехали к Новому году готовиться, а мы как-то не ясновидящие, не можем узреть, что у вас там написано. 

Отладка запускается из SRAM или из флеша? Пошаговая отладка работает? Быть может, запускается отладка вовсе не того, что написано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.12.2023 в 18:11, EdgeAligned сказал:

Не знаю. Наши штатные телепаты уехали к Новому году готовиться, а мы как-то не ясновидящие, не можем узреть, что у вас там написано. 

Ну, и я не телепат и ясновидящий, может, потому, что к новому году никуда не уезжаю, более того ни внутренний голос, ни интуиция мне ничего не шепчут, а очень жаль - всего то мигание светодиодом. Это всё, что мною дописано по отношению к Кубу. Но и, если это закоментировать, то ничего не меняется. Получается, что нужно смотреть что там настроено в Кубе.

 

В 23.12.2023 в 18:11, EdgeAligned сказал:

Отладка запускается из SRAM или из флеша? Пошаговая отладка работает? Быть может, запускается отладка вовсе не того, что написано.

1. Из флеша

2. работает до попадания на HAL_Init() и внутри него пока не возвращается к HAL_Init()

3. До запуска отладчика программа работает адекватно.

Изменено пользователем Юрий48

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.12.2023 в 18:49, Юрий48 сказал:

Получается, что нужно смотреть что там настроено в Кубе.

Всё отключил кроме SWD и кварцев в том числе и выход PC13 (мигание светодиодом) - ситуация не изменилась. Тут же этим программатором подключаюсь к другой навороченной плате совсем из другого навороченного проекта и там всё нормально работает.

Изменено пользователем Юрий48

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Юрий48 сказал:

На всех трёх строках по стопу происходит остановка. Но после послентей строки программа возвращается на HAL_Init().

Вроде это нормальная работа программы. А в чём проблема? в каком месте зацикливается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Юрий48 said:

Всё отключил кроме SWD и кварцев в том числе и выход PC13 (мигание светодиодом) - ситуация не изменилась. Тут же этим программатором подключаюсь к другой навороченной плате совсем из другого навороченного проекта и там всё нормально работает.

 

Так спросите навороченных людей, что они наворотили.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.12.2023 в 20:06, HardEgor сказал:
В 23.12.2023 в 17:05, Юрий48 сказал:

На всех трёх строках по стопу происходит остановка. Но после послентей строки программа возвращается на HAL_Init().

Вроде это нормальная работа программы. А в чём проблема? в каком месте зацикливается?

В этом месте и зацикливается, т.е. программа дальше не проваливается и всё время находится на этом операторе. Я имею ввиду, что если в отладчике на этом месте стоит брекпойнт, то на нём происходит остановка. И если нажать RUN, то метка моргнёт и вернётся опять на эту строчку. И так до бесконечности. А войти в саму эту функцию можно и пройтись внутри тоже. Но это я уже описывал раньше.

В 23.12.2023 в 20:44, x893 сказал:

Так спросите навороченных людей, что они наворотили.

Извините, не понял к чему это. Чего их спрашивать, если там всё работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

43 минуты назад, Юрий48 сказал:

В этом месте и зацикливается, т.е. программа дальше не проваливается и всё время находится на этом операторе. Я имею ввиду, что если в отладчике на этом месте стоит брекпойнт, то на нём происходит остановка. И если нажать RUN, то метка моргнёт и вернётся опять на эту строчку. И так до бесконечности. А войти в саму эту функцию можно и пройтись внутри тоже. Но это я уже описывал раньше.

Такое впечатление, что у вас неправильно выбран контроллер или это перемаркер и работает немного по другому.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/23/2023 at 10:31 PM, Юрий48 said:

если там всё работает.

А в чем вопрос тогда, если все работает ?
Вся проблема в том, что нет желания изучать документацию на микроконтроллер и документацию на HAL.

Да и посмотреть, что происходит в функции (или макросе) __HAL_AFIO_REMAP_SWJ_NOJTAG(); при наличии отладчика, да и просто по коду, не должно составить труда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.12.2023 в 23:28, dimka76 сказал:

Вся проблема в том, что нет желания изучать документацию на микроконтроллер и документацию на HAL.

Согласен, есть в этом проблема. Было бы врямя без удовольствия, но поизучал. Надеюссь, что в этом случае Вы не отвернётесь от меня.

В 23.12.2023 в 23:28, dimka76 сказал:

Да и посмотреть, что происходит в функции (или макросе) __HAL_AFIO_REMAP_SWJ_NOJTAG(); при наличии отладчика, да и просто по коду, не должно составить труда.

Для Вас уверен, что да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.12.2023 в 23:17, HardEgor сказал:

Такое впечатление, что у вас неправильно выбран контроллер или это перемаркер и работает немного по другому.

Что такое перемаркер? Контроллер тот - STM32F103C8T6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...