Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба STM32F103C9T6, Keil. Настройки сгенерированны в Кубе. В обычном режиме программа работает без замечаний. Когда вхожу в отладчик, то она зацикливается на функции HAL_Init(). Последним вызовом в этой функции является функция "void HAL_MspInit(void)". Что может быть?, какова методика поиска ошибки? Понимаю, что скорее всего надо лезть в асемблер, в котором я, к сожалению, ничего не понимаю. Так же на это может может влиять связка ST-Link - Keil. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 66 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба 15 минут назад, Юрий48 сказал: Что может быть?, какова методика поиска ошибки? Понимаю, что скорее всего надо лезть в асемблер, в котором я, к сожалению, ничего не понимаю. Обычный си. Ищите вызов HAL_Mspinit, простым поиском по всему коду. Но почему у вас в отладчике не переходит на вызов HAL_Mspinit я не понимаю, у меня корректно происходит переход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба В 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(). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 53 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба 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(). Значит, что-то не так с отладкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба Спасибо за ссылку. В 23.12.2023 в 17:06, EdgeAligned сказал: Значит, что-то не так с отладкой. В какой части? Настройки Keil, ST-Link, камень, Kube, может, ещё чего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 53 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба Не знаю. Наши штатные телепаты уехали к Новому году готовиться, а мы как-то не ясновидящие, не можем узреть, что у вас там написано. Отладка запускается из SRAM или из флеша? Пошаговая отладка работает? Быть может, запускается отладка вовсе не того, что написано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 (изменено) · Жалоба В 23.12.2023 в 18:11, EdgeAligned сказал: Не знаю. Наши штатные телепаты уехали к Новому году готовиться, а мы как-то не ясновидящие, не можем узреть, что у вас там написано. Ну, и я не телепат и ясновидящий, может, потому, что к новому году никуда не уезжаю, более того ни внутренний голос, ни интуиция мне ничего не шепчут, а очень жаль - всего то мигание светодиодом. Это всё, что мною дописано по отношению к Кубу. Но и, если это закоментировать, то ничего не меняется. Получается, что нужно смотреть что там настроено в Кубе. В 23.12.2023 в 18:11, EdgeAligned сказал: Отладка запускается из SRAM или из флеша? Пошаговая отладка работает? Быть может, запускается отладка вовсе не того, что написано. 1. Из флеша 2. работает до попадания на HAL_Init() и внутри него пока не возвращается к HAL_Init() 3. До запуска отладчика программа работает адекватно. Изменено 23 декабря, 2023 пользователем Юрий48 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 (изменено) · Жалоба В 23.12.2023 в 18:49, Юрий48 сказал: Получается, что нужно смотреть что там настроено в Кубе. Всё отключил кроме SWD и кварцев в том числе и выход PC13 (мигание светодиодом) - ситуация не изменилась. Тут же этим программатором подключаюсь к другой навороченной плате совсем из другого навороченного проекта и там всё нормально работает. Изменено 23 декабря, 2023 пользователем Юрий48 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 66 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба 2 часа назад, Юрий48 сказал: На всех трёх строках по стопу происходит остановка. Но после послентей строки программа возвращается на HAL_Init(). Вроде это нормальная работа программы. А в чём проблема? в каком месте зацикливается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба 1 hour ago, Юрий48 said: Всё отключил кроме SWD и кварцев в том числе и выход PC13 (мигание светодиодом) - ситуация не изменилась. Тут же этим программатором подключаюсь к другой навороченной плате совсем из другого навороченного проекта и там всё нормально работает. Так спросите навороченных людей, что они наворотили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба В 23.12.2023 в 20:06, HardEgor сказал: В 23.12.2023 в 17:05, Юрий48 сказал: На всех трёх строках по стопу происходит остановка. Но после послентей строки программа возвращается на HAL_Init(). Вроде это нормальная работа программы. А в чём проблема? в каком месте зацикливается? В этом месте и зацикливается, т.е. программа дальше не проваливается и всё время находится на этом операторе. Я имею ввиду, что если в отладчике на этом месте стоит брекпойнт, то на нём происходит остановка. И если нажать RUN, то метка моргнёт и вернётся опять на эту строчку. И так до бесконечности. А войти в саму эту функцию можно и пройтись внутри тоже. Но это я уже описывал раньше. В 23.12.2023 в 20:44, x893 сказал: Так спросите навороченных людей, что они наворотили. Извините, не понял к чему это. Чего их спрашивать, если там всё работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 66 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба 43 минуты назад, Юрий48 сказал: В этом месте и зацикливается, т.е. программа дальше не проваливается и всё время находится на этом операторе. Я имею ввиду, что если в отладчике на этом месте стоит брекпойнт, то на нём происходит остановка. И если нажать RUN, то метка моргнёт и вернётся опять на эту строчку. И так до бесконечности. А войти в саму эту функцию можно и пройтись внутри тоже. Но это я уже описывал раньше. Такое впечатление, что у вас неправильно выбран контроллер или это перемаркер и работает немного по другому. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба On 12/23/2023 at 10:31 PM, Юрий48 said: если там всё работает. А в чем вопрос тогда, если все работает ? Вся проблема в том, что нет желания изучать документацию на микроконтроллер и документацию на HAL. Да и посмотреть, что происходит в функции (или макросе) __HAL_AFIO_REMAP_SWJ_NOJTAG(); при наличии отладчика, да и просто по коду, не должно составить труда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба В 23.12.2023 в 23:28, dimka76 сказал: Вся проблема в том, что нет желания изучать документацию на микроконтроллер и документацию на HAL. Согласен, есть в этом проблема. Было бы врямя без удовольствия, но поизучал. Надеюссь, что в этом случае Вы не отвернётесь от меня. В 23.12.2023 в 23:28, dimka76 сказал: Да и посмотреть, что происходит в функции (или макросе) __HAL_AFIO_REMAP_SWJ_NOJTAG(); при наличии отладчика, да и просто по коду, не должно составить труда. Для Вас уверен, что да. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий48 0 23 декабря, 2023 Опубликовано 23 декабря, 2023 · Жалоба В 23.12.2023 в 23:17, HardEgor сказал: Такое впечатление, что у вас неправильно выбран контроллер или это перемаркер и работает немного по другому. Что такое перемаркер? Контроллер тот - STM32F103C8T6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться