реклама на сайте
подробности

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> STM32 OTG USB проблема с отладкой
Forger
сообщение Feb 22 2017, 10:42
Сообщение #46


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Chameleon @ Feb 22 2017, 12:52) *
Вы вообще читаете, что я пишу?

Мне лишь одного этого хватило:
Цитата(Chameleon @ Feb 21 2017, 18:08) *
Препроцессор - зло. Он не нужен.

Это позволяет лишний раз убедиться, что:
Цитата(Chameleon @ Feb 22 2017, 07:53) *
Чем дальше в лес, тем толще партизаны.


.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 22 2017, 10:53
Сообщение #47


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Chameleon @ Feb 22 2017, 10:53) *
Через отладчик выяснил, что процессор падает в HardFault.
Падает на этой функции:

HardFault - это ни о чём не говорит.
Возможно там у Вас UsageFault или MemFault или BusFault или ещё какой, а потом происходит эскалация до HardFault, так как у Вас и механизм исключений конечно не прописан и не инициализирован.
Изучайте документацию на ядро в части исключений. У Cortex-M есть куча регистров, по которым можно определить конкретный тип и причину fault-а. И тогда легко будет найти ошибку.
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 22 2017, 10:57
Сообщение #48


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(jcxz @ Feb 22 2017, 13:53) *
И тогда легко будет найти ошибку.

lol.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Feb 22 2017, 11:07
Сообщение #49


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(Forger @ Feb 22 2017, 12:11) *
Не надо читать и вникать в эту кучу кода, достаточно лишь один раз скомпилировать в одну либу и подключить к проекту вместе с H-файлами.
Не забыть про ключик компиляции, при котором каждая функция кладется в свою ELF-секцию, так в финальную прошивку попадут только те функции, которые используются, а не целиком соотв. С-файл.

Классно. Рад за вас, что у вас всё всегда работает.
Почему-то мой код надо отлаживать, а не просто написать и нажать кнопочку "build". И в процессе отладки очень хочется минимизировать количество "чёрных ящиков".


Цитата(Forger @ Feb 22 2017, 12:11) *
Речь тут не про HAL/CUBE и т. п, а про совсем другое - про банальное нарушение базового правила кода под МК: заходить в прерывания можно только для того, чтобы "отметиться" и что-то просемафорить наружу в основной код.
А число-дробилки и циклы ожидания выносятся наружу в основной код. Иначе жди беды!

То-то у кортексов настолько развесистый NVIC, что им с лёгкостью можно заменить простенькую операционку.

Ну я основную идею понял. "у меня всё работает, а шаг вправо, шаг влево - это сам дурак". Спасибо за мнение.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 22 2017, 11:23
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(esaulenka @ Feb 22 2017, 14:07) *
Почему-то мой код надо отлаживать, а не просто написать и нажать кнопочку "build".

Как раз в данном случае именно так и должен работать такой примитивный код.

Цитата
И в процессе отладки очень хочется минимизировать количество "чёрных ящиков".

БИНГО! Начинает доходить! Вот почему я уже трижды написал "создать ПУСТОЙ ПРОЕКТ" !!!

Цитата
То-то у кортексов настолько развесистый NVIC, что им с лёгкостью можно заменить простенькую операционку.

Ну-ну, а спотыкаемся уже на детских грабельках smile3046.gif

Цитата
Ну я основную идею понял.

Основная идея как раз совсем в другом:
1) чуть назад отойти от стены, в которую уперся как ...,
2) глянуть на нее издали,
3) найти в ней дверь,
4) подойти, открыть
5) и наконец-то двигаться дальше.

Самые простые решения чаще всего лежат прямо перед носом.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 22 2017, 13:02
Сообщение #51


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Forger @ Feb 22 2017, 14:38) *
Короче, далее бейтесь о стену уже без моей помощи - все, чем я мог помочь, тут уже прозвучало и неоднократно и не только от меня. Удачи wink.gif

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

Вообще, я первый раз такое вижу - "HAL не пробовал, но он прекрасен". Этакое "Рабинович напел" наоборот.

