Всем привет! Можно ли где нить купить процессор i386 ? ну или хотя бы как маркируются... не могу найти... гугля выкидывает постоянно ссылки на статьи по развитию CPU техники или в википедию...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
На русском с инфой всегда проблемы даже для более простых вещей, так что без английского не обойтись. Ну а езернет чуть ли не у половины более-менее современных армов имеется, так что это критерий ещё тот... Да и освоение лучше начинать с чего-нибудь простого и дешёвого, а уж набравшись опыта, выбирать то, что действительно нужно (до езернета ой как нескоро дойдёт, если действительно изучать, а не пытаться склепать что-то из готовых примеров методом копипастинга без привлечения мозгов).
Если интересует именно микроконтроллерное направление, то можно использовать упомянутый STM32: там полно МК на любой вкус и цвет (ну, почти на любой). Однако, если интересы шире, т.е. если интересны мощные микроконтроллеры или микропроцессоры, STM32 и прочие МК на ядрах Cortex-M подходят не шибко хорошо.
Дело в том, что они относятся к архитектурам ARMv6-M (Cortex-M0) и ARMv7-M (Cortex-M3 и M3), которые с точки зрения системных механизмов, прежде всего режимов процессора и обработки прерываний, кардинально отличаются от всех прочих АРМов; кроме того, у них отсутствует "родная" система команд ARM, есть только Thumb (для M0) или её расширенный вариант -- Thumb-2 (для других).
На "настоящих" АРМах (включая использующие ядра Cortex-A, применяемые в процессорах современных планшетов и мобильных телефонов -- это архитектура ARMv7-A) эти системные механизмы реализованы абсолютно по-иному, но совместимы даже с уже давно устаревшими архитектурами, например, с ARMv4T. У всех "настоящих" АРМов есть, конечно, "родная" система команд; у всех, доступных в настоящее время, присутствует и Thumb (те, где её не было, уже вымерли), а, начиная с ARMv6T2 и любых ARMv7 -- и Thumb-2.
Таким образом, если Вы изучите любой Cortex-M, например, из семейства STM32, а потом захотите "пересесть" на "настоящий" ARM, Вам придётся заново изучать его системную архитектуру, а также знакомиться с системой команд собственно ARM (без неё нельзя написать обработчики прерываний, хотя всё остальное благополучно пишется и на Тумбе). Поэтому, повторюсь, попробуйте определиться с тем, к чему Вы действительно стремитесь. Если возможностей Cortex-M Вам точно хватит, т.е. если Вы не планируете в сколько-нибудь обозримом будущем браться за какую-нибудь там книгочиталку и тем паче планшетный компьютер или там видеоплеер, можете смело брать любой МК из Cortex-M из них и изучать (навскидку -- то самое семейство STM32, сверхпопулярное благодаря своей невысокой цене и большой распространённости; правда, лично мне кой-какие вещи там не понравились, но знакомство с ними пока непродолжительное, да и ничего действительно существенного в плане ругани не скажу: тут больше на уровне личных эмоций, чем что-то объективное; можно глянуть ещё LPC1xxx от NXP; насчёт ATMELовских AT91SAM3xxx не уверен пока, хотя в нашей конторе, думается, именно их и возьмём, но там уже из-за соответствия нашим конкретным требованиям -- крайне желателен встроенный компаратор, а у остальных его, похоже, нет, кроме как в каких-то ну очень хилых LPC1xxx).
Если сомневаетесь, что сравнительно слабые МК Вас устроят в будущем, то берите и осваивайте что-нибудь из более старых архитектур -- ARMv4T (например, ATMEL AT91SAM7xxxxx или NXP LPC24xx; кстати, Ethernet у них тоже встречается -- по крайней мере, у 2478) или ARMv5TE или TEJ (например, ATMEL ST91SAM9xxx). Хотя эти архитектуры считаются уже устаревшими, но, поскольку они практически полностью совместимы "снизу вверх" с новейшими ARMv7-R и ARMv7-A (в отличие от ARMv7-M, о которых говорилось выше), то серьёзного переучивания не потребуется, надо будет лишь изучить отличия в инициализации процессора да во внешних устройствах -- а там разницы бывает полно даже между процессорами одного производителя и одной архитектуры, не говоря уж о разных фирмах). Да и производительность старших представлителей той же ARMv5 вполне адекватна подавляющему большинству задач: есть процессоры и на 400 МГц, и на 500, и вроде даже до 667...
С архитектурой ARMv6, хотя она поновее, по-любому не связывайтесь: там есть определённые проблемы с выбором средств разработки, да и встречается она очень редко, и новичку, ИМХО, лучше не иметь себе лишнего геморроя.
ARMv7-R и ARMv7-A -- самые новые и мощные разновидности АРМов, а потому самые малодоступные и дорогие. Кроме того, не знаю, как ARMv7-R (я их вообще в продаже не встречал), а ARMv7-A -- вероятно, слишком сложные внутри для новичка; вообще предполагается, что для них будут программировать, используя уже готовую ось (Андроид, например). Если есть большой опыт работы с другими архитектурами, то можно, конечно, сразу в эти дебри окунуться, но если опыт маловат (например, ограничивается простыми 8-разрядными процессорами), то, ИМХО, лучше взять что-то попроще из ранее указанного. Кстати говоря, старые "железяки" в данном случае выгодней ещё и тем, что более вероятна адекватная помощь на форумах, больше всяких примеров и прочее: просто уже многие с ними дело имели.