Ассемблер KEIL

Кто любит RISC в жизни, заходим, не стесняемся.
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

>> Попробуйте заставить все это сделать компилятор так

Все. Теперь понял, о чем вы.

>> Проблема многоядерного АЛУ (SIMD) состоит в том, что сама по себе математика может быть распараллелена на любое количество ядер, однако операнды нужно откуда то брать и результат куда то сохранять.

Да. Есть такая тема. И почему-то она не очень продумана в SIMD. Тут не поспоришь. Какая-нить предвыборка следующего банка была б очень в кассу.
Но тем не менее даже при своих ограничениях результат перевода на SIMD плюс качественной ассемблерной оптимизации получился очень существенным. К чему, собственно, и рассказ.

Добавлено after 11 minutes 52 seconds:
[uquote="Sergi",url="/forum/viewtopic.php?p=3792157#p3792157"]В своей второй конструкции осциллографа тоже использовал буферную память и тоже с М0. Тема есть на форуме. Прибор успешно работает. Быстрая запись медленное чтение во внутреннюю RAM с обработкой. Тактирование от MCO или TIM1. Захват до удвоенной частоты тактирования ограничен скоростью работы памяти.[/uquote]

Мне хочется попробовать упростить конструкцию, и уйти от использования памяти. В моей поделке стробоскоп, поэтому я готов, скорее, подвинуться по тактовой частоте (хотя и обидно не использовать АЦП по максимуму). Но ограничить цифровую часть двумя узлами: МК и АЦП.

Правда, я пока не очень понимаю, как сделать тактировку (для нормальной работы стробоскопа нужны две частоты. Одна рабочая, вторая чуть меньше. Сейчас это делают два кварца с близкими частотами. Но кварцы высокочастотные, напрямую от них МК не затактируешь. Если делить потом умножить - PLL по определению сдвинет фазу. Не катит. Вобщем, пока проблема... Не ставить же специальный контроллер исключительно в качестве PLL генератора для второй частоты... Вобщем, пока проблема.
Один, кстати, из все уменьшающихся по мере знакомства с STM плюсов atxmega - у нее есть возможность плавно менять частоту RC генератора (типа калибровка) в пределах полутора октав. Это было удобно.
Реклама
Кислородный
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 13, 2020 07:41:02

Re: Ассемблер KEIL

Сообщение Кислородный »

Калибровка RC осциллятора (HSI) в STM32 есть, только не на полторы октавы (это слишком много, больше чем в два раза), а процентов на 6 примерно.

Осциллограф на F0 - это уж слишком оптимистично. Вообще, нормальный осциллограф получается на ПЛИС. ПЛИС умеет напрямую работать с DDR2(3) и с высокой скоростью сохранять в нее захват с АЦП. Подобные скорости недостижимы для микроконтроллеров, на какие бы ухищрения не шли, сколько бы не оптимизировали код.
еавс!
Реклама
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

>> Калибровка RC осциллятора (HSI) в STM32 есть, только не на полторы октавы (это слишком много, больше чем в два раза), а процентов на 6 примерно.

да это, к сожалению, ни о чем...

>> Осциллограф на F0 - это уж слишком оптимистично.

Не, не... F0 точно не подойдет

>> Вообще, нормальный осциллограф получается на ПЛИС.

Да. Но ПЛИС дорого. А у меня еще нет уверенности, что не проходит на STM. Мне надо-то хотя бы мегагерц 50, уже решит проблему. А это по слухам достижимо для F3 или F4.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Ассемблер KEIL

Сообщение Reflector »

[uquote="Кислородный",url="/forum/viewtopic.php?p=3792376#p3792376"]ПЛИС умеет напрямую работать с DDR2(3) и с высокой скоростью сохранять в нее захват с АЦП. Подобные скорости недостижимы для микроконтроллеров, на какие бы ухищрения не шли, сколько бы не оптимизировали код.[/uquote]
Из F4 можно выжать под 100 MSPS для 16-ти бит и еще больше для 8-ми, естественно сохраняя во встроенную RAM, а на H750 должно быть 160 MSPS даже без разгона.
Реклама
Эиком - электронные компоненты и радиодетали
Sergi
Мучитель микросхем
Сообщения: 412
Зарегистрирован: Ср янв 04, 2012 11:57:40
Откуда: Алчевск

Re: Ассемблер KEIL

Сообщение Sergi »

Я сделал на F030 из-за дешевизны и простоты. Вся цифровая часть по сегодняшним ценам 500р. может делать монотонный захват 2х каналов по 8бит длиной до 256к на скорости 100msps и более. Зависит от минимальной ширины сигнала /WR микросхемы SRAM.
Да,на плис лучше, но надо уметь ее готовить. А для DDR еще и буфер внутри организовывать. Я такое не умею.
Реклама
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

[uquote="Reflector",url="/forum/viewtopic.php?p=3792401#p3792401"][uquote="Кислородный",url="/forum/viewtopic.php?p=3792376#p3792376"]ПЛИС умеет напрямую работать с DDR2(3) и с высокой скоростью сохранять в нее захват с АЦП. Подобные скорости недостижимы для микроконтроллеров, на какие бы ухищрения не шли, сколько бы не оптимизировали код.[/uquote]
Из F4 можно выжать под 100 MSPS для 16-ти бит и еще больше для 8-ми, естественно сохраняя во встроенную RAM, а на H750 должно быть 160 MSPS даже без разгона.[/uquote]

>> Из F4 можно выжать под 100 MSPS для 16-ти бит и еще больше для 8-ми,

А как? Пока по данным разведки он не умеет читать порты быстрее, чем за 4 такта
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Ассемблер KEIL

Сообщение Reflector »

[uquote="protoder",url="/forum/viewtopic.php?p=3792417#p3792417"]А как? Пока по данным разведки он не умеет читать порты быстрее, чем за 4 такта[/uquote]
F407/405 гонятся до 260 и читают с порта действительно за 4 такта, но F429 у меня гнался до 300 и DMA работает уже за 3 такта, как и у F7. Если хватает 8 бит, то можно использовать 2-х тактовый DCMI.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Ассемблер KEIL

Сообщение Мурик »

protoder писал(а):Одна рабочая, вторая чуть меньше. Сейчас это делают два кварца с близкими частотами. Но кварцы высокочастотные, напрямую от них МК не затактируешь. Если делить потом умножить - PLL по определению сдвинет фазу. Не катит. Вобщем, пока проблема... Не ставить же специальный контроллер исключительно в качестве PLL генератора для второй частоты...
Если использовать PLL что в МК и вывести частоту с него через MCO? Не подойдет?
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

Да не. Говорю ж - мне вторая частота нужна, привязанная к основной, но чуть ниже
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

Все! Я знаю, зачем изучать ассемблер. Я наконец разобрался и пишу. Парни! Я работал на 8-ми разрядных контроллерах. Этот - 32-х. Работая на С, вы не почувствуете этого кайфа! :)

