Кстати, при всех "щенячьих восторгах" - а семейство мне несомненно нравится, - должен признать, что во многих случаях я с удивлением обнаружил, что... как бы это сказать... информационная среда создает вокруг STM32 завышенные ожидания. Так, я бы не сказал, что периферия stm32 так уж сильно отлична от периферии atxmega (на самом деле, вообще ощущение, что atxmega создавался для конкурирования с stm32. Местами отличия только в названии и разрядности регистров ). При чем, есть параметры, иногда важные, в которых atxmega впереди ( входной усилитель АЦП, настраиваемый в пределах полутора октав RC генератор, независимая схема тактировки usb, сеть событий). Из явных плюсов stm32 я пока нашел только более гибкую возможность настройки портов ввода - вывода. Наверное, по мере знакомства, будут и другие плюсы. Но чего-то принципиально нового я не жду.
Поэтому пока в качестве главного преимущества периферии stm 32 я бы назвал... знаете, прям даже боязно писать, типа, не сглазить бы... я бы назвал ее адекватную работу. Я пока поигрался еще не со всей периферией. Но с какой поигрался, еще ни разу не попал на ситуацию, когда ее поведение не соответствует даташиту.
У atxmega же, достаточно сказать, списки ошибок порою на несколько листов. При чем ошибок таких, что ставят под сомнение саму возможность использования данного узла на устройстве. А если учесть, что ошибки могут меняться от партии к партии, то - вообще беда...
Добавлено after 12 minutes 46 seconds:Все! Я наконец разобрался и пишу.
Кстати, я не соглашусь, что ассемблер для STM32 сложный. Как обычно, много трудностей с освоением синтаксиса. ые сложности - писать совсем не сложно. .
Ха-ра-шо, если хотите настоящего кайфа, тогда переходите сразу на Cortex M7 - полторы тыщщи инструкций, если считать все их варианты - это даст вам ни с чем не сравнимый кайф. Лишь бы голова не лопнула.
Да, а вы как пишите? Освоили уже условное исполнение и переходы, аль так, r0 + r1 - r4 только? Ну а как насчет вариативного второго операнда? Второй операнд может быть инструкцией сам по себе - ну как? Пост-инкремент операнда, сдвиг, и т.д. Флаги условий, суффиксы? Их 15 штук. Почти каждая инструкция может иметь до 15 вариантов.
Ну а пробовали ли строить какие-нибудь алгоритмы, циклы с условиями? таблички?
Cortex M0. Онли Cortex M0!
Но что-то мне подсказывает, что и дальнейшее знакомство ужаса не вызовет...
И да. Полагаю, на старших моделях выигрыш от ассемблера будет несколько меньше. Но на Cortex M0, в условиях острой нехватки регистров ( по сути, всего 8 независимых регистров, часть которых активно используется для служебных нужд, компенсируя урезанность системы команд) - программы на ассемблере способны дать очень сильный выигрыш по сравнению с С\С++. Например, для пользователей бесплатного Keil с его ограничением на 32 кБ. это наверняка может оказаться полезным.
Я сейчас делаю программку на С. Она будет не большой, поэтому по завершению тренировки ради и вообще планирую перевести ее на ассемблер. Как раз посмотрим, что это даст.
А. И еще знаете, что забавно... Я тут как-то, по-моему в другом форуме, пустил тему про то, что не плохо бы было, окажись для STM32 много хороших библиотек. И знаете? На меня кинулись с таким же рвением, как и при обсуждении ассемблера... Интересная такая особенность... То есть под stm32 надо писать только так. На С, обложившись документацией. И ни как иначе... Прям братство камня какое-то...