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

Отладчик


ART_ME

Рекомендуемые сообщения

Дополнительная информация.

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

/* Enable the ADC Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = ADC_PRE_EMPTION_PRIORITY;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = ADC_SUB_PRIORITY;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
  
  /* Enable the Update Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = TIM1_UP_PRE_EMPTION_PRIORITY;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = TIM1_UP_SUB_PRIORITY;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
    
  /* Enable the TIM1 BRK Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = TIM1_BRK_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = BRK_PRE_EMPTION_PRIORITY;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = BRK_SUB_PRIORITY;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Выбросьте говнолибы и будет счастье. Серьезно, весь кода заменяется 3 строками текста.

NVIC_EnableIRQ(ADC1_2_IRQ);
NVIC_EnableIRQ(TIM1_UP_IRQ);
NVIC_EnableIRQ(TIM1_BRK_IRQ);
58 минут назад, ART_ME сказал:

затыкается отладчик только при третьем обращении

Хедер обработчика точно верно написан?

Изменено пользователем BARS_
Ссылка на комментарий
Поделиться на другие сайты

20 минут назад, BARS_ сказал:

Выбросьте говнолибы и будет счастье. Серьезно, весь кода заменяется 3 строками текста.

Не исключено, что это придется сделать.

Библиотеки действительно странноваты. По крайней мере тот же STM32F10x_nvic.c на сайте ST я не нашел.

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

11 минут назад, ART_ME сказал:

Библиотеки действительно странноваты.

Более того, они нафиг не нужны. Ну нет в STM32 ничего столь сложного, что нужны либы для настройки. Простецкие вещи, типа SPIm UART, таймеров и т.п. вообще в 3-4 строки настраиваются. А главное, при настройке вручную все очень легко проверяется по даташиту, а код получается простой и читаемый.

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

Выставил в Watch переменную BRK_SUB_PRIORITY, но её значение почему-то не отобразилось. По идее локальная переменная должна отображаться при остановке в блоке на экране.

Это косяк или так и надо?

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

33 минуты назад, ART_ME сказал:

По идее локальная переменная должна отображаться при остановке в блоке на экране.

Если она объявлена внутри функции, то в 99% случаев она не отобразится, но можно посмотреть ее в Memory.

 

34 минуты назад, ART_ME сказал:

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

Мыши плакали, кололись, но продолжали жрать кактус...

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

2 часа назад, BARS_ сказал:

Мыши плакали, кололись, но продолжали жрать кактус...

Проект некоммерческий.

Т.е.  процесс достижения результата может оказаться важнее самого результата.

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

3 минуты назад, ART_ME сказал:

Т.е.  процесс достижения результата может оказаться важнее самого результата.

Так почему бы не достигать его по человечески, попутно изучая даташит?:crazy: Польза от копания кривых библиотек довольно сомнительная...

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

1 минуту назад, BARS_ сказал:

Так почему бы не достигать его по человечески, попутно изучая даташит?

Потому, что достигать его в данном случае вовсе не обязательно.  

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

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

но тебе все равно навяжут правильный путь единственной и неповторимой истины

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

20 минут назад, BARS_ сказал:

В чем тогда смысл траты времени?:huh:

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

И STM32 тоже валяются....

--------------------------------------------------------------

--------------------------------------------------------------

Тут еще одна фича всплыла.

Изначально проект был рассчитан на STM32F103VBH6

А используется само собой на stm32F103C8T6

Различие в количестве ног и объеме флеш-памяти.

Вроде все должно работать, но...

Хотя до этого я примеры от ST под  STM32F103VBH на свой stm32F103C8T6 прогонял, проблем ни разу не было.

Самое странное - это нестабильность.

К примеру сегодня утром наблюдалось стабильное зависание на третьем вызове NVIC_Init.

А вечером -  стабильно на первом вызове.

Хрень какая-то!!!  :unknw:

 

Изменено пользователем ART_ME

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Коротко.

Согласно мануалу на библиотеку пакостный блок занимается синхронизацией отработки ошибки.

Дело нужное, но в настоящий момент не важное, да и решаемое иными способами.

Поэтому весь блок TIM1_BRK_IRQHandler был закоментирован, и программа пошла дальше.

До успеха далеко, но работать можно.

Всем спасибо за участие.

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

Сорри за беспокойство, нужна маленькая помощь.

Не по коду, а по опыту работы с IDE.

Есть блок программы, в нем в числе других многих расписаны функции А и В.

В описании указано, что функция В должна быть вызывать только после функции А.

В блоке есть вызов функции А, но нет вызова функции В. Ни до, ни после функции А.

И в поиске по файлам я вызова функции В нигде не обнаружил.

Но она должна быть, т.к. без этой функции программа работать точно не будет.

Может быть функция В вызывается прерыванием?

Но установка брейкдауна внутрь её показала, что программа в эту функцию не заходит совсем.

Как быть в такой ситуации, т.е. как в IDE найти кто и каким образом должен вызвать функцию В?

Заранее спасибо за помощь.

 

Изменено пользователем ART_ME

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

ЗЫ. В описании то, что я назвал блоком программы, называется модулем.

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

9 часов назад, ART_ME сказал:

как в IDE найти кто и каким образом должен вызвать функцию В?

путем чтения и анализа исходного кода. Ваш кэп

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

7 часов назад, mail_robot сказал:

путем чтения и анализа исходного кода. Ваш кэп

Я так и сделал. :D

Поэтому более простой вопрос:

Является ли нижеследующее поведение отладчика нормальным или есть признак проблемы?

- если поставить брейкпоинт внутрь функции, запускаемой по прерыванию,  и запустить в отладчике RUN, то программа в эту функцию не попадает.

- если поставить еще один брейкпоинт в майн перед установкой переменной, разрешающей запуск этой функции по прерыванию и повторно запустить RUN, то программа в эту функцию попадает.

 

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

30 минут назад, ART_ME сказал:

и повторно запустить RUN, то программа в эту функцию попадает.

так посмотри по call-стеку откуда она вызвалась, вряд ли проблема в отладчике - ты же не первый с ним работаешь, и наверно даже не сотый...

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

5 часов назад, ruhi сказал:

так посмотри по call-стеку откуда она вызвалась

Спасибо. Без дураков. 

Изменено пользователем ART_ME

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

  • 2 недели спустя...

Практический совет чайникам от чайника  - как избавиться от неоднозначности поведения отладчика. 

СмОтрите свободные порты на Вашем STM32 и вешаете на них светодиоды. Штук пять-шесть вполне хватит.

Потом вставляете их включение\выключение\переключение по ходу программы, не забывая про обработчики прерываний. 

В отличие от брейкпоинтов  светодиоды не имеют неоднозначности показаний. 

Изменено пользователем ART_ME

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

америку открыл :D

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

1 час назад, mail_robot сказал:

америку открыл

Выходит что так.

Потому как никто эту америку мне не подсказал.

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

много еще будет открытий чудных, если не читать а действовать наугад. Поэтому нормальные люди любую работу начинают с изучения имеющегося опыта в данном вопросе, а уж потом велосипеды изобретают

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

1 минуту назад, mail_robot сказал:

много еще будет открытий чудных...

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

Моя ошибка в том, что я напрасно понадеялся на современные IDE и отзывчивость ими  владеющих.

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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

иде то как раз в порядке. Это мы в желании сэкономить пользуемся дешманскими кастрированными свистками-отладчиками. А так то жтаг отладчик умеет хоть на ушах контроллер заставить плясать. Но кмк варианта свистка + uart вполне достаточно для хобби, даже с избытком

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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