Подтвердить что ты не робот

Как начать с процессоров ARM?

Желательно ли начинать с таблицы данных и руководства пользователя ARM-процессора для новичков или сначала получить представление о мире ARM, а затем продолжить?

4b9b3361

Ответ 1

В ответах на этот связанный вопрос описаны несколько хороших ресурсов:

Кроме того, у Hitex есть "Insider Guides" для нескольких различных микроконтроллеров на базе процессоров ARM (бесплатно, но требуется регистрация):

Большинство из них (если не все) являются бесплатными загрузками (я думаю, что они спонсируются производителями микроконтроллеров). Они больше ориентированы на микроконтроллеры, а не только на особенности ARM, но они включают некоторые детали ARM, и они представляют собой большие обзоры микропроцессоров и периферийных устройств в микрофонах.

Ответ 2

Когда я начинаю с новой (для меня) технологии, я начинаю с размещения как можно большего количества листов данных и заметок приложений, и просто прочитываю их прямо. Первой целью является достижение скорости на жаргоне (и именах игроков), уникальных для этой технологии.

С ARM я бы начал с www.arm.com, а их документация на Информационный центр ARM.

Update: Я бы также погрузился в одну или несколько производственных линий, включая чтение, по крайней мере, одного руководства по семейному программисту. Если ваши планы проекта достаточно прочны, чтобы вы знали, какой конкретный процессор ARM будет использоваться, вы можете уйти с упором на эту конкретную модель и ее близких родственников. Если вы хотите познакомиться с ARM, чтобы вы могли выбрать процессор, который будет использоваться в проекте, то выборка большого числа семей - это, безусловно, лучший план.

Существует большой список лицензий на технологию ARM. Из них несколько производителей имеют продукты (основанные на CORTEX-M3 аромате ядра ARM), которые IMHO выделяют для приложений с глубокими встроенными системами.

У моей компании есть проекты, основанные на семействе STM32 от ST Microelectronics. В этом семействе много встроенных периферийных устройств с функциональностью, которая будет знакома всем, кто приходит из мира 8051, или из мира PIC, и имеет достаточную FLASH и SRAM на чипе, чтобы сделать внешние воспоминания дополнительными.

Я слышал много положительных вещей о семье Стеллариса из Luminary Micro. Он также выглядит как подходящий для ряда потребностей встроенной платформы.

Учитывая текущие ценовые точки плат оценки начального уровня, я настоятельно рекомендую собрать один или несколько фишек, похожих на вашу предполагаемую целевую прикладную нишу. Плата с небольшим ЖК-дисплеем, акселерометром, двумя светодиодами на кнопку или два, доступ к незафиксированным контактам GPIO, встроенному интерфейсу JTAG USB и полной цепочке инструментов для разработки кросс-технологий на основе GCC может быть для STM32 (например, до $40 в 2009 году, но эта модель прекращена), например, в настольном шаге $100.

Аналогичные пакеты могут быть найдены для многих других продуктов на базе ARM.

Другой способ обнаружения ARM - это ядро ​​процессора в системе на чипе. Довольно многие поставщики SOC лицензируют процессор ARM для установки своего кремния вместе со своим выделенным оборудованием. Я видел микросхемы сжатия видео, сетевые чипы, FireWire для ATA-адаптеров и USB-устройства, построенные таким образом, и это всего лишь выборка из опубликованных статей и пресс-релизов, которые я вспоминаю с манжетой.

Обновление 2, 2013: Очень доступная точка входа в "типичное" семейство SOC на основе ARM можно увидеть в "Малина Pi" и различные Beagle семейства плат. Оба они нацелены на экспериментаторов и любителей, оба используют SOC с ядрами ARM и дополнительные ресурсы, такие как видео и аудио возможности, и оба запускают Linux из коробки.

Существует также множество разнообразных систем для разработчиков модулей, обеспечивающих мезонинную плату, содержащую полную загрузочную систему для установки на пользовательскую плату, обеспечивающую источники питания и разъемы ввода/вывода, необходимые для конкретной встроенной системы. Один из таких поставщиков Gumstix. Gumstix AirSTORM предоставляет Wi-Fi, Bluetooth, DRAM, NAND FLASH и TI OMAP3 ARM SOC. Подходящая несущая плата может поддерживать либо ЖК-панель, либо HDMI, 10/100 ethernet, USB-хост и OTG, а также линейные аналоговые аудио соединения, а также доступ к различным дополнительным выводам GPIO и периферийным устройствам на чипе.

