С чего начать работу с процессорами ARM?
Вопрос
Целесообразно ли сразу начать с описания и руководства пользователя процессора ARM для новичка или сначала получить представление о мире ARM, а затем идти дальше?
Решение
Несколько хороших ресурсов описаны в ответах на этот связанный вопрос:
Кроме того, у Hitex есть «Руководства для инсайдеров» для нескольких различных микроконтроллеров на базе процессоров ARM (бесплатно, но требует регистрации):
Большинство из них (если не все) можно загрузить бесплатно (думаю, их спонсируют производители микроконтроллеров).Они больше ориентированы на микроконтроллеры, а не только на особенности ARM, но включают в себя некоторые детали ARM и представляют собой отличные обзоры микроконтроллеров и периферийных устройств в микроконтроллерах.
Другие советы
Когда я начинаю осваивать новую (для меня) технологию, я начинаю с того, что нахожу как можно больше технических описаний и примечаний по применению и просто читаю их до конца.Первая цель — освоить жаргон (и имена игроков), уникальный для этой технологии.
Что касается ARM, я бы начал с www.arm.com, и их документация на Информационный центр АРМ.
Обновлять:Я также хотел бы изучить одну или несколько линеек продуктов производителя, включая чтение хотя бы одного руководства для семейных программистов.Если ваши планы проекта достаточно тверды и вы знаете, какой конкретный процессор ARM будет использоваться, тогда вам может сойти с рук сосредоточиться на этой конкретной модели и ее близких родственниках.Если вы хотите познакомиться с ARM, чтобы вы могли выбирать ЦП, который будет использоваться в проекте, то выборка из широкого набора семейств почти наверняка будет лучшим планом.
Существует большой список Лицензиаты технологии ARM.Из них лишь у нескольких производителей есть продукты (на основе ядра ARM CORTEX-M3), которые, по моему мнению, выделяются для приложений глубоких встраиваемых систем.
В моей компании реализуются проекты на базе семейства STM32 от СТ Микроэлектроника.Это семейство имеет множество встроенных периферийных устройств с функциональностью, которая будет знакома любому, кто пришел из мира 8051 или мира PIC, и имеет достаточное количество флэш-памяти и SRAM на чипе, чтобы сделать внешнюю память необязательной.
Я слышал много положительного о семействе Стелларис от Светильник Микро.Похоже, что он также хорошо подходит для ряда потребностей встраиваемых платформ.
Учитывая текущие цены на оценочные платы начального уровня, я настоятельно рекомендую выбрать одну или несколько для чипов, аналогичных вашей предполагаемой целевой нише приложений.Можно использовать плату с небольшим ЖК-дисплеем, акселерометром, парой светодиодов, кнопкой или двумя, доступом к незадействованным контактам GPIO, встроенным USB-интерфейсом JTAG и полной цепочкой инструментов кросс-разработки на основе GCC. был для STM32 (по цене менее 40 долларов США в 2009 году, но эта модель снята с производства) примерно за 100 долларов США, например.
Подобные пакеты можно найти для многих других продуктов на базе ядра ARM.
Другой способ найти ARM — это ядро ЦП в системе на кристалле.Довольно много поставщиков SOC лицензируют процессоры ARM для установки своих микросхем вместе со своим специализированным оборудованием.Я видел чипы сжатия видео, сетевые чипы, адаптеры FireWire-ATA и USB-устройства, построенные таким образом, и это лишь выборка из опубликованных статей и пресс-релизов, которые я случайно вспомнил.
Обновление 2, 2013 г.:Очень доступную точку входа в «типичное» семейство SOC на базе ARM можно увидеть на Raspberry Pi и различные Бигль семейные доски.Оба предназначены для экспериментаторов и любителей, оба используют SOC с ядрами ARM и дополнительными ресурсами, такими как возможности видео и аудио, и оба запускают Linux «из коробки».
Производители модулей также предлагают широкий выбор систем, предоставляющих промежуточную плату, содержащую полную загрузочную систему для установки на специальную плату, обеспечивающую источник питания и разъемы ввода-вывода, необходимые для конкретной встроенной системы.Одним из таких поставщиков является Гамстикс.Gumstix AirSTORM обеспечивает Wi-Fi, Bluetooth, DRAM, NAND FLASH и SOC TI OMAP3 ARM.Подходящая несущая плата может поддерживать либо ЖК-панель, либо HDMI, 10/100 Ethernet, USB-хост и OTG, а также аналоговые аудиосоединения линейного уровня, а также доступ к множеству дополнительных контактов GPIO и встроенных периферийных устройств.
Я бы рекомендовал получить BeagleBoard . Они поддерживают JTAG, так что вы можете видеть, что происходит в аппаратном обеспечении, что-то вроде аппаратного отладчика. Есть несколько сборок Linux, которые работают на нем. Вокруг него также есть большое сообщество, которое поможет вам в работе с ним. У меня работает Ubuntu Jaunty, поэтому нет конца утилит и компиляторов, которые вы можете запустить.
Я бы заходил на сайт sparkfun.com, они продают доски Olimex, а также делают свои собственные.Luminary Micro/stellaris тоже хороши.Beagleboard — это скорее платформа Linux, чем то, к чему вы можете получить доступ к функциям/инструкциям руки.Вы можете использовать его, но за эти деньги вы можете купить где-то от 3 до 7 различных оценочных плат микроконтроллеров на базе ARM.В любом случае я бы начал с небольшой платы, обернутой вокруг микроконтроллера на базе руки, возможно, st или lpc, световой микро-это только большой палец2, что я бы делал только после того, как намочил ноги инструкциями по стандартному рычагу, а затем инструкциями большого пальца.
Я также сторонник использования Gameboy Advance в качестве платформы обучения для рук (не NDS, которая является продвинутой, начните с семейства GBA).
Вам понадобится ARM ARM (Справочное руководство по архитектуре ARM), а затем каждое конкретное ядро имеет свой собственный TRM, вам понадобятся оба, чтобы узнать, какие инструкции вам доступны.По большей части эти руководства хороши как в качестве справочного материала, так и для обучения с нуля.
Сначала я получу электронную доску, например STR750 -Любовь . Затем скомпилируйте и поймите примеры. После того, как вы освоитесь с примерами, настало время перейти к пониманию того, что скрывается за вами, и написанию собственного кода. Важной частью процесса обучения является попытка что-то сделать, а затем отладка и заставить это работать. Если вы хотите стать экспертом в ARM, вам нужно будет с уверенностью прочитать сборку. Я только что взял интервью, чтобы быть разработчиком прошивки ARM, и все, что я сделал для технической части, это проанализировал код сборки THUMB и превратил его в c-код. Большинство компиляторов имеют возможность выводить сборку, которую они генерируют. Р>
По словам Тома Лерера, «Плагиат, плагиат, пусть никто не уклоняется от ваших глаз».
Или как Ньютон (и Бернард) встанут на плечи гигантов.
Другими словами, узнайте, что сделали остальные, и в идеале избегайте изобретать велосипеды.
Я бы начал с дешевой платы для разработки и примера программного обеспечения и пошел оттуда, чтобы найти то, что вам нужно знать, по мере продвижения.
Хорошим учебником для STM32 на базе ARM-ядра является учебник для начинающих STM32 . р>
Я бы не стал начинать с технического руководства, кроме как для очень быстрого просмотра. Один для STM32 имеет длину более 600 страниц, а сопровождающее руководство по Cortex-M3 - еще 400 страниц. Не совсем легкое чтение!
Это действительно зависит от того, какой ARM, это действительно большой мир.Обычно ARM интегрирован в SoC (систему на кристалле).Если вы готовитесь к переходу на конкретного поставщика SoC, вам необходимо учитывать все это.По моему опыту, выбор периферийных устройств SoC и кэша имеет большее влияние, чем фактическое ядро (за исключением производительности).
Что касается оценочных комиссий:У меня хороший опыт работы с Светильник микро (диапазон 50–60 долларов) Cortex M3.Он поставляется с полной средой разработки (eclipse), примерами, библиотеками и некоторым оборудованием (т.USB, Ethernet, OLEd-дисплей) и примеры, на которых вы можете работать и учиться.Учиться на практике, по моему мнению, веселее, чем учиться, читая.Я ожидаю, что вам будет удобно перейти с 8051 на Cortex M3.
На верхнем уровне спектра плата Beagle представляет собой настоящую вычислительную машину, которая также может работать под управлением Linux.