Кстати, я не соглашусь, что ассемблер для STM32 сложный. Как обычно, много трудностей с освоением синтаксиса. Мало примеров, много подводных камней. Короче, начинать очень не легко.
Но, после того, как преодолел первые сложности - писать совсем не сложно. Ассемблер как ассемблер. Правда, пока знаком только с Cortext M0. Посмотрим, что будет дальше.
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: Ассемблер KEIL

Сообщение SII »

[uquote="protoder",url="/forum/viewtopic.php?p=3794212#p3794212"]ассемблер для STM32[/uquote]

Позанудствую: не для STM32, а для архитектуры ARM. То же относится и к Cortex-M0 (название одного из ядер этой архитектуры версии ARMv6-M). А занудствую из-за того, что при переходе на любой другой ARM любой другой фирмы ассемблер не поменяется -- он относится к архитектуре, а не к конкретной реализации.

А насчёт сложности... Если человек действительно разобрался с ассемблером для какой-либо одной архитектуры, разобраться с любыми другими будет многократно проще. Несмотря на все отличия, общие принципы идентичны. Ну ладно, есть особо извращённые случаи типа IA-64 aka Itanium или там процессоров цифровой обработки сигналов, но их очень немного по сравнению с, условно говоря, "нормальными" архитектурами.
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

[uquote="SII",url="/forum/viewtopic.php?p=3794260#p3794260"][uquote="protoder",url="/forum/viewtopic.php?p=3794212#p3794212"]ассемблер для STM32[/uquote]

Позанудствую: не для STM32, а для архитектуры ARM. То же относится и к Cortex-M0 (название одного из ядер этой архитектуры версии ARMv6-M). А занудствую из-за того, что при переходе на любой другой ARM любой другой фирмы ассемблер не поменяется -- он относится к архитектуре, а не к конкретной реализации.[/uquote]