Цитата(Chameleon @ Feb 22 2017, 14:52) *


Посмотрите настройки флеша. wait-states, ART prefetch. Если у вас старая ревизия контроллера (какой кстати контроллер?), то там были баги в ART prefetch. Возможно, куб включает ART безусловно, и проблема в этом.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 22 2017, 13:23
Сообщение #52


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AHTOXA @ Feb 22 2017, 16:02) *
Помощи от вас никакой, только тему засоряете.
Да не расстраивайтесь вы так за ТС, он не маленький, сам разберется, хоть и не сразу ...

Цитата
Автор темы давно убрал глухой цикл из прерывания, а вы продолжаете ему твердить про это.

© "Читаю книгу, а вижу фигу"
Внимательнее читайте порядок действий, которые я уже неоднократно приводил для ТС. Продублирую:

Цитата(Forger @ Feb 21 2017, 16:54) *
Нужно, точно локализовать источник косяка. Пока что все упирается в вашу функцию. Копайте в этом направлении.
Например, подряд в основном коде вызвать ее несколько раз или более радикально - гонять в бесконечном цикле, но не в прерываниях.
Цитата(Forger @ Feb 22 2017, 12:11) *
Вижу простое решение: отладить это чудо-код на ПУСТОМ проекте, добиться от него стабильной работы в разных ситуациях (банально тесты), и уже только после этого куда-то сувать.
Цитата(Forger @ Feb 22 2017, 12:38) *
А что делает тут USB?
Короче, ПУСТОЙ НОВЫЙ проект только для того, чтобы отладить ваши несчастные костыльные функции.
Добейтесь тут от них нормальной работы в ПУСТОМ проекте. Поиграйтесь с размером стека (например).
В конце концов, сделайте нормальный функционал БЕЗ поллинга!


Может еще нужно разжевать до косточек и написать проект за самого ТС???

Цитата
Вообще, я первый раз такое вижу - "HAL не пробовал, но он прекрасен". Этакое "Рабинович напел" наоборот.

Не пойму, какое отношение подобные домыслы имеют к этой теме и ко мне лично? cranky.gif

Я пользуюсь HAL (ранее SPL), ничего дурного в этом не вижу. Но без соотв. тестов слепо доверять бесплатному чужому коду тоже не стану.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 22 2017, 14:44
Сообщение #53


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Forger @ Feb 22 2017, 18:23) *
Внимательнее читайте порядок действий, которые я уже неоднократно приводил для ТС. Продублирую:

То есть, для отладки USB вы предлагаете выбросить USB? Ну, нормально, да. То-то автор темы так оценил вашу помощь.

Цитата(Forger @ Feb 22 2017, 18:23) *
Не пойму, какое отношение подобные домыслы имеют к этой теме и ко мне лично? cranky.gif
Я пользуюсь HAL (ранее SPL), ничего дурного в этом не вижу. Но без соотв. тестов слепо доверять бесплатному чужому коду тоже не стану.

Я имел в виду куб, не думал, что есть разница между HAL и кубом. Вот та цитата, от которой я отталкивался:
Цитата(Forger @ Feb 20 2017, 19:16) *
Я сам лично не пользуюсь кубом и пока не планирую, но и отговаривать от этого новичков не стану.



--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 22 2017, 15:02
Сообщение #54


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AHTOXA @ Feb 22 2017, 17:44) *
То есть, для отладки USB вы предлагаете выбросить USB? Ну, нормально, да. То-то автор темы так оценил вашу помощь.

И откуда ж вы такие умные беретесь, а? Для начала хорошенько почитайте тему.
Кратко для ленивых: проблема в данном случае вовсе не в CUBE/HAL/USB, а т.н. user-коде. Без самодеятельности ТС все там работает (с его же слов).

Цитата
Я имел в виду куб, не думал, что есть разница между HAL и кубом.

Ну, коли вы не видите разницу между красным и мокрым, то сначала изучите матчасть, перед тем, как кидать кирпичи.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Chameleon
сообщение Feb 22 2017, 15:06
Сообщение #55


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 5-07-08
Пользователь №: 38 757



