Jump to content

    
Sign in to follow this  
Erooseight

STM32H7+DCMI+DMA+обработка

Recommended Posts

Или нет?

Как правильно заметил jcxz, все будет зависеть от того, насколько часто будет выполняться условие ветвление, а это зависит от набора самих данных.

Скажем, если все данные идут "по нарастающей", то время всего сравнения будет одно, а если "спадающей", то уже совсем другое.

Чтобы этого не было, нужно "выровнять" время отработки в одном и другом условии (например, банальными NOP-ами).

Share this post


Link to post
Share on other sites
Так ведь исходник будет независимо от чисел, которые должны быть перемолоты, оттранслирован при прочих равных условиях. Или нет?

Исходник независимо - ну и что? Выполняться он будет за разное число тактов, в зависимости от данных. Я говорил о том, что тест проведённый ТС-ом для его исходника - некорректен, так как выполнение его исходника будет зависеть от данных. А значит нужно указывать - на каком наборе данных тестировать, или тестировать для самого худшего случая.

 

PS: Код, который я привёл - он для CM4. Возможно на CM7 появились ещё какие-то новые команды, с помощью которых можно ещё оптимизировать. Не знаю. Всё в руках ТС-а. B)

Share this post


Link to post
Share on other sites
У вас в "LDMIA R0, {R3-R9, R12}" одни и те же 8 слов грузятся всю дорогу. R0 c "!" должон быть, чтоб по массиву двигаться ;)

Да, Вы правы, забыл. Исправил. Проверял поверхностно, на скорую руку. :laughing:

Share this post


Link to post
Share on other sites
Исходник независимо - ну и что? Выполняться он будет за разное число тактов, в зависимости от данных. Я говорил о том, что тест проведённый ТС-ом для его исходника - некорректен, так как выполнение его исходника будет зависеть от данных. А значит нужно указывать - на каком наборе данных тестировать, или тестировать для самого худшего случая.

 

PS: Код, который я привёл - он для CM4. Возможно на CM7 появились ещё какие-то новые команды, с помощью которых можно ещё оптимизировать. Не знаю. Всё в руках ТС-а. B)

Я указывал, что изначально массив заполняется по возрастанию, т.е. это и будет по сути самый худший случай. Еще что у меня получилось: собрал с максимальной оптимизации (мой косяк, не заметил) получилось 65 мкс, и потом попробовал запретить прерывания получилось 50 мкс. Спасибо за совет, сейчас попробую ради интереса на ассемблере и использовать TCM RAM.

Edited by Eros

Share this post


Link to post
Share on other sites
Спасибо за совет, сейчас попробую ради интереса на ассемблере и использовать TCM RAM.

А за сколько у Вас мой ассемблерный вариант выполняется?

PS: Мерить время лучше в отладчике по отладочному таймеру (в ядре).

Share this post


Link to post
Share on other sites
А за сколько у Вас мой ассемблерный вариант выполняется?

PS: Мерить время лучше в отладчике по отладочному таймеру (в ядре).

Да, я так и измеряю :smile3046:

Сейчас буду пробовать ассемблерный вариант

Share this post


Link to post
Share on other sites

да! накидал макет примерно такой же штуковины.

ltc2206-14, работать буду на 50МГц .

предварительная фильтрация/предобработка и выталкивание через ETH MAC - с выдачей непрерывного потока UDP пакетами.

удалось протащить (правда без фильтрации - сырые данные с АЦП)  в ETH MAC на скорости 82MBit/s что соответствует 82MBit/s/(16бит-размер слова АЦП) = 5MГц АЦП  - получается типа сетевого AЦП реального времени,. Пинг правда перестает работать но тестовая прилагуха на РС принимает UDP пакеты c данными исправно.

давно была у меня идея внешний АЦП через DCMI прикрутить - Ваш опыт показал что можно была сразу делать и не раздумывать.

Share this post


Link to post
Share on other sites

 

On 10/4/2018 at 1:52 PM, Erooseight said:

АЦП LTC2248 65 Msps

Если не секрет, где так мёдом намазано? Прошёлся поиском - цены просто дурные по сравнению с риалтеком, у которого кстати 500Msps и сразу три канала. (дёргаю с дохлых мониторов)

Share this post


Link to post
Share on other sites
18 hours ago, AVI-crak said:

 

Если не секрет, где так мёдом намазано? Прошёлся поиском - цены просто дурные по сравнению с риалтеком, у которого кстати 500Msps и сразу три канала. (дёргаю с дохлых мониторов)

Ну я же не сам все покупаю, а компания, поэтому почему бы и да =)

Share this post


Link to post
Share on other sites
2 hours ago, Erooseight said:

Ну я же не сам все покупаю, а компания, поэтому почему бы и да =)

Ну это понятно, но триста баксов за чип из омерики - это как-то непропорционально рядом с stm.

Share this post


Link to post
Share on other sites
On 10/13/2018 at 10:41 PM, AVI-crak said:

цены просто дурные по сравнению с риалтеком, у которого кстати 500Msps и сразу три канала

А что это за микросхема и каков у нее реальный динамический диапазон? На DCMI она цепляется без "клея" или надо ПЛИС лепить дял согласования интерфейсов?

Share this post


Link to post
Share on other sites
18 hours ago, AVI-crak said:

Ну это понятно, но триста баксов за чип из омерики - это как-то непропорционально рядом с stm.

Я вижу на Маузере цену $47. Откуда взялись триста баксов?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this