Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

STM32 работает нормально только с отладчиком

Вт мар 11, 2014 19:32:08

Всем привет!
В общем проблема такая - при запуске отладки из IAR - все работает замечательно. Если же отладчик не подключен - при перезапуске перестает работать половина периферии, например UART...
С чем сие может быть связано?
С отладчиком работает в любом случае, даже при запуске программы без прошивки

UPD: если отключить прерывание от DSP (это спецМК) все нормально запускается... странно все это

Re: STM32 работает нормально только с отладчиком

Чт мар 13, 2014 21:50:30

UART говорите? Может быть у вас просто отвалилась земля на RS-232 и поэтому при отключении разъёма отладчика данные перестают выдаваться ?

Возможно также проблема с раскачкой кварца, а запуск от отладчика даёт больше времени на раскачку, а при отключении всё переходит на встроенный HSI clock.

И кстати, почему IAR ? Вроде бы есть бесплатный и более удобный CooCox + GCC под ARM ?

Re: STM32 работает нормально только с отладчиком

Чт мар 13, 2014 23:57:26

Zud писал(а): Может быть у вас просто отвалилась земля на RS-232 и поэтому при отключении разъёма отладчика данные перестают выдаваться ?

я разъем отладчика не отключаю - J-Link на плате распаян. Просто передергиваю питание.
Я с этим наполовину разобрался - в коде была неявная инициализация этой периферии. Моя была до нее. После того, как поставил в нужном порядке все ок, но это не объясняет почему с дебаггером все работало и так.
Zud писал(а):И кстати, почему IAR ?

это промышленный стандарт. Все библиотеки и прочее на нем. В данном конкретном случае - демонстрационный проект на IAR. Там посмотрим, может и перейдем на gcc.

Re: STM32 работает нормально только с отладчиком

Пт мар 14, 2014 11:34:38

C дебаггером инициализация проходит от предыдущей сессии. Питание проца не сбрасывается. У меня была подобная проблема из-за пропущенной инициализации периферии. Дебаггер обнулял периферию при запуске и всё работало, а при отдельной работе были глюки.

Re: STM32 работает нормально только с отладчиком

Пт мар 30, 2018 08:05:09

Дебаггер обнулял периферию при запуске и всё работало, а при отдельной работе были глюки.

Скажите пожалуйста как вы GARMIN решили эту проблему?

Re: STM32 работает нормально только с отладчиком

Пн апр 09, 2018 18:50:47

Не знаю, как GARMIN, но у меня вся инициализация переферии при запуске ядра происходит через:
- Разрешение работы переферии
- Сброс переферии
- Конфигурация переферии.

Ни разу после этого кристалл не зависал и не спотыкался на запуске чего-либо. Даже I2C стартует с первой попытки.

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 10:53:59

Не знаю, как GARMIN, но у меня вся инициализация переферии при запуске ядра происходит через:
- Разрешение работы переферии
- Сброс переферии
- Конфигурация переферии.

Ни разу после этого кристалл не зависал и не спотыкался на запуске чего-либо. Даже I2C стартует с первой попытки.


Я пробовал вот так. Урезанный проект до нельзя. Тем не менее не стартует без отладчика. Проект пересобирал. Уж и не знаю с какой стороны подойти.
Плата на stm32f100. Работаю в кейле.



Код:
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_conf.h"

GPIO_InitTypeDef port;

void initialization(void);

void initialization()
{
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
   port.GPIO_Mode = GPIO_Mode_Out_PP;
   port.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
   port.GPIO_Speed = GPIO_Speed_10MHz;
   GPIO_Init(GPIOC, &port);

}

