|
STM32H7+DCMI+DMA+обработка |
|
|
|
Sep 18 2018, 14:08
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(Tanya @ Sep 18 2018, 16:59) Или нет? Как правильно заметил jcxz, все будет зависеть от того, насколько часто будет выполняться условие ветвление, а это зависит от набора самих данных. Скажем, если все данные идут "по нарастающей", то время всего сравнения будет одно, а если "спадающей", то уже совсем другое. Чтобы этого не было, нужно "выровнять" время отработки в одном и другом условии (например, банальными NOP-ами).
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Sep 18 2018, 14:10
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(Tanya @ Sep 18 2018, 16:59) Так ведь исходник будет независимо от чисел, которые должны быть перемолоты, оттранслирован при прочих равных условиях. Или нет? Исходник независимо - ну и что? Выполняться он будет за разное число тактов, в зависимости от данных. Я говорил о том, что тест проведённый ТС-ом для его исходника - некорректен, так как выполнение его исходника будет зависеть от данных. А значит нужно указывать - на каком наборе данных тестировать, или тестировать для самого худшего случая. PS: Код, который я привёл - он для CM4. Возможно на CM7 появились ещё какие-то новые команды, с помощью которых можно ещё оптимизировать. Не знаю. Всё в руках ТС-а.
|
|
|
|
|
Sep 19 2018, 05:38
|
Группа: Участник
Сообщений: 7
Регистрация: 10-04-17
Пользователь №: 96 446
|
Цитата(jcxz @ Sep 18 2018, 17:10) Исходник независимо - ну и что? Выполняться он будет за разное число тактов, в зависимости от данных. Я говорил о том, что тест проведённый ТС-ом для его исходника - некорректен, так как выполнение его исходника будет зависеть от данных. А значит нужно указывать - на каком наборе данных тестировать, или тестировать для самого худшего случая. PS: Код, который я привёл - он для CM4. Возможно на CM7 появились ещё какие-то новые команды, с помощью которых можно ещё оптимизировать. Не знаю. Всё в руках ТС-а. Я указывал, что изначально массив заполняется по возрастанию, т.е. это и будет по сути самый худший случай. Еще что у меня получилось: собрал с максимальной оптимизации (мой косяк, не заметил) получилось 65 мкс, и потом попробовал запретить прерывания получилось 50 мкс. Спасибо за совет, сейчас попробую ради интереса на ассемблере и использовать TCM RAM.
Сообщение отредактировал Eros - Sep 19 2018, 05:44
|
|
|
|
|
Sep 19 2018, 05:55
|
Группа: Участник
Сообщений: 7
Регистрация: 10-04-17
Пользователь №: 96 446
|
Цитата(jcxz @ Sep 19 2018, 08:52) А за сколько у Вас мой ассемблерный вариант выполняется? PS: Мерить время лучше в отладчике по отладочному таймеру (в ядре). Да, я так и измеряю Сейчас буду пробовать ассемблерный вариант
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|