STM32, первые впечатления.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: STM32, первые впечатления.
NStorm, у меня максимальная частота 775Гц. Свою часть проекта я сделал, но не могу остановиться, буду осваивать и звуковой диапазон.
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="linkov1959",url="/forum/viewtopic.php?p=3887678#p3887678"]КРАМ, это не прихоти, а серьезный проект.[/uquote]
Проект может быть и серьезный, только подход к его реализации состоит из сплошных прихотей. Между серьезностью задачи и беспонтовой реализацией нет никакой связи.
Проблема "лишь бы работало" заключается в том, что в определенный момент проект упирается в необходимость ВСЕ ПЕРЕДЕЛАТЬ, патамушта бестолковая реализация становится фатально нереализуемой на целесообразной матчасти.
Все что возможно делать НЕ ТАК - Вы делаете. И где тут ночевала серьезность?
Проект может быть и серьезный, только подход к его реализации состоит из сплошных прихотей. Между серьезностью задачи и беспонтовой реализацией нет никакой связи.
Проблема "лишь бы работало" заключается в том, что в определенный момент проект упирается в необходимость ВСЕ ПЕРЕДЕЛАТЬ, патамушта бестолковая реализация становится фатально нереализуемой на целесообразной матчасти.
Все что возможно делать НЕ ТАК - Вы делаете. И где тут ночевала серьезность?
Последний раз редактировалось КРАМ Чт сен 03, 2020 22:21:06, всего редактировалось 1 раз.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: STM32, первые впечатления.
КРАМ, всё уже работает как надо, проект закончен и реализован успешно. Дальше уже моё баловство, можно и побузить:)
А не замахнуться ли нам на преобразования Фурье, можно пока не быстрые! Вы готовы помогать конструктивно?
А не замахнуться ли нам на преобразования Фурье, можно пока не быстрые! Вы готовы помогать конструктивно?
Re: STM32, первые впечатления.
[uquote="linkov1959",url="/forum/viewtopic.php?p=3887645#p3887645"]MikroElektronika имеет лучшие компиляторы на Си, бейсик и паскаль![/uquote]Обоснуйте! Я про си. Васик со товарищи я думаю тут мало кому интересен.
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="linkov1959",url="/forum/viewtopic.php?p=3887732#p3887732"]А не замахнуться ли нам на преобразования Фурье, можно пока не быстрые! Вы готовы помогать конструктивно?[/uquote]
Помогать то я могу, только проку с Вашим подходом никакого не будет.
Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?
Ну или использовать библиотеку, которая так же написана на АСМе.
Чтобы грамотно работать с сигналами, нужно понимать теорию того, что Вы делаете. Что Вы знаете об FFT или DFT, кроме самой этой аббревиатуры?
Добавлено after 5 minutes 33 seconds:
[uquote="linkov1959",url="/forum/viewtopic.php?p=3887732#p3887732"]Дальше уже моё баловство, можно и побузить:)[/uquote]
Я иногда собеседую кандидатов на работу. Ваши сентенции тут не дали бы Вам ни единого шанса, если бы Вы претендовали на обсуждаемую тут тематику. Серьезные проекты не пишут на Васиках. Из чего следует, что к "серьезному проекту", даже если он существует, лично Вы отношения не имеете.
Помогать то я могу, только проку с Вашим подходом никакого не будет.
Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?
Ну или использовать библиотеку, которая так же написана на АСМе.
Чтобы грамотно работать с сигналами, нужно понимать теорию того, что Вы делаете. Что Вы знаете об FFT или DFT, кроме самой этой аббревиатуры?
Добавлено after 5 minutes 33 seconds:
[uquote="linkov1959",url="/forum/viewtopic.php?p=3887732#p3887732"]Дальше уже моё баловство, можно и побузить:)[/uquote]
Я иногда собеседую кандидатов на работу. Ваши сентенции тут не дали бы Вам ни единого шанса, если бы Вы претендовали на обсуждаемую тут тематику. Серьезные проекты не пишут на Васиках. Из чего следует, что к "серьезному проекту", даже если он существует, лично Вы отношения не имеете.
- Реклама
Re: STM32, первые впечатления.
[uquote="NStorm",url="/forum/viewtopic.php?p=3887688#p3887688"]Вы часом аналоговый звук под сывороткой не знаете как сделать? А то тут коллега интересуется: https://radiokot.ru/forum/viewtopic.php?f=17&t=172440[/uquote]
То есть не мне одному это же самое показалось. На Easy Electronics тоже подобная тема прорезалась:
http://forum.easyelectronics.ru/viewtop ... 33&t=43138
Всё это напоминаетна сезонное обострения.
КРАМ, по-моему, имеет два высших образования: одно по электронике, второе по медицине. Или он монах, постигший высшую Суть, не знаю. Ничем другим я для себя не могу объяснить такое спокойное и методичное исследование патологического образа мышления, которым отличается ТС. Хотя... Может, просто тренируется на котиках. Завидую и преклоняюсь перед его терпением!
То есть не мне одному это же самое показалось. На Easy Electronics тоже подобная тема прорезалась:
http://forum.easyelectronics.ru/viewtop ... 33&t=43138
Всё это напоминаетна сезонное обострения.
КРАМ, по-моему, имеет два высших образования: одно по электронике, второе по медицине. Или он монах, постигший высшую Суть, не знаю. Ничем другим я для себя не могу объяснить такое спокойное и методичное исследование патологического образа мышления, которым отличается ТС. Хотя... Может, просто тренируется на котиках. Завидую и преклоняюсь перед его терпением!
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: STM32, первые впечатления.
Спасибо всем за участие. Проект на микроСи фильтр Баттерворта 725Гц, полоса 20Гц, выборка 20кГц.
Re: STM32, первые впечатления.
По прерыванию от таймера. В котором ждете пока АПЦ оцифрует, а это время. Настройте периферию так чтобы таймер запускал АПЦ и в прерывании от которого забираете данные из регистра ADC1->DR. А еще лучше чтобы данные из АЦП забирал модуль DMA. Это уменьшит необходимое число прерываний, а значит увеличит достижимую частоту оцифровки, т. к. на вход и выход из прерывания нужно по 12 тактов.linkov1959 писал(а):Посмотри код , его таймер калькулятор выдает.
Признавайтесь сколько вам заплатила микроэлектроника за рекламу их продукта?linkov1959 писал(а):MikroElektronika имеет лучшие компиляторы на Си, бейсик и паскаль!
Эти компиляторы далеко не лучшие если их сравнить например с GCC, они существенно проигрывают в размере прошивки и скорости работы.
Это не правильный подход к разработке. Обычно применяется большинством ардуинщиков и другими быдлокодерами. Как правило качество кода и надежность работы близки к нулю и вероятность ошибки в работе устройства велика.linkov1959 писал(а):Да пофиг на события и прерывания, лишь бы работало!
Если проект серьезный, нужно писать так чтобы гарантировано работало без сбоев в любых ситуациях включая нестандартные режимы работы.
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="Мурик",url="/forum/viewtopic.php?p=3887900#p3887900"]А еще лучше чтобы данные из АЦП забирал модуль DMA.[/uquote]
Я уже говорил. Не выйдет. Нечего копить. Каждый отсчет фильтр должен быть пересчитан.
Я уже говорил. Не выйдет. Нечего копить. Каждый отсчет фильтр должен быть пересчитан.
Re: STM32, первые впечатления.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?[/uquote]Это смотря что называть "DSP-инструкциями". 
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="jcxz",url="/forum/viewtopic.php?p=3887934#p3887934"]Это смотря что[/uquote]
Я не в курсе про "смотря что", но под DSP инструкциями называют MAC-инструкции и их разновидности. Это конвейерная операция вида Acc=Acc+X*Y с предвыборками операндов, поскольку шина одна, а операндов два, а исполняется инструкция за 1 машинный цикл при конвейере типовой для данной архитектуры длины. Таким образом, этот класс инструкций не может быть использован компилятором из-за своего ненативного механизма работы.
Я не в курсе про "смотря что", но под DSP инструкциями называют MAC-инструкции и их разновидности. Это конвейерная операция вида Acc=Acc+X*Y с предвыборками операндов, поскольку шина одна, а операндов два, а исполняется инструкция за 1 машинный цикл при конвейере типовой для данной архитектуры длины. Таким образом, этот класс инструкций не может быть использован компилятором из-за своего ненативного механизма работы.
Re: STM32, первые впечатления.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887941#p3887941"]Я не в курсе про "смотря что", но под DSP инструкциями называют MAC-инструкции и их разновидности. Это конвейерная операция вида Acc=Acc+X*Y с предвыборками операндов[/uquote]
IAR for ARM 7.80.4:
Как видно - IAR вполне себе успешно использует MAC-инструкции. И, если приглядеться, таковых в типичном листинге - множество.
Конечно "предыборок операндов" здесь нет, но это - ограничения ARM-архитектуры, в которой в принципе отсутствуют вычислительные команды обращающиеся к памяти.
Но если взять CPU с соответствующей архитектурой (полноценный DSP), так там современные компиляторы вполне себе успешно используют MAC-инструкции с выборками из памяти. Хотя впрочем тут ещё вопрос: Что в полноценном DSP называть "DSP-инструкцией", а что - нет?
Потому я и писал "Это смотря что называть "DSP-инструкциями"...
IAR for ARM 7.80.4:
Код: Выделить всё
In section .text, align 2, keep-with-next
u32 FlatToRealTime(u32 time)
{
return time + (u32)timezone * 3600;
_Z14FlatToRealTimem: (+1)
0x.... 0x.... LDR.W R1,??DataTable513_1
0x7809 LDRB R1,[R1, #+0]
0xF44F 0x6261 MOV R2,#+3600
0xFB12 0x0001 SMLABB R0,R2,R1,R0
0x4770 BX LR ;; return
}
In section .text, align 2, keep-with-next
u32 RealToFlatTime(u32 time)
{
return time - (u32)timezone * 3600;
_Z14RealToFlatTimem: (+1)
0x.... 0x.... LDR.W R1,??DataTable513_1
0x7809 LDRB R1,[R1, #+0]
0xF44F 0x6261 MOV R2,#+3600
0xFB02 0x0011 MLS R0,R2,R1,R0
0x4770 BX LR ;; return
}Конечно "предыборок операндов" здесь нет, но это - ограничения ARM-архитектуры, в которой в принципе отсутствуют вычислительные команды обращающиеся к памяти.
Но если взять CPU с соответствующей архитектурой (полноценный DSP), так там современные компиляторы вполне себе успешно используют MAC-инструкции с выборками из памяти. Хотя впрочем тут ещё вопрос: Что в полноценном DSP называть "DSP-инструкцией", а что - нет?
Потому я и писал "Это смотря что называть "DSP-инструкциями"...
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: STM32, первые впечатления.
Мурик, Спасибо за конструктив. Самому приходила идея одновременной работы АЦП и вычислений, но когда обнаружил возможность значительно сократить выборку АЦП, это стало не актуально. Вычисления float тормозят на 90%. Сейчас думаю, как обойти, завтра буду пробовать на целых.
Добавлено after 14 minutes 58 seconds:
MikroElektronika новый проект выдала, NECTO.
Что за зверь? Пригодится новичкам?
Добавлено after 14 minutes 58 seconds:
MikroElektronika новый проект выдала, NECTO.
Что за зверь? Пригодится новичкам?
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="jcxz",url="/forum/viewtopic.php?p=3887971#p3887971"]Как видно - IAR вполне себе успешно использует MAC-инструкции.[/uquote]
Даладна!!! И в каком же месте там Си-конструкция скомпилирована с MAC-командами?
Это как раз то, о чем я и написал ранее:
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?
Ну или использовать библиотеку, которая так же написана на АСМе.[/uquote]
[uquote="jcxz",url="/forum/viewtopic.php?p=3887971#p3887971"]Но если взять CPU с соответствующей архитектурой (полноценный DSP), так там современные компиляторы вполне себе успешно используют MAC-инструкции с выборками из памяти....[/uquote]
Нет. Не используют. Там точно так же БИБЛИОТЕЧНЫЕ функции написаны на АСМе.
Заставить компилятор преобразовать некую строку на Си:
в соответствующую ей MAC-инструкцию невозможно.
[uquote="jcxz",url="/forum/viewtopic.php?p=3887971#p3887971"]Что в полноценном DSP называть "DSP-инструкцией", а что - нет?...[/uquote]
А чем "полноценный" DSP отличается от "неполноценного"? Да по сути ничем.Ну если не считать в особо мощных процессорах возможности параллельного выполнения единой группы инструкций над массивом операндов (комплексные многомерные вычисления)...
Таким образом, те же самые MAC инструкции в ЛЮБОМ DSP процессоре и называются DSP, в отличии от обычной арифметики общего применения.
[uquote="linkov1959",url="/forum/viewtopic.php?p=3887977#p3887977"]Самому приходила идея одновременной работы АЦП и вычислений[/uquote]
Ну если не ждать в пустом цикле результата преобразования и лишь потом считать фильтр, то вычисления ПО ЛЮБОМУ будут происходить одновременно с преобразованием с той лишь разницей, что при запуске АЦП в прерывании от таймера ко времени вычислений добавится время обработки этого прерывания. Это максимум 20 машинных циклов. Запуск преобразования по событиям от таймера ДЛЯ ВАШЕГО СЛУЧАЯ не столько увеличивает скорость, сколько упрощает код.
Даладна!!! И в каком же месте там Си-конструкция скомпилирована с MAC-командами?
Это как раз то, о чем я и написал ранее:
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?
Ну или использовать библиотеку, которая так же написана на АСМе.[/uquote]
[uquote="jcxz",url="/forum/viewtopic.php?p=3887971#p3887971"]Но если взять CPU с соответствующей архитектурой (полноценный DSP), так там современные компиляторы вполне себе успешно используют MAC-инструкции с выборками из памяти....[/uquote]
Нет. Не используют. Там точно так же БИБЛИОТЕЧНЫЕ функции написаны на АСМе.
Заставить компилятор преобразовать некую строку на Си:
Код: Выделить всё
Acc += A[i]*B[i++];[uquote="jcxz",url="/forum/viewtopic.php?p=3887971#p3887971"]Что в полноценном DSP называть "DSP-инструкцией", а что - нет?...[/uquote]
А чем "полноценный" DSP отличается от "неполноценного"? Да по сути ничем.Ну если не считать в особо мощных процессорах возможности параллельного выполнения единой группы инструкций над массивом операндов (комплексные многомерные вычисления)...
Таким образом, те же самые MAC инструкции в ЛЮБОМ DSP процессоре и называются DSP, в отличии от обычной арифметики общего применения.
[uquote="linkov1959",url="/forum/viewtopic.php?p=3887977#p3887977"]Самому приходила идея одновременной работы АЦП и вычислений[/uquote]
Ну если не ждать в пустом цикле результата преобразования и лишь потом считать фильтр, то вычисления ПО ЛЮБОМУ будут происходить одновременно с преобразованием с той лишь разницей, что при запуске АЦП в прерывании от таймера ко времени вычислений добавится время обработки этого прерывания. Это максимум 20 машинных циклов. Запуск преобразования по событиям от таймера ДЛЯ ВАШЕГО СЛУЧАЯ не столько увеличивает скорость, сколько упрощает код.
Re: STM32, первые впечатления.
12 тактов вход и 12 выход. Сколько получается?КРАМ писал(а):ко времени вычислений добавится время обработки этого прерывания. Это максимум 20 машинных циклов.
Это только сохранение и восстановление регистров выполняемое аппаратно.
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="Мурик",url="/forum/viewtopic.php?p=3888020#p3888020"]Это только[/uquote]
Ну значит 40 или около того. При тактовой под 100 МГц (цикл 10 нс) и имеющихся у ТС вводных это совершенно не принципиально.
Но даже в таком случае лучше делать красиво. То есть подключить таймер к АЦП.
Но ДМА по любому тут не канает. Если бы хотя бы фильтр был двухкаскадный с децимацией, то тогда ДМА бы пригодился.
Ну значит 40 или около того. При тактовой под 100 МГц (цикл 10 нс) и имеющихся у ТС вводных это совершенно не принципиально.
Но даже в таком случае лучше делать красиво. То есть подключить таймер к АЦП.
Но ДМА по любому тут не канает. Если бы хотя бы фильтр был двухкаскадный с децимацией, то тогда ДМА бы пригодился.
Re: STM32, первые впечатления.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887992#p3887992"]Даладна!!! И в каком же месте там Си-конструкция скомпилирована с MAC-командами?[/uquote]Команды SMLABB, MLS в листинге видите? Это они и есть - MAC. Открывайте мануал по системе команд Cortex-M и читайте описание.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Ну или использовать библиотеку, которая так же написана на АСМе.[/uquote]Где в приведённом листинге вы узрели некую "библиотеку"???
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Нет. Не используют. Там точно так же БИБЛИОТЕЧНЫЕ функции написаны на АСМе.[/uquote]Т.е. как видно - Вы никогда не имели дел с DSP. Зачем тогда говорить о том, чего не знаете?
Тот же CCS уже лет 10 точно умеет генерить код довольно плотно использующий ядро. Причём с распараллеливанием инструкций. А MAC-инструкции он вообще имхо всегда умел генерить.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Заставить компилятор преобразовать некую строку на Си:
в соответствующую ей MAC-инструкцию невозможно.[/uquote] А мужики-то авторы компиляторов не знали что это невозможно и сделали.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]А чем "полноценный" DSP отличается от "неполноценного"? Да по сути ничем.[/uquote]Самое главное отличие полноценного DSP от DSP-набора инстркций ARM: Возможность выполнения операций доступа к памяти одновременно с операциями на АЛУ. Это не считая: распараллеливания инструкций, аппартных циклов, циклической адресации, "насыщающей" арифметики и т.п.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Ну или использовать библиотеку, которая так же написана на АСМе.[/uquote]Где в приведённом листинге вы узрели некую "библиотеку"???
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Нет. Не используют. Там точно так же БИБЛИОТЕЧНЫЕ функции написаны на АСМе.[/uquote]Т.е. как видно - Вы никогда не имели дел с DSP. Зачем тогда говорить о том, чего не знаете?
Тот же CCS уже лет 10 точно умеет генерить код довольно плотно использующий ядро. Причём с распараллеливанием инструкций. А MAC-инструкции он вообще имхо всегда умел генерить.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]Заставить компилятор преобразовать некую строку на Си:
Код: Выделить всё
Acc += A[i]*B[i++];[uquote="КРАМ",url="/forum/viewtopic.php?p=3887767#p3887767"]А чем "полноценный" DSP отличается от "неполноценного"? Да по сути ничем.[/uquote]Самое главное отличие полноценного DSP от DSP-набора инстркций ARM: Возможность выполнения операций доступа к памяти одновременно с операциями на АЛУ. Это не считая: распараллеливания инструкций, аппартных циклов, циклической адресации, "насыщающей" арифметики и т.п.
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="jcxz",url="/forum/viewtopic.php?p=3888028#p3888028"]Самое главное отличие полноценного DSP[/uquote]
Причем тут распараллеливание?
Я привел конкретный пример. Каким образом компилятор ОБЫЧНУЮ арифметику интерпретирует в конвейерные РЕГИСТРОВЫЕ команды?
Чтобы было понятно.
Имеем стандартную MAC-команду, которая суммирует результат умножения двух 32 разрядных РОНов с содержимым аккумулятора, который по сути так же является РОНом, но с разрядностью, например 80. При этом еще и имеется специальным образом настраиваемая сатурация оного аккумулятора.
Одновременно с этим происходит подгрузка РОНов-операндов по РОНам-указателям из ОЗУ. А так же инкремент указателей.
Это МАС команда, а не простое умножение с накоплением.
Какое все это имеет отношение к Си?
Покажите Си-строку, которая будет скомпилирована в MAC.
ЗЫ. Если уменьшить разрядность операндов до 16, а аккумулятора до 40 - это будет DSP ядро dsPIC33. Скалярный FIR на этом МК будет из себя представлять четыре строки на АСМе:
1. Сброс аккумулятора с предзагрузкой
2. Команда repeat
3. MAC-инструкция
4. нормализация результата и выгрузка
Все. Никаких пересылок и инкрементов. Все внутри одной команды, которая повторяется число тапов раз.
Причем тут распараллеливание?
Я привел конкретный пример. Каким образом компилятор ОБЫЧНУЮ арифметику интерпретирует в конвейерные РЕГИСТРОВЫЕ команды?
Чтобы было понятно.
Имеем стандартную MAC-команду, которая суммирует результат умножения двух 32 разрядных РОНов с содержимым аккумулятора, который по сути так же является РОНом, но с разрядностью, например 80. При этом еще и имеется специальным образом настраиваемая сатурация оного аккумулятора.
Одновременно с этим происходит подгрузка РОНов-операндов по РОНам-указателям из ОЗУ. А так же инкремент указателей.
Это МАС команда, а не простое умножение с накоплением.
Какое все это имеет отношение к Си?
Покажите Си-строку, которая будет скомпилирована в MAC.
ЗЫ. Если уменьшить разрядность операндов до 16, а аккумулятора до 40 - это будет DSP ядро dsPIC33. Скалярный FIR на этом МК будет из себя представлять четыре строки на АСМе:
1. Сброс аккумулятора с предзагрузкой
2. Команда repeat
3. MAC-инструкция
4. нормализация результата и выгрузка
Все. Никаких пересылок и инкрементов. Все внутри одной команды, которая повторяется число тапов раз.
Re: STM32, первые впечатления.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3888037#p3888037"]Я привел конкретный пример. Каким образом компилятор ОБЫЧНУЮ арифметику интерпретирует в конвейерные РЕГИСТРОВЫЕ команды?
Чтобы было понятно.[/uquote]Я выше привёл пример листинга где есть две MAC-команды. Вы его не поняли??
[uquote="КРАМ",url="/forum/viewtopic.php?p=3888037#p3888037"]Это МАС команда, а не простое умножение с накоплением.[/uquote]MAC - это и есть умножение с накоплением.
Откройте хотя-бы википедию: https://en.wikipedia.org/wiki/Multiply– ... _operation
Или любой другой учебник.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3888037#p3888037"]Одновременно с этим происходит подгрузка РОНов-операндов по РОНам-указателям из ОЗУ.[/uquote]Приведите пример хотя бы одной такой команды в системе команд ARM! Пример в студию!!!
Нет таких команд в ARM!
И как позвольте спросить компилятор сможет сгенерить несуществующую команду???
PS: В ARM есть MAC-команды. Но нет команд выполняющих одновременно АЛУ-операцию с доступом к памяти. Это - ограничение архитектуры ядра. Компилятор тут не при чём. Я уже дважды писал об этом.
Добавлено after 2 minutes 19 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=3888037#p3888037"]Покажите Си-строку, которая будет скомпилирована в MAC.[/uquote]Я выше две таких строки приводил. Вы не умеете читать листинги???
Чтобы было понятно.[/uquote]Я выше привёл пример листинга где есть две MAC-команды. Вы его не поняли??
[uquote="КРАМ",url="/forum/viewtopic.php?p=3888037#p3888037"]Это МАС команда, а не простое умножение с накоплением.[/uquote]MAC - это и есть умножение с накоплением.
Откройте хотя-бы википедию: https://en.wikipedia.org/wiki/Multiply– ... _operation
Или любой другой учебник.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3888037#p3888037"]Одновременно с этим происходит подгрузка РОНов-операндов по РОНам-указателям из ОЗУ.[/uquote]Приведите пример хотя бы одной такой команды в системе команд ARM! Пример в студию!!!
Нет таких команд в ARM!
И как позвольте спросить компилятор сможет сгенерить несуществующую команду???
PS: В ARM есть MAC-команды. Но нет команд выполняющих одновременно АЛУ-операцию с доступом к памяти. Это - ограничение архитектуры ядра. Компилятор тут не при чём. Я уже дважды писал об этом.
Добавлено after 2 minutes 19 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=3888037#p3888037"]Покажите Си-строку, которая будет скомпилирована в MAC.[/uquote]Я выше две таких строки приводил. Вы не умеете читать листинги???
- КРАМ
- Друг Кота
- Сообщения: 25291
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32, первые впечатления.
[uquote="jcxz",url="/forum/viewtopic.php?p=3888048#p3888048"]В ARM есть MAC-команды. Но нет команд выполняющих одновременно АЛУ-операцию с доступом к памяти. Я уже дважды писал об этом.[/uquote]
Это не DSP МАС. Я не знаком с ASMом ARM-в, но в курсе, что есть недоMAC инструкции, которые, как я теперь вижу, даже аббревиатуру MAC не имеют. Таким образом, построить на их основе фильтр или бабочку FFT, мягко говоря, невозможно.
А речь вообще то была об этом.
Но Вы намекнули, я так понимаю, на архитектуру DSP Аналог девайса и ТИ. Расскажите как там Си интерпретируется в DSP MAC?
ЗЫ. Как теперь выяснилось, dsPIC33 - это trueDSP...