Ну... Да. В принципе, правильно занудствуете. Эту фишку я тоже оценил. Что в комплекте к STM32 прилагается еще очень приличный список контроллеров других производителей. Такой маленький бесплатный бонус :)
Не. Нравятся мне эти железяки. Все больше и больше. Разбираться с ними однозначно стоит.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25219
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер KEIL

Сообщение КРАМ »

[uquote="SII",url="/forum/viewtopic.php?p=3794260#p3794260"]или там процессоров цифровой обработки сигналов[/uquote]
Кстати, у AD интересный ассемблер...
Сумма регистров так и записывается как R1=R2+R3 :)
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Ассемблер KEIL

Сообщение dosikus »

[uquote="protoder",url="/forum/viewtopic.php?p=3794212#p3794212"]Парни! Я работал на 8-ми разрядных контроллерах. Этот - 32-х. Работая на С, вы не почувствуете этого кайфа! :)[/uquote]

Отличие stm32, если вы в пылу щенячьей радости не заметили , в мощной периферии.
И вот тут каГБы абсолютно нет никакого преимущества асмЪ...
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

[uquote="dosikus",url="/forum/viewtopic.php?p=3794398#p3794398"][uquote="protoder",url="/forum/viewtopic.php?p=3794212#p3794212"]Парни! Я работал на 8-ми разрядных контроллерах. Этот - 32-х. Работая на С, вы не почувствуете этого кайфа! :)[/uquote]

Отличие stm32, если вы в пылу щенячьей радости не заметили , в мощной периферии.
И вот тут каГБы абсолютно нет никакого преимущества асмЪ...[/uquote]

Э... Вы вообще о чем? Я вроде давно уже не про преимущества асм. Или так не терпелось написать про "щенячью радость"? :)

Добавлено after 1 minute 45 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=3794359#p3794359"][uquote="SII",url="/forum/viewtopic.php?p=3794260#p3794260"]или там процессоров цифровой обработки сигналов[/uquote]
Кстати, у AD интересный ассемблер...
Сумма регистров так и записывается как R1=R2+R3 :)[/uquote]

AD? Analog Devices? Какие-нибудь сигнальные процессоры? Или они тоже свои микроконтроллеры делают? Я вроде не слышал.
Кислородный
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 13, 2020 07:41:02

Re: Ассемблер KEIL

Сообщение Кислородный »

[uquote="protoder",url="/forum/viewtopic.php?p=3794212#p3794212"]Все! Я наконец разобрался и пишу.
Кстати, я не соглашусь, что ассемблер для STM32 сложный. Как обычно, много трудностей с освоением синтаксиса. ые сложности - писать совсем не сложно. .[/uquote]
Ха-ра-шо, если хотите настоящего кайфа, тогда переходите сразу на Cortex M7 - полторы тыщщи инструкций, если считать все их варианты - это даст вам ни с чем не сравнимый кайф. Лишь бы голова не лопнула.
Да, а вы как пишите? Освоили уже условное исполнение и переходы, аль так, r0 + r1 - r4 только? Ну а как насчет вариативного второго операнда? Второй операнд может быть инструкцией сам по себе - ну как? Пост-инкремент операнда, сдвиг, и т.д. Флаги условий, суффиксы? Их 15 штук. Почти каждая инструкция может иметь до 15 вариантов.
Ну а пробовали ли строить какие-нибудь алгоритмы, циклы с условиями? таблички?
еавс!
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

Кстати, при всех "щенячьих восторгах" - а семейство мне несомненно нравится, - должен признать, что во многих случаях я с удивлением обнаружил, что... как бы это сказать... информационная среда создает вокруг STM32 завышенные ожидания. Так, я бы не сказал, что периферия stm32 так уж сильно отлична от периферии atxmega (на самом деле, вообще ощущение, что atxmega создавался для конкурирования с stm32. Местами отличия только в названии и разрядности регистров ). При чем, есть параметры, иногда важные, в которых atxmega впереди ( входной усилитель АЦП, настраиваемый в пределах полутора октав RC генератор, независимая схема тактировки usb, сеть событий). Из явных плюсов stm32 я пока нашел только более гибкую возможность настройки портов ввода - вывода. Наверное, по мере знакомства, будут и другие плюсы. Но чего-то принципиально нового я не жду.
Поэтому пока в качестве главного преимущества периферии stm 32 я бы назвал... знаете, прям даже боязно писать, типа, не сглазить бы... я бы назвал ее адекватную работу. Я пока поигрался еще не со всей периферией. Но с какой поигрался, еще ни разу не попал на ситуацию, когда ее поведение не соответствует даташиту.
У atxmega же, достаточно сказать, списки ошибок порою на несколько листов. При чем ошибок таких, что ставят под сомнение саму возможность использования данного узла на устройстве. А если учесть, что ошибки могут меняться от партии к партии, то - вообще беда...