int main(void){
   initialization();
   GPIO_SetBits(GPIOC, GPIO_Pin_9);
   
   while(1){
   
}
Последний раз редактировалось atrel Ср мар 10, 2021 18:22:50, всего редактировалось 1 раз.

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 11:07:41

atrel, а с какими ключами это дело собирается? Покажите Makefile. Может, оно там в каком-то дико отладочном режиме?

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 11:36:12

atrel, а с какими ключами это дело собирается? Покажите Makefile. Может, оно там в каком-то дико отладочном режиме?


Благодарю за ответ.
К сожалению не знаю где такой файл в проекте. В архиве два похожих не него и hex.
Если будет эффективней могу скинуть весь проект.
Вложения
Template.zip
(3.77 KiB) Скачиваний: 294

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 11:55:25

Залейте этот файл. С ним работает?
Вложения
STM32F100RB.zip
(970 байт) Скачиваний: 308

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 12:39:49

К сожалению не знаю где такой файл в проекте.

Ну нифига ж себе!
Это как вообще возможно: не знать, как у тебя исходники собираются? А где лежат стартап, линкер-скрипт и CMSIS — тоже неизвестно?

А как тогда компиляция производится? Я, например, просто в консоли пишу make, читаю сообщения, если ошибок нет — пишу make dfuboot, make boot или make flash (в зависимости от способа заливки прошивки) и прошивка попадает в МК. Далее перехожу в соседнюю вкладку консольки, где открываю терминал и работаю с МК…
А как это можно делать иначе?

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 18:15:16

Залейте этот файл. С ним работает?


Спасибо за ответ Мурик . Да, работает. В чём секрет?
Я менял тактирование, пробовал играться с обнулением переферии, заново переделывал проект, а оно не работает.


Eddy_Em писал(а):Ну нифига ж себе!
Это как вообще возможно: не знать, как у тебя исходники собираются? А где лежат стартап, линкер-скрипт и CMSIS — тоже неизвестно?

А как тогда компиляция производится? Я, например, просто в консоли пишу make, читаю сообщения, если ошибок нет — пишу make dfuboot, make boot или make flash (в зависимости от способа заливки прошивки) и прошивка попадает в МК. Далее перехожу в соседнюю вкладку консольки, где открываю терминал и работаю с МК…
А как это можно делать иначе?


Там есть "Option for target" и кнопка "Rebuild". Но это так, между нами.
Последний раз редактировалось atrel Ср мар 10, 2021 19:27:57, всего редактировалось 2 раз(а).

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 18:57:40

Там есть "Option for target" и кнопка "Rebuild". Но это так, между нами.

Абдурина что ли? Только там через жопу предлагается собирать исходники!

Re: STM32 работает нормально только с отладчиком

Ср мар 10, 2021 20:12:23

Я, например, просто в консоли пишу make, читаю сообщения, если ошибок нет — пишу make dfuboot, make boot или make flash (в зависимости от способа заливки прошивки) и прошивка попадает в МК. Далее перехожу в соседнюю вкладку консольки, где открываю терминал и работаю с МК…
Нормальный подход, чо... В то время, когда другие просто жмут одну кнопочку в IDE :)))
Каждый др.чет как хочет :dont_know:

Re: STM32 работает нормально только с отладчиком

Чт мар 11, 2021 09:54:33

Каждый др.чет как хочет :dont_know:

Согласен.

Но всётаки уже месяц бъюсь и не понимаю почему у кого-то работает, а у меня нет :(

Re: STM32 работает нормально только с отладчиком

Чт мар 11, 2021 10:51:13

Но всётаки уже месяц бъюсь и не понимаю почему у кого-то работает, а у меня нет :(

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

Ну, а насчет "нажать кнопочку" или "нажать клавосочетание" — это и у меня в qt-creator'е есть. Только там же экранчик для выхлопа совсем невменяемо мелких размеров. А в консольке полноценный - на весь экран. Удобно. Особенно в make debug видно весь выхлоп и какие баги возникают (в режиме debug я активирую -Wall -Wextra -Werror, чтобы не было соблазна проигнорировать варнинги).
Вложения
xxs.png
(147.42 KiB) Скачиваний: 205
Последний раз редактировалось Eddy_Em Чт мар 11, 2021 10:56:41, всего редактировалось 2 раз(а).

Re: STM32 работает нормально только с отладчиком

Чт мар 11, 2021 10:52:03

atrel писал(а):Да, работает. В чём секрет?
Весь секрет в том что я код что вы выложили скопировал в IDE и скомпилировал. Почему у вас не работает не знаю - кейлом не пользуюсь. Он слишком дорого стоит - больше 3500 долларов!
Я использую бесплатную IDE.
Вложения
STM32F100RB.7z
(175.76 KiB) Скачиваний: 262

Re: STM32 работает нормально только с отладчиком

Чт мар 11, 2021 16:32:04

Весь секрет в том что я код что вы выложили скопировал в IDE и скомпилировал. Почему у вас не работает не знаю - кейлом не пользуюсь. Он слишком дорого стоит - больше 3500 долларов!
Я использую бесплатную IDE.


Благодарствую. Буду сличать настройки.

Но и я как бы не шикую. Демо версии для изучения МК, полагаю, должно хватить. Выбрал её исключительно из мнения, что работа в подобной IDE поможет сконцентрироваться на изучении STM-ок.

Re: STM32 работает нормально только с отладчиком

Чт мар 11, 2021 17:58:31

atrel, если вы именно на изучении STM'ок хотите сконцентрироваться, то сделайте сначала без излишне хитрых IDE: напишите стартап, ld-скрипт и Makefile, соберите простейший пример…

Re: STM32 работает нормально только с отладчиком

Чт мар 11, 2021 18:36:26

atrel писал(а):Выбрал её исключительно из мнения, что работа в подобной IDE поможет сконцентрироваться на изучении STM-ок.
Каким образом?
Не сказал бы что в кейле есть что-то такое что позволяет концентрироваться на изучении STM-ок. :dont_know:

Eddy_Em, вы забыли написать что нужно еще линукс установить. :)))
Ответить