Ревизия проца A. Две штуки. Взял вторую плату, китайский клон Nucleo. Результат тот же. Сделал передачу по уарт ногодрыгом вручную. Аппаратный отключен. То же самое. При передаче первого байта отваливается USB. Такое впечатление, что любая запись в порт PA валит USB. Он тоже на этот порт выведен.
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 22 2017, 15:15
Сообщение #56


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Chameleon @ Feb 22 2017, 18:06) *
Сделал передачу по уарт ногодрыгом вручную. Аппаратный отключен. То же самое. При передаче первого байта отваливается USB. Такое впечатление, что любая запись в порт PA валит USB.
Чудеса да и только!
Другой USART или этот же, но в другие пины работает так же?

Цитата
Он тоже на этот порт выведен.
Выкладывайте код вместе с инициализацией и на всякий случай схему.





--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Thorn
сообщение Feb 22 2017, 15:37
Сообщение #57





Группа: Участник
Сообщений: 7
Регистрация: 5-10-12
Пользователь №: 73 825



Руководство по поиску причины HardFault
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 22 2017, 15:49
Сообщение #58


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Chameleon @ Feb 22 2017, 20:06) *
Ревизия проца A. Две штуки. Взял вторую плату, китайский клон Nucleo.

А какой проц-то? В F405/407/415/417 - ART не рабочий в ревизии A. Если куб его включает, то причина вылетов может быть в этом.
Кроме того, проверьте частоту, на которую вы настроили PLL. Правильно ли задана частота кварца.

Цитата(Forger @ Feb 22 2017, 20:02) *
И откуда ж вы такие умные беретесь, а? Для начала хорошенько почитайте тему.
Кратко для ленивых: проблема в данном случае вовсе не в CUBE/HAL/USB, а т.н. user-коде. Без самодеятельности ТС все там работает (с его же слов).

Я вообще-то высказывался не против CUBE/HAL/USB, а против вашего способа "помогать" автору темы. Вы не помогаете. Вы чешете своё ЧСВ.

Цитата(Forger @ Feb 22 2017, 20:02) *
Ну, коли вы не видите разницу между красным и мокрым

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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 22 2017, 16:04
Сообщение #59


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AHTOXA @ Feb 22 2017, 18:49) *
Разницу вижу. Повторюсь: я имел в виду куб. Вы, не пользуясь кубом, тем не менее уверены, что проблема в пользовательском коде. Вот это я и имел в виду под тезисом "анти-Рабинович напел".

Читайте отсюда.

Вот кратко:
Цитата(Forger)
В основном коде ВНЕ прерываний эта функция работает? В бесконечном цикле.

Цитата(Chameleon)
Да.


Вот код этой функции.

И тут почитайте: https://electronix.ru/forum/index.php?s=&am...t&p=1483529

Еще есть вопросы?

Цитата(Chameleon)

Увеличение размера стека помогает?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Chameleon
сообщение Feb 22 2017, 16:25
Сообщение #60


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 5-07-08
Пользователь №: 38 757



QUOTE
А какой проц-то? В F405/407/415/417 - ART не рабочий в ревизии A. Если куб его включает, то причина вылетов может быть в этом.
Кроме того, проверьте частоту, на которую вы настроили PLL. Правильно ли задана частота кварца.


Процессор F411RE, ревизия A. Весь код генерит куб, я только компилирую его в кейле. Частоты не превышают ограничения в кубе (100Мгц и 50Мгц).

Одна плата такая: XNucleoF411re. Схемы нет.
Вторая плата такая:

Прикрепленное изображение


Схема есть.

UART. На другой порт перебрасывать - не выход. Все пины проца заняты. И плата уже разведена. И нет гарантии что при манипуляции другими битами порта USB не будет отваливаться.

QUOTE
Выкладывайте код вместе с инициализацией и на всякий случай схему.


Всю портянку, что куб нагенерил, выкладывать?
Go to the top of the page
 
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th August 2025 - 22:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01511 секунд с 7
ELECTRONIX ©2004-2016