Добавлено after 12 minutes 46 seconds:
[uquote="Кислородный",url="/forum/viewtopic.php?p=3794504#p3794504"][uquote="protoder",url="/forum/viewtopic.php?p=3794212#p3794212"]Все! Я наконец разобрался и пишу.
Кстати, я не соглашусь, что ассемблер для STM32 сложный. Как обычно, много трудностей с освоением синтаксиса. ые сложности - писать совсем не сложно. .[/uquote]
Ха-ра-шо, если хотите настоящего кайфа, тогда переходите сразу на Cortex M7 - полторы тыщщи инструкций, если считать все их варианты - это даст вам ни с чем не сравнимый кайф. Лишь бы голова не лопнула.
Да, а вы как пишите? Освоили уже условное исполнение и переходы, аль так, r0 + r1 - r4 только? Ну а как насчет вариативного второго операнда? Второй операнд может быть инструкцией сам по себе - ну как? Пост-инкремент операнда, сдвиг, и т.д. Флаги условий, суффиксы? Их 15 штук. Почти каждая инструкция может иметь до 15 вариантов.
Ну а пробовали ли строить какие-нибудь алгоритмы, циклы с условиями? таблички?[/uquote]

Cortex M0. Онли Cortex M0!
Но что-то мне подсказывает, что и дальнейшее знакомство ужаса не вызовет...

И да. Полагаю, на старших моделях выигрыш от ассемблера будет несколько меньше. Но на Cortex M0, в условиях острой нехватки регистров ( по сути, всего 8 независимых регистров, часть которых активно используется для служебных нужд, компенсируя урезанность системы команд) - программы на ассемблере способны дать очень сильный выигрыш по сравнению с С\С++. Например, для пользователей бесплатного Keil с его ограничением на 32 кБ. это наверняка может оказаться полезным.
Я сейчас делаю программку на С. Она будет не большой, поэтому по завершению тренировки ради и вообще планирую перевести ее на ассемблер. Как раз посмотрим, что это даст.

А. И еще знаете, что забавно... Я тут как-то, по-моему в другом форуме, пустил тему про то, что не плохо бы было, окажись для STM32 много хороших библиотек. И знаете? На меня кинулись с таким же рвением, как и при обсуждении ассемблера... Интересная такая особенность... То есть под stm32 надо писать только так. На С, обложившись документацией. И ни как иначе... Прям братство камня какое-то... :)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25219
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер KEIL

Сообщение КРАМ »

[uquote="protoder",url="/forum/viewtopic.php?p=3794501#p3794501"]AD? Analog Devices? Какие-нибудь сигнальные процессоры? Или они тоже свои микроконтроллеры делают? Я вроде не слышал.[/uquote]
Процессоры, конечно.
Контроллеры ADuC сделаны на ядре ARM-Cortex.
Контроллер DSP будет всегда иметь скоростное ограничение связанное с программным флешем.
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: Ассемблер KEIL

Сообщение protoder »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3794523#p3794523"][uquote="protoder",url="/forum/viewtopic.php?p=3794501#p3794501"]AD? Analog Devices? Какие-нибудь сигнальные процессоры? Или они тоже свои микроконтроллеры делают? Я вроде не слышал.[/uquote]
Процессоры, конечно.
Контроллеры ADuC сделаны на ядре ARM-Cortex.
Контроллер DSP будет всегда иметь скоростное ограничение связанное с программным флешем.[/uquote]

ну, мне до них еще далеко. Ясно уже, что я застрял с STM32.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25219
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер KEIL

Сообщение КРАМ »

[uquote="Кислородный",url="/forum/viewtopic.php?p=3794504#p3794504"]Cortex M7 - полторы тыщщи инструкций[/uquote]
Это не так уж и много, если помнить о том, что они делятся на группы по функционалу, а суффиксы ортогональны самим инструкциям. То есть все это создает реальные возможности решать задачу освоения по частям.
Ответить

Вернуться в «ARM»