Добавлено after 5 minutes 49 seconds:
[uquote="jcxz",url="/forum/viewtopic.php?p=3888048#p3888048"]Нет таких команд в ARM!
И как позвольте спросить компилятор сможет сгенерить несуществующую команду???[/uquote]
Вообще то мой исходный комментарий не содержал упоминания об ARM, а напротив говорил о DSP процессорах.
Это не DSP МАС. Я не знаком с ASMом ARM-в, но в курсе, что есть недоMAC инструкции, которые, как я теперь вижу, даже аббревиатуру MAC не имеют. Таким образом, построить на их основе фильтр или бабочку FFT, мягко говоря, невозможно.
А речь вообще то была об этом.
Но Вы намекнули, я так понимаю, на архитектуру DSP Аналог девайса и ТИ. Расскажите как там Си интерпретируется в DSP MAC?
ЗЫ. Как теперь выяснилось, dsPIC33 - это trueDSP...
Добавлено after 5 minutes 49 seconds:
[uquote="jcxz",url="/forum/viewtopic.php?p=3888048#p3888048"]Нет таких команд в ARM!
И как позвольте спросить компилятор сможет сгенерить несуществующую команду???[/uquote]
Вообще то мой исходный комментарий не содержал упоминания об ARM, а напротив говорил о DSP процессорах.


