К сожалению, аврщики этого не понимают. С другой стороны, когда аврщик начинает свой быдлокод пихать в ARM, это жесть получается! Чего только эти delay() стоят! Не понимают люди, что можно сделать нормальную железяку на конечных автоматах, у которой все будет частично аппаратно, частично на прерываниях работать, а в main() только флаги проверяться и обрабатываться...
По ценам на том же DigiKey сопоставимые по ресурсам ATTiny стоят дороже. Но тут смотря что считать ресурсом, в ARM-ах при сравнимом объеме флеша, объем RAM в 4-8 раз больше.
Скорее всего можно что-нибудь дешевле найти от NXP, они ими почти в убыток торгуют для захвата рынка.
На ARM-ы цены задирают в мелких партиях, так как «новинка».
В больших партиях STM32F030 стоит 30 центов. Внаибее я брал (еще до кризиса) десяток за 9 баксов. Сейчас смотрю, 7 баксов за десяток на ибее.
Но таки M3/M4 приятней. Те же STM32F103 и то круче (хотя бы, уже USB есть). Но лучше брать более молодые модели (STM32F103 плох тем, что это — "первый блин комом", у него пухлая errata и полно железных недочетов).
На коленке в легкую паяются деталюшки до 0603 включительно (некоторые и 0402 умудряются паять), а мелкосхемки с шагом до 0.5мм. Сам паял 100-ногие STM32 с шагом 0.5мм, ничего сложного в этом нет. И ЛУТом, кстати, спокойно платы под эти деталюхи делаются.
Выводные детали надо забыть, как страшный сон. С ними полным-полно гемора, проще и быстрей паять SMD! Да и выпаивать проще SMD (феном дунул и отлепил), нежели трахаться с полыми иглами или выкусывать ноги, а потом выпаивать.
Вот если бы ты был более образован, то знал бы, что существуют нормы по вибро- и термостойкости, которым удовлетворяют только выводные радиоэлектронные компоненты.
Ты видел платы управления всякими космическими хреновинами? Ничего, что там SMD сплошь и рядом?
Из выводных остаются лишь мощные ключи (да и то есть уже варианты с SMD), кондеи высокой емкости и катушки большой индуктивности (их, увы, не "миниатюризируешь"), трансформаторы всякие и т.п. габаритная хрень.
Я пока выпаивал сгоревший драйвер ШД, обматерился! А вот мелкоконтроллер элементарно феном за полминуты отпаял, потом за минуту почистил посадочное место и минуты за три мини-волной припаял новый мелкоконтроллер. Больше времени убил на проверку замыканий и непропая.
Эдди, твои проблемы вообще никого не волнуют. ДИПы и прочие выводные компоненты еще не скоро умрут. Понятно, что их доля за последнее время значительно уменьшилась, но в некоторых областях без них обойтись крайне сложно.
так значит интел нагло врёт, указывая время выполнения простых инструкций в 1 такт, ведь в таком случае RISC должен выполнять аналогичные за 0 тактов, да? =)
ДИПы и прочие выводные компоненты еще не скоро умрут.
Как-то странно разговор перешел с дешевых ширпотребных МК, микросхемам спец применения. Понятно, что не везде можно без DIP обойтись, только где они нужны не для распускания пальцев, а для дела, там и пластиковые корпуса не пойдут и цены совсем не ширпотребные.
А современные МК делать в DIP просто не получается, так как емкость выводов слишком большая.
Это либо школьники, либо те, кому нужна мигалка на светодиодах. Кстати, да. Хреново, что в AVR аппаратных таймеров с гулькин нос, вот и извращается народ.
Плюс ко всему у тебя одновременно выполняется больше одной программы, так что при учёте ядра ОС и других процессов в системе суммарный размер кода будет превышать размер кэша процессора.
не факт, в кеш современных интеловских процессоров можно запихнуть древние ядра линукс, полезный код и ещё место останется)
Абсолютное большинство инструкций Thumb-2 16-и битные. И на практике плотность кода для AVR и ARM сравнима если специально не выискивать случаи, где одно или другое проигрывает. У меня на этот счет есть большая статистика, так как я с этим каждый день дело имею.
Я занимаюсь поддержкой софта (беспроводные низкоскорстные стеки), который принципиально работает на AVR и ARM и имеет размер бинарников от 8 КБ до 170 КБ. Результаты компиляции GCC всегда сравнимы по размеру.
И кодо-генерация для ARM улучшается с каждым релизом GCC, так как над ней работают туча компаний. А для AVR постоянно ухудшается, так как никто больше по сути ничего не делает, только новые МК добавляют иногда.
IAR все-равно дает результат на 5-10% (а иногда и до 20%) меньше по коду, но гораздо хуже по ОЗУ, так как использует раздельные стеки вызова/данных.
И это на коде, который написан, чтобы быть маленьким на 8 битах. Если забыть про 8 бит и переписать этот код оптимизируя для 32 бит, размер еще больше уменьшится.
Элементарно: покупаешь (или делаешь, если в продаже нет) макетку с МК. Соединяешь на беспаечной макетке, отлаживаешь. Потом рисуешь схему и в продакшн!
Сам так и делаю. Надо бы, кстати, пересилить свою лень и добить программный I2C для STM8, чтобы из "вольтметров" всякие гигрометры/барометры/термометры/альтиметры и прочую хрень делать.
P.S. И да, до стадии релиза либо пару-тройку раз приходится перезаказывать платы в "резоните", либо ЛУТить пробники. Т.к. редко с первой попытки получается все нормально запилить: постоянно чего-то добавить хочется в самый неподходящий момент, или косяки какие всплывают...