-
- До кучи, не совсем по теме, но интересно про AHB и борьбу с
джиттером DMA->GPIO почитать. Nikolay_Po(1 знак., 23.01.2023 17:08, ссылка)
- Тоже до кучи. Забавные дела встречаются. Например, большими буквами автор рассказывает: bnb62(171 знак., 23.01.2023 23:56, ссылка)
- мне удавалось через dma и gpio внешний с параллельной шиной цап нагрузить - работало без джиттера, во всяком случае косяков в сигнале не обнаруживалось. но все потоки по разным кускам памяти у которых своя отельная шинка нужно развести и задействовать буфер внутри dma. за статейку спасибо и полезно. - klen(23.01.2023 17:26)
- Не знаю как в толстых STM32, в маленьких прием по ДМА периферия->ОЗУ при записи во флеш идет нормально. При записи блокируется шина флеш, выборка из флеш не работает - IBAH(22.01.2023 14:42)
- В жирных H7 два региона флеша и если писать в другой, то первый продолжает работать. Если исполняется и пишется из одного все лочится до завершения записи. Причем насколько понял вообще все лочится. - Andreas(22.01.2023 14:31)
- Объяснение можно придумать :-) Но для этого надо знать
обстоятельства. Прежде всего интересует, что рушится - прием
(асинхронный) по DMA или передача? Передача по идее рушиться не
может, максимум - заткнуться на время (но и то не должно). Будут
подробности - будут идеи :-) - il-2(22.01.2023 13:05)
- вот это затыкание рушит циклограмму, дма из озу грузит в цикле
интервалы и он отсчелкивает цап. если предположить лок шины где
едут данные для таймера, то будет пропущен запрос на смену
интервала таймера... фисе приехали. красивая циклическая
циклограмма разрушилась. - klen(23.01.2023 12:10)
- Если архитектура МК сделана по уму, то такого происходить не
должно. А раз происходит, значит где-то не доработали. il-2(468 знак., 23.01.2023 15:14)
- еще раз! я принципиально постоил код чтобы после вычисления буферов
DMA, настройки DMA. таймеров и цапа - никакой код ничего не
модифицирует. после настройки и запуска все щелкае независимо от
фонового выполненения апликухи. и это не сработало! вопрос я
косячный или stm. хотелось бы понять чего можно хотеть а чего
нельзя и почему. - klen(23.01.2023 15:32)
- Я то тебя понял, а ты меня - нет. У тебя ДМА КУДА пишет??? il-2(236 знак., 23.01.2023 15:39)
- один стрим DMA пишет из ОЗУ в регисты таймера ARR ... CC4, Второй
канал DMA - ИЗ ОЗУ в ЦАП. код ничего никуда не пишет и ничего не
модифицирует. оба стрима DMA настроены на работу по кругу. - klen(23.01.2023 15:42)
- Ну хорошо... давай с другой стороны. ЧЕРЕЗ ЧТО пишет ДМА? Ы??? А
теперь представь, это "ЧЕРЕЗ ЧТО" - занято. - il-2(23.01.2023 15:48)
- Во!!!!! наконецкто мы дошли до правильного понимая проблемы
одинаково! а теперь вопрос знатокам - что и какого хуя оно
блокируется. временно я не вижу связи флеша с происходящими
явлениями а она есть :) как суслик - klen(23.01.2023 15:56)
- Во время записи во флэш обращение к ней невозможно, надо это как то
блокировать. Вот разработчики на уровне интеграции блоков и
тормознули шинный арбитр на время недоступности флэш. Контроллер
DMA выставляет запрос на шину и получает шиш. А разработчики DMA не
ожидали такого свинства и поэтому DMA крашится. - 3m(23.01.2023 18:50)
- я это предполагаю по поведению, но исходя из того что это ведро
говна в стакан меда, надеюсь в документации найти что это не так. я
все еще надеюсь что лочится порт флеша, а не вся шинная матрица. не
было у них причин лочить всю транспортную инфраструктуру из-за
одной ямы на одной дороге. все еще надеюсь что я что я не так
делаю. - klen(23.01.2023 22:53)
- Вангую, в доках про это ничего нет. Вероятно, рассудили, что
прошивка набортного флеша — занятие довольно серьёзное, всякие dma
и прочие могут покурить в сторонке. Кроме того, минимизация
последствий требует усилий при разработке, а это ресурсы (в
конечном счёте время и бабло). Короче, никто не оценит из тех, кто
имеет значение для прибылей. - SciFi(23.01.2023 22:57)
- значит на этой машине и этой архитектуре невозможно получить
систему управления ядерным реактором. потому как при абсолютной
надежности, должен быть предсказуемый механизм обновления ПО. а
всего то.... шинную матрицу поумнее сделать нужно - я за то чтоб
система шин и коммуникаций в одно кристальной ЭВМ была поумнее
процессора - программируемые связи всего со всем. тогда без ПЛИС
обойдемся - klen(23.01.2023 23:41)
- Давайте вы будете обновлять прошивку на работающем реакторе где нибудь на другой планете подальше от матушки-Земли. - 3m(24.01.2023 10:55)
- Вот уж точно пример неудачный. Полагаю, на ядерном реакторе при
обновлении ПО надо сначала его сутки его выводить из работы, всё
отклуючать нахрен, после заменять подлежащее замене на заведомо
исправное. А до этого неделю всё планировать, расписывать и
тренировать персонал на каком нибудь тренажёре. - mr-x(24.01.2023 07:44)
- Спейс шаттл не пускали на орбиту перед новым годом. Потому что хрен
его знает, что там будет, когда счётчик года провернётся, лучше
перебдеть. - SciFi(24.01.2023 08:00)
- Были байки про пересечение относительно современными истребителями экватора и нулевой высоты над уровнем моря (в полете над мертвым морем) - AlexG(24.01.2023 09:54)
- Вот! Сразу видно людей учёных. - mr-x(24.01.2023 08:24)
- Спейс шаттл не пускали на орбиту перед новым годом. Потому что хрен
его знает, что там будет, когда счётчик года провернётся, лучше
перебдеть. - SciFi(24.01.2023 08:00)
- значит на этой машине и этой архитектуре невозможно получить
систему управления ядерным реактором. потому как при абсолютной
надежности, должен быть предсказуемый механизм обновления ПО. а
всего то.... шинную матрицу поумнее сделать нужно - я за то чтоб
система шин и коммуникаций в одно кристальной ЭВМ была поумнее
процессора - программируемые связи всего со всем. тогда без ПЛИС
обойдемся - klen(23.01.2023 23:41)
- Вангую, в доках про это ничего нет. Вероятно, рассудили, что
прошивка набортного флеша — занятие довольно серьёзное, всякие dma
и прочие могут покурить в сторонке. Кроме того, минимизация
последствий требует усилий при разработке, а это ресурсы (в
конечном счёте время и бабло). Короче, никто не оценит из тех, кто
имеет значение для прибылей. - SciFi(23.01.2023 22:57)
- я это предполагаю по поведению, но исходя из того что это ведро
говна в стакан меда, надеюсь в документации найти что это не так. я
все еще надеюсь что лочится порт флеша, а не вся шинная матрица. не
было у них причин лочить всю транспортную инфраструктуру из-за
одной ямы на одной дороге. все еще надеюсь что я что я не так
делаю. - klen(23.01.2023 22:53)
- Потому что гладиолус. Такие вопросы не приближают к решению. - SciFi(23.01.2023 16:02)
- Во время записи во флэш обращение к ней невозможно, надо это как то
блокировать. Вот разработчики на уровне интеграции блоков и
тормознули шинный арбитр на время недоступности флэш. Контроллер
DMA выставляет запрос на шину и получает шиш. А разработчики DMA не
ожидали такого свинства и поэтому DMA крашится. - 3m(23.01.2023 18:50)
- Во!!!!! наконецкто мы дошли до правильного понимая проблемы
одинаково! а теперь вопрос знатокам - что и какого хуя оно
блокируется. временно я не вижу связи флеша с происходящими
явлениями а она есть :) как суслик - klen(23.01.2023 15:56)
- Ну хорошо... давай с другой стороны. ЧЕРЕЗ ЧТО пишет ДМА? Ы??? А
теперь представь, это "ЧЕРЕЗ ЧТО" - занято. - il-2(23.01.2023 15:48)
- один стрим DMA пишет из ОЗУ в регисты таймера ARR ... CC4, Второй
канал DMA - ИЗ ОЗУ в ЦАП. код ничего никуда не пишет и ничего не
модифицирует. оба стрима DMA настроены на работу по кругу. - klen(23.01.2023 15:42)
- Я то тебя понял, а ты меня - нет. У тебя ДМА КУДА пишет??? il-2(236 знак., 23.01.2023 15:39)
- еще раз! я принципиально постоил код чтобы после вычисления буферов
DMA, настройки DMA. таймеров и цапа - никакой код ничего не
модифицирует. после настройки и запуска все щелкае независимо от
фонового выполненения апликухи. и это не сработало! вопрос я
косячный или stm. хотелось бы понять чего можно хотеть а чего
нельзя и почему. - klen(23.01.2023 15:32)
- Если архитектура МК сделана по уму, то такого происходить не
должно. А раз происходит, значит где-то не доработали. il-2(468 знак., 23.01.2023 15:14)
- вот это затыкание рушит циклограмму, дма из озу грузит в цикле
интервалы и он отсчелкивает цап. если предположить лок шины где
едут данные для таймера, то будет пропущен запрос на смену
интервала таймера... фисе приехали. красивая циклическая
циклограмма разрушилась. - klen(23.01.2023 12:10)
- всегда считал, что запись во флеш есть весьма неординарное занятие. Что-то очень и очень. Типа - смена прошивки. Ну в крайнем случае смена важных установочных занятий. И вдруг одновременная работа ДМА. Как-то странно. У мен я при смене прошивки вроде тоже АЦП по ДМА тоже не останавливался, но мне в голову не приходило посмотреть - а правильно ли там всё делается? Хотя теперь буду просто выключать АЦП. Ну его нафиг. - Лaгyнoв(22.01.2023 12:51)
- Код, пишущий во флеш, исполняется из ОЗУ? - SciFi(22.01.2023 11:47)
- озу->дма -> цап, озу-> дма-> регистры таймеров.
код прошивки выполняется но не учавствует в этом. все настроено
один раз запущено с циклической выборкой. по ходу работы меняются
параметры, и озу модифицируется. если в флеш не лезть то все ок,
если стереть и записать страницу рушится циклограмма таймеров. есть
ощущения что не только флешь лочится...но и шинные матрицы, есои
так то жопа. пока временная мера внешняя w25q. - klen(23.01.2023 11:58)
- Столько слов, а ответа на мой вопрос так и нет. - SciFi(23.01.2023 12:02)
- частично. код прилагухи из флеша, а сами функции работы с
контроллером флеша из itcm. а гепотеза то в чем? могу код
подправить и проверим. - klen(23.01.2023 12:14)
- Это я к тому, чтобы исключить попытки выборки кода из флеша, пока
флеш стирается/программируется. А эти новомодные процы не поймёшь,
вдруг они спекулятивную предвыборку захотят сделать? - SciFi(23.01.2023 12:15)
- пусть проц выбирает команды и конст данные - да пожалуста! его
залочать на время шухера. пусть потопчется на мечсте, ничего
страшного. трасса выполнения кода не влияет на работу настроенной
переферии. - klen(23.01.2023 15:28)
- Это я не строителям стм32 адресую, а вам. Или вы тут не решения
ищете, а ругаете строителей стм32? Тады ой. - SciFi(23.01.2023 15:32)
- непонятно что Вы конкретно адресуете? 1)код выполняется из флеша
2)начинается работас контроллером флеша - флеш блокируется, проц
если декодер команд запросил инструкцию из флеша блокируется. 3)
какое отношение это имеет к обмену между ОЗУ таймером и цап через
DMA которые напожизненно настроены? тогда как есть пропуски
запросов DMA на время работы с флешь и это факт. хочу конкретно
адресованно мне где я неправилно хочу от stm? есть факт, а
объяснения что я неправильно klen(76 знак., 23.01.2023 15:39)
- Иди спать :-) Утро вечера мудреннее. У тебя уже глаз дергается :-) - il-2(23.01.2023 15:41)
- шутит тот кто шутит последним - я вот щас попрыгаю, устану... зато
потом как известном мультике: klen(1 знак., 23.01.2023 15:53, youtube)
- Кстати, это заблуждение. Из великолепной Матрицы: "Good.
Adaptation, improvisation; but your weakness is not your
technique." SciFi(1 знак., 23.01.2023 23:05, картинка)
- я все таки выбираю подход "если побольше попрыгать - весьма вероятно побольше результат будет" - klen(23.01.2023 23:43)
- Кстати, это заблуждение. Из великолепной Матрицы: "Good.
Adaptation, improvisation; but your weakness is not your
technique." SciFi(1 знак., 23.01.2023 23:05, картинка)
- :-) SciFi(1 знак., 23.01.2023 15:44, картинка)
- шутит тот кто шутит последним - я вот щас попрыгаю, устану... зато
потом как известном мультике: klen(1 знак., 23.01.2023 15:53, youtube)
- "проц если декодер команд запросил инструкцию из флеша
блокируется". Неизвестен механизм блокировки. Могли тупо остановить
весь шинный коммутатор при попытки читать флеш. il-2 такую же
версию высказал. Отсюда и предложение исключить попытки чтения
флеша во премя программирования. SciFi(1 знак., 23.01.2023 15:41, ссылка)
- есть идея которую я в Вашей помошью придумал - возможно у меня на
время работы с флешь срабатывают прерывания и они пытаются тянуть
код обработчика из флешаи, и тогда если блокирется вся шинная
матрица ... тогда понятно. ну запрещать прерывания на время работы
с одной страницей флеша.... real-time приложения + работа с флешь =
EPIC FAIL. а не поэтому в отладочные платы с stm упорото суют что
то вроде флеш spi микросхемки W25Q.... всуну весь код прерываний в
ITCM? klen(33 знак., 23.01.2023 15:50)
- Я уже много лет всегда ставлю spi flash 25-й серии. Не хочется
связываться с блокировкой флеша, к тому же у STM32F4 стирание
вообще порядка секунды и секторы огромные. Внешняя флешка гораздо
удобнее. - SciFi(23.01.2023 16:06)
- этот то да, но еще одна микросхема ... а бывает что их всего две - мк и ldo - klen(23.01.2023 16:45)
- Это уже более правдоподобно! ЗЫ: про таблицу векторов тоже не
забудь. - il-2(23.01.2023 15:57)
- мдя.... весьма ценное замечание... пробакланил бы.. спасибо! - klen(23.01.2023 16:00)
- Я уже много лет всегда ставлю spi flash 25-й серии. Не хочется
связываться с блокировкой флеша, к тому же у STM32F4 стирание
вообще порядка секунды и секторы огромные. Внешняя флешка гораздо
удобнее. - SciFi(23.01.2023 16:06)
- есть идея которую я в Вашей помошью придумал - возможно у меня на
время работы с флешь срабатывают прерывания и они пытаются тянуть
код обработчика из флешаи, и тогда если блокирется вся шинная
матрица ... тогда понятно. ну запрещать прерывания на время работы
с одной страницей флеша.... real-time приложения + работа с флешь =
EPIC FAIL. а не поэтому в отладочные платы с stm упорото суют что
то вроде флеш spi микросхемки W25Q.... всуну весь код прерываний в
ITCM? klen(33 знак., 23.01.2023 15:50)
- Иди спать :-) Утро вечера мудреннее. У тебя уже глаз дергается :-) - il-2(23.01.2023 15:41)
- непонятно что Вы конкретно адресуете? 1)код выполняется из флеша
2)начинается работас контроллером флеша - флеш блокируется, проц
если декодер команд запросил инструкцию из флеша блокируется. 3)
какое отношение это имеет к обмену между ОЗУ таймером и цап через
DMA которые напожизненно настроены? тогда как есть пропуски
запросов DMA на время работы с флешь и это факт. хочу конкретно
адресованно мне где я неправилно хочу от stm? есть факт, а
объяснения что я неправильно klen(76 знак., 23.01.2023 15:39)
- Это я не строителям стм32 адресую, а вам. Или вы тут не решения
ищете, а ругаете строителей стм32? Тады ой. - SciFi(23.01.2023 15:32)
- пусть проц выбирает команды и конст данные - да пожалуста! его
залочать на время шухера. пусть потопчется на мечсте, ничего
страшного. трасса выполнения кода не влияет на работу настроенной
переферии. - klen(23.01.2023 15:28)
- Это я к тому, чтобы исключить попытки выборки кода из флеша, пока
флеш стирается/программируется. А эти новомодные процы не поймёшь,
вдруг они спекулятивную предвыборку захотят сделать? - SciFi(23.01.2023 12:15)
- частично. код прилагухи из флеша, а сами функции работы с
контроллером флеша из itcm. а гепотеза то в чем? могу код
подправить и проверим. - klen(23.01.2023 12:14)
- Столько слов, а ответа на мой вопрос так и нет. - SciFi(23.01.2023 12:02)
- озу->дма -> цап, озу-> дма-> регистры таймеров.
код прошивки выполняется но не учавствует в этом. все настроено
один раз запущено с циклической выборкой. по ходу работы меняются
параметры, и озу модифицируется. если в флеш не лезть то все ок,
если стереть и записать страницу рушится циклограмма таймеров. есть
ощущения что не только флешь лочится...но и шинные матрицы, есои
так то жопа. пока временная мера внешняя w25q. - klen(23.01.2023 11:58)
- До кучи, не совсем по теме, но интересно про AHB и борьбу с
джиттером DMA->GPIO почитать. Nikolay_Po(1 знак., 23.01.2023 17:08, ссылка)