Цитата
Не хотели холивар начинать, а всё-таки начали
Не было никакого холивара (во всяком случае, с моей стороны). Я лишь утверждал и утверждаю, что без знания ассемблера нет настоящего специалиста, работающего с МК, а значит, его освоение обязательно. Дискуссия ж о том, на чём делать коммерческие проекты, явно выходит за рамки этой темы.
Цитата
Если с армами Вы не знакомы вообще, то я бы посоветовал ARM7. Он легче. Можно больше сосредоточиться на "железе". ARM9 это уже как-то для "серьезной" ОС подходит. Она может "затмить" микроконтроллер, помешать его изучению.
Вот с этим абсолютно не согласен. Какое отношение имеет серия ядер к сложности освоения как таковой? Наличие устройства управления памятью (MMU) или защиты памяти (MPU)? Так его никто не обязывает использовать: всё и без него работать будет, оно ж после сброса выключено. Ну а всё остальное у собственно ядер с точки зрения программиста почти одинаково и не тянет за собой каких-то дополнительных проблем (наличие дополнительных инструкций в более поздних ядрах ничего не меняет: не надо или не хочешь -- не изучай и не используй). Так что, если уж говорить о ядрах, надо выбирать не между ARM7 и ARM9, а между "настоящими" ARMами (к коим относятся и эти две серии, и новейшие Cortex-A, и ряд других) и ядрами серии Cortex-M, поскольку в зависимости от выбора придётся иметь дело с совершенно разными системными архитектурами (набор режимов процессора, набор регистров состояния и управления, обработка прерываний и т.д.), совершенно не совместимыми друг с другом.
Вот в периферии различия, конечно, есть, но они больше зависят от фирмы-производителя, чем от версии ядра. Например, у той же NXP: LPC24xx с ядром ARM7TDMI и LPC17xx с ядром Cortex-M3. Системная архитектура различается кардинально, однако периферия, имеющаяся у обоих семейств, чуть ли не на 100% совпадает.
Про наличие аппаратных ошибок уже говорил, но снова повторюсь. Для обучения лучше брать контроллер с ерратой потоньше, иначе, чего доброго, придётся не столько освоением заниматься, сколько искать пути обхода всяких косяков.
Цитата
Вот только ассемблер под AVR Вам мало поможет в освоении ARM rolleyes.gif Загляните в список инструкций ассемблера и Вы поймете о чем я
Ещё как поможет. Список инструкций вообще никакой роли не играет, по большому счёту: главное -- сам подход, "менталитет", если угодно. Это с ЯВУ на ассемблер трудно перестроиться, а с одного ассемблера перейти на другой -- никаких проблем (разве что если этот "другой" уж очень извращённый, что ни про AVR8, ни про ARM не скажешь).
Пы.Сы. Если выбираете освоение "нормального" ARMа, то, ИМХО, лучше брать ATMEL AT91SAM9G45 или NXP LPC2478. Они сильно различаются по периферии (разные фирмы) и производительности (400-МГц процессор с ядром ARM9265EJ-S в одном случае и 72-МГц ARM7TDMI в другом), но оба доступны на дешёвых стартеркитовских платах (и не только на них), имеют приличный набор периферии и почти свободны от аппаратных ошибок. Если же привлекательны Cortex-M, то -- NXP LPC1788 (по периферии очень близок у LPC2478, хотя существенно быстрее -- то ли 100, то ли 120 МГц, ну и полностью отличается собственно процессорным ядром) либо что-нибудь из STM32.
Сообщение отредактировал SII - Oct 10 2011, 15:15