Желательно ли начинать непосредственно с таблицы данных и руководства пользователя процессора ARM для новичков или сначала получить представление о мире ARM, а затем двигаться дальше?
Как начать с процессоров ARM?
Ответы (8)
В ответах на этот связанный вопрос описано несколько полезных ресурсов:
Кроме того, у Hitex есть «Инсайдерские руководства» для нескольких различных микроконтроллеров на базе процессоров ARM (бесплатно, но требует регистрации):
Большинство из них (если не все) загружаются бесплатно (я думаю, они спонсируются производителями микроконтроллеров). Они больше ориентированы на микроконтроллеры, а не только на особенности ARM, но они включают в себя некоторые детали ARM и являются отличным обзором микроконтроллеров и периферийных устройств в микроконтроллерах.
Когда я начинаю с новой (для меня) технологии, я начинаю с поиска как можно большего количества таблиц данных и примечаний к приложениям и просто их прочтения. Первая цель - овладеть жаргоном (и именами игроков), уникальным для этой технологии.
Что касается ARM, я бы начал с www.arm.com и их документации по адресу Информационный центр ARM.
Обновление: я бы также погрузился в одну или несколько производственных линий производителя, включая чтение хотя бы одного руководства для семейного программиста. Если ваши планы по проекту достаточно твердые, чтобы вы знали, какой конкретный процессор ARM будет использоваться, тогда вы можете сосредоточиться на этой конкретной модели и ее близких родственниках. Если вы хотите познакомиться с ARM, чтобы иметь возможность выбрать процессор, который будет использоваться в проекте, то выборка из широкого набора семейств почти наверняка лучший план.
Существует большой список лицензиатов технологии ARM. Из них у некоторых производителей есть продукты (на основе CORTEX-M3 ядра ARM), которые, по моему мнению, выделяются для приложений глубоких встраиваемых систем.
Моя компания ведет проекты на основе семейства STM32 от ST Microelectronics. В этом семействе имеется множество периферийных устройств на кристалле с функциональностью, знакомой любому, кто пришел из мира 8051 или из мира PIC, и имеет достаточно флэш-памяти и SRAM на кристалле, чтобы сделать внешние запоминающие устройства необязательными.
Я слышал много положительных отзывов о семействе Stellaris от Luminary Micro. Похоже, он также хорошо подходит для ряда потребностей встраиваемых платформ.
Учитывая текущие цены на оценочные платы начального уровня, я настоятельно рекомендую выбрать один или несколько чипов, похожих на вашу ожидаемую нишу целевого приложения. Плата с небольшим ЖК-дисплеем, акселерометром, парой светодиодов на кнопку или две, доступом к незафиксированным контактам GPIO, встроенным USB-интерфейсом JTAG и полной цепочкой инструментов кросс-разработки на основе GCC может быть имел для STM32 (менее 40 долларов США в 2009 г., но эта модель снято с производства), например, с ценой в 100 долларов США.
Подобные пакеты можно найти для многих других продуктов на базе ядра ARM.
Другой способ, которым можно найти ARM, - это ядро ЦП в системе на кристалле. Довольно много поставщиков SOC лицензируют процессоры ARM для установки своих кремний вместе со своим выделенным оборудованием. Я видел микросхемы сжатия видео, сетевые микросхемы, адаптеры Firewire-ATA и USB-устройства, построенные таким образом, и это лишь отрывки из опубликованных статей и пресс-релизов, которые я припоминаю сразу же.
Обновление 2, 2013 г .: Очень доступную точку входа в "типичное" семейство SOC на базе ARM можно найти в Raspberry Pi и различные семейные доски Beagle. Оба предназначены для экспериментаторов и любителей, оба используют SOC с ядрами ARM и дополнительными ресурсами, такими как видео и аудио, и оба запускают Linux из коробки.
Существует также большое количество разнообразных систем от производителей модулей, предоставляющих мезонинную плату, содержащую полную загрузочную систему для установки на специализированную плату, обеспечивающую источник питания и разъемы ввода-вывода, необходимые для конкретной встроенной системы. Одним из таких поставщиков является Gumstix. Gumstix AirSTORM поддерживает Wi-Fi, Bluetooth, DRAM, NAND FLASH и TI OMAP3 ARM SOC. Подходящая несущая плата может поддерживать либо ЖК-панель, либо HDMI, Ethernet 10/100, USB-хост и OTG, а также аналоговые аудиоподключения линейного уровня, а также доступ к множеству дополнительных контактов GPIO и периферийных устройств на кристалле.
[had for the STM32](http://www.st.com/mcu/contentid-105-110-STM3210B_PRIMER.html)
кажется неработающей.
- person abdullah kahraman; 10.07.2013
Я бы рекомендовал получить BeagleBoard. У них есть поддержка JTAG, так что вы можете видеть, что происходит в оборудовании, своего рода аппаратный отладчик. На нем работает несколько сборок Linux. Вокруг него также есть отличное сообщество, которое поможет вам в работе с ним. На моем компьютере работает Ubuntu Jaunty, так что у вас бесконечное количество утилит и компиляторов.
Я бы и занимался серфингом на sparkfun.com, они продают доски olimex, а также делают свои собственные. Светильники Micro / stellaris тоже хороши. Beagleboard - это скорее платформа Linux, чем то, что вы получаете доступ к функциям / инструкциям руки. Вы можете использовать его, но за эти деньги вы можете купить где-то от 3 до 7 различных плат для оценки микроконтроллеров на базе ARM. В любом случае я бы начал с небольшой платы, обернутой вокруг микроконтроллера на базе руки, вероятно, st или lpc, светильник micro - это только thumb2, что я сделал бы только после того, как намочил ноги с инструкциями для руки, а затем с инструкциями для большого пальца.
Я также являюсь поклонником использования gameboy advance в качестве обучающей платформы для руки (не NDS, которая является продвинутой, начиная с семейства GBA).
Вам понадобится ARM ARM (Справочное руководство по архитектуре ARM), а затем каждое конкретное ядро будет иметь свой собственный TRM, вам понадобятся оба, чтобы узнать, какие инструкции доступны вам. По большей части эти руководства удобны как справочные, так и для обучения с нуля.
По словам Тома Лерера: «Плагиат, плагиат, пусть ничья работа не ускользнет от ваших глаз».
Или походите на Ньютона (и Бернарда), стоящего на плечах гигантов.
Другими словами, узнайте, что сделали другие люди, и, в идеале, не изобретайте колеса заново.
Я бы начал с дешевой платы для разработки и примеров программного обеспечения, а затем перешел бы к поиску того, что вам нужно знать, по ходу дела.
Хорошим учебником для STM32 на базе ядра ARM является название с соответствующим названием STM32 Primer.
Я бы не стал начинать с технического руководства, кроме как для очень быстрого просмотра. Один для STM32 - это 600+ страниц, а прилагаемое руководство Cortex-M3 - еще 400 страниц. Не совсем легкое чтение!
Это действительно зависит от того, что за ARM, это действительно обширный мир. Обычно ARM интегрирована в SoC (систему на кристалле). Если вы готовитесь к переходу к конкретному поставщику SoC, вам необходимо рассмотреть все это. По моему опыту, периферия SoC и выбор кеша имеют большее влияние, чем фактическое ядро (за исключением производительности).
Что касается оценочных плат: у меня есть хороший опыт работы с Luminary micro (диапазон от 50 до 60 долларов) Cortex M3. Он поставляется с полной (eclipse) средой разработки, примерами, библиотеками и некоторым оборудованием (например, USB, Ethernet, OLed-дисплей) и примерами, которые вы можете запускать и изучать. Учиться на практике, imho, веселее, чем учиться путем чтения. Надеюсь, вам будет комфортно перейти с 8051 на Cortex M3.
В верхней части спектра плата beagle - настоящий вычислитель чисел, который также может работать с Linux.