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

 
 
> Странное поведение STM32F745
Денис555
сообщение Jan 14 2016, 16:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 29-09-06
Из: Самара
Пользователь №: 20 827



Доброго времени суток!
Столкнулся с проблемой при использовании STM32F745.
Элементарная программа:
В main в бесконечном цикле происходит постоянный вызов процедуры, в которой следующее:
1. выставили лог. 1 на GPIO
2. пустой цикл задержки
3. сбросили пин GPIO (лог. 0)
4. пустой цикл задержки
...
и далее повторение пунктов 1-4 4 раза.
Все пустые циклы сделал ассемблерными вставками (чтобы наверняка, компилятор проглатывает как есть).
На осциллографе 3 первых получившихся импульса и пауз между ними одинаковые, а четвертый импульс растянут раз в 5 больше. Эффект независим от длительности импульсов.
При добавлении кол-ва импульсов этот эффект может проявиться где угодно в разных импульсах и паузах 1 и более раз.
Тактирование PLL - 200 МГц от внешнего генератора 25 МГц. Пробовал и c HAL-ом и без него. Кроме GPIO и RCC (тактирование) ничего не включено. Все прерывания отключены. Питание норм.
Что это может быть? Уже всю голову сломал и уже не я один.
Приветствуются любые предложения.
Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Денис555
сообщение Jan 15 2016, 07:07
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 29-09-06
Из: Самара
Пользователь №: 20 827



Про SysTick и про DWT - это все понятно, можно, но не для моей реализации.
Нужно решить именно эту задачу.
Что такое конвейер тоже в курсе, работал. Добавленный акселерометр должен ускорять, а не тормозить процесс.
Пробовал отключать и включать акселерометр, не помогает.
Отключение ICash к изменению результата не приводит.

Даже если решить эту проблему другим образом, встретить в программе подряд идущих несколько циклов, не обязательно задержек, очень легко.
И представьте, что МК, ни с того ни с сего, будет выполнять один из циклов в 5 раз дольше... Это нормально? Я понял бы если +- 20 - 50 тактов куда то уходило...
Но столько...

Варианты задержек просьба не предлагать. Все способы реализаций известны. Нужно именно понять почему один из циклов растягивается в 5 раз?
Причем с добавлением циклов растянутый может быть любой из них или даже не один.

Появилась новая интересная штука. Если перед циклом, который задерживается вставить NOP тогда все идет нормально. Иногда нужно вставить не один NOP.
Похоже на проблему с выравниваниями. Но не факт.
Но вот теперь вопрос, как этого избежать?
ICache включаю! В отладке вижу, что включен. Не помогает.
Может кто знает в Keil-е макрос, который производит выравнивание NOP-ми во флешке автоматически?

Кратно 32, 64 байта...

Сообщение отредактировал Денис555 - Jan 15 2016, 05:38
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Денис555   Странное поведение STM32F745   Jan 14 2016, 16:17
- - ViKo   Если в Кейле, то можно в отладчике пройтись по асс...   Jan 14 2016, 16:43
- - Денис555   Пишу в Keil-е. В ассемблерном листинге все ровно к...   Jan 14 2016, 16:55
- - AlexandrY   Цитата(Денис555 @ Jan 14 2016, 18:17) При...   Jan 14 2016, 17:05
- - Денис555   CODE/* Includes ----------------------------------...   Jan 14 2016, 17:28
- - ViKo   Думаю, надо присмотреться к кэшу. Шина Flash у STM...   Jan 14 2016, 18:37
- - alx125   Рискну предположить, что Вы ранее имели дело с ми...   Jan 15 2016, 02:54
|- - arhiv6   Цитата(alx125 @ Jan 15 2016, 08:54) Если ...   Jan 15 2016, 03:57
- - ViKo   У вас конвейер 7-ступенчатый! Задумайтесь. Е...   Jan 15 2016, 07:47
|- - mantech   Цитата(ViKo @ Jan 15 2016, 10:47) У вас к...   Jan 15 2016, 08:32
|- - Денис555   Цитата(ViKo @ Jan 15 2016, 11:47) У вас к...   Jan 15 2016, 08:57
|- - ViKo   Цитата(Денис555 @ Jan 15 2016, 11:57) Да ...   Jan 15 2016, 09:17
|- - Денис555   Цитата(ViKo @ Jan 15 2016, 13:17) Доступ ...   Jan 15 2016, 10:15
- - ViKo   Сама латентность не уменьшится с понижением тактов...   Jan 15 2016, 10:18
- - scifi   Не проще ли запустить этот код из ITCM RAM? Оно та...   Jan 15 2016, 10:24
- - Денис555   Это хорошая идея. Спасибо! Буду рыть информаци...   Jan 15 2016, 11:18
- - Денис555   Всем спасибо! Проблема решилась. Все импульсы ...   Jan 16 2016, 16:51


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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