Ответ 3

Я бы рекомендовал получить BeagleBoard. У них есть поддержка JTAG, чтобы вы могли видеть, что происходит в аппаратном обеспечении, вроде аппаратного отладчика. На нем есть несколько построек linux. Существует также большое сообщество вокруг него, которое поможет вам при работе с ним. У меня Ubuntu Jaunty работает на моем, поэтому нет конца утилиты и компиляторы, которые вы можете запустить.

Ответ 4

Я бы и занимался серфингом sparkfun.com, они несут платы olimex, а также делают свои собственные. Luminary Micro/stellaris также хороши. Beagleboard - это скорее платформа Linux, чем то, к чему вы обращаетесь непосредственно к функциям/инструкциям. Вы можете использовать его, но за эти деньги вы можете купить где-то между 3 и о 7 различными ARC-микроконтроллерами. В любом случае, я бы начал с небольшой доски, обернутой вокруг микроконтроллера на руке, вероятно, май или lpc, микроскоп для подсветки - только для большого пальца2, который я сделал бы только после того, как мои ноги были мокрыми с инструкциями на плечах, а затем с инструкциями большого пальца.

Я также являюсь поклонником использования продвижения gameboy в качестве платформы для обучения для рук (а не NDS, который продвигается, начинайте с семейства GBA).

Вам понадобится ARM ARM (Справочное руководство по архитектуре ARM), а затем каждый конкретный ядро ​​имеет свой собственный TRM, вам понадобятся оба, чтобы узнать, какие инструкции доступны вам. По большей части эти руководства хороши как для справки, так и для обучения с нуля.

Ответ 5

Сначала я получил бы оценочную плату, например STR750-LOVE. Затем скомпилируйте и поймите примеры. После того, как вы будете довольны примерами, пришло время перейти к пониманию того, что находится под капотом, и написать собственный код. Важная часть учебного процесса пытается что-то сделать, а затем отладить его и заставить его работать. Если вы хотите стать экспертом в ARM, вам нужно будет с уверенностью прочитать сборку. У меня просто было интервью с разработчиком прошивки ARM, и все, что я делал для технической части, заключалось в анализе кода сборки THUMB и превращении его в c-код. Большинство компиляторов имеют возможность выводить сборку, которую они генерируют.

Ответ 6

По словам Тома Лерера "Плагиат, плагиат, пусть никто не уклоняется от ваших глаз".

Или будь подобен Ньютону (и Бернарду), стоящему на плечах гигантов.

Другими словами, выясните, что сделали другие люди, и идеалистично избегать повторного использования колес.

Ответ 7

Я бы начал с дешевой платы разработки и примера программного обеспечения, и оттуда, глядя, что вам нужно знать, когда вы идете.

Хорошим праймером для STM32 на основе ARM-ядра является названный STM32 Primer.

Я бы не начал с технического руководства, кроме как для очень быстрого просмотра. Один для STM32 составляет более 600 страниц, а сопроводительное руководство Cortex-M3 - еще 400 страниц. Не совсем свет прочитал!

Ответ 8

На самом деле это зависит от того, что такое ARM, это действительно широкий мир. Обычно ARM интегрируется в SoC (система на чипе). Если вы готовитесь перейти к определенному поставщику SoC, вам нужно будет рассмотреть все это. По моему опыту, выбор пэриферического и кеш-памяти SoC имеет большее влияние, чем фактическое ядро ​​(за исключением производительности).

Что касается оценочных плат: у меня есть хороший опыт работы с Luminary micro (диапазон $50- $60) Cortex M3. Он поставляется с полной (eclipse) средой разработки, примерами, библиотеками и некоторым оборудованием (например, USB, ethernet, OLED-дисплеем) и примерами, с которых вы можете запускать и учиться. Изучение на практике - это больше удовольствия, чем учеба, читая. Я ожидаю, что вам будет удобно продвигаться с 8051 до Cortex M3.

В верхнем конце спектра доска биглей является истинным номером cruncher, который также может запускать Linux.