189 похожих чатов

Здравствуйте, подскажите как работать с функционалом кэш контроллера (камень -

stm32f746zg)

Сама суть задачи и проблемы:
Исходные данные_
Собрал проект в кубе в связке stm32f746 fw_f7_v1.16.0 + lwip(v2. 1.2)+ freertos (v10.2.1)cmsis v1(v1.02) - генератор проекта STM32CubeMX(v 6.1.0)
IDE - Stm32cubeIDE (v 1.5.0)

Работоспособность сгенеренного кода проверяю с помощью пинга.

При отключенном кэше данных все пингуется - делаю вывод что все ок.(кэш инструкций никак не влияет) на работоспособность.

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

Манипуляции с MPU не помогают.
Ну либо их не достаточно.

Где искать проблему?

14 ответов

24 просмотра

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

Georgy- Автор вопроса
Kom
валидация кэша же. Все часто используемые буфера в...

Инвалидировать сам кэш недостаточно? У меня же данные через кэш проходят. А будь данные буфферов по умолчанию не валидны, то не важно, включен кэш или выключен, пинга не происходило бы. Или вы, говоря про валидность, говорите о процессе поступления данных в кэш и там есть доп условия по валидации? У ст по этой теме пока ничего не нашел

Georgy
Инвалидировать сам кэш недостаточно? У меня же дан...

пинг это всмысле сетевой пинг? там работает ДМА я так понимаю в драйвере! дма работает с памятью! о кэшэ она ничего не знает! вы либо должны использовать области рамы для сетевого стека(буферов) которые в связке с ДМА, которые через МПУ настраиваются как некешыруемы или как их там называют!

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

Georgy- Автор вопроса
Stas Koynov
пинг это всмысле сетевой пинг? там работает ДМА я ...

Пинг в смысле сетевой пинг, а именно по icmp по ethernet

Georgy
Пинг в смысле сетевой пинг, а именно по icmp по et...

вот вам посмотреть нужно есть ли ДМА и все такое в драйвере, или руководство найти упоминание об кэше общая инфа: http://microsin.net/programming/arm/an4839-level-1-cache-stm32f7.html

Georgy- Автор вопроса
Serg
Недавно пришлось перечитать все эрраты и на этот к...

@neonsun Понял, спасибо! @KoynovStas, звучит логично, те при работе с кэшем данных и дма для буфферов которые по дма кидаются нужно отдельно некэшируемую область выделить?

Stas Koynov
пинг это всмысле сетевой пинг? там работает ДМА я ...

Вот ничего подобного. Даже с дма данные кэшируются. Их же так или иначе проц обрабатывает. А дма просто скидывает/получает данные по адресам.

Kom
Вот ничего подобного. Даже с дма данные кэшируются...

смотря что мы делаем. кэшируются данные из РАМЫ. ДМА о кэше ничего не знает! она работает напрямую с РАМой. проц работает через кэшь!. если у вас нет пересечений то хорошо! если есть! нужна синхронизация!.

Stas Koynov
смотря что мы делаем. кэшируются данные из РАМЫ. Д...

Сама шина дма-да. Но если данные из кэша до запуска дма в рам не попали(валидация кэша), то и в рам им взяться неоткуда.

Kom
Сама шина дма-да. Но если данные из кэша до запуск...

у него не работает скорее всего случай. когда из ДМА данные попали в РАМУ. проц обработал их часть из них осталась в Кэше. мы говорим ДМА отдавай назад!. но часть данных в Кэше. ДМА поехала отдавать не валидные данные! вот нужна синхронизации для ДМА на отдачу. и на синхронизацию для проца при обновлении данных от ДМА.. ведь проц может тупо читать кэшированные данные. ему нужно сообщить, что данные в кэше протухли. ДМА нам свежак скачала.

Aleksander Zholtkovskii
уверен? Где про это почитать?

Не подскажу. Я, когда столкнулся, просто надёргал статей из интернета

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта