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 ответов

13 просмотров

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

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
уверен? Где про это почитать?

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта