Нужен совет для начинающего ARM Cortex M3 - PullRequest
7 голосов
/ 01 октября 2010

Я скоро приступлю к победе в ARM Cortex M3 с официальной тренировкой (со стороны процессора).

Теперь я немного успел поработать с Arduino и AVR и у меня есть некоторые основы в электронике, но я в основномразработчик программного обеспечения.Я читал большинство тем здесь и совсем немного в других местах, касающихся доступных инструментов, и они были действительно полезны.Мне нужно что-то, чтобы соединить все эти элементы ответа вместе.

Я хотел бы снабдить себя стартовым набором, который достаточно универсален, чтобы начать работу, и, по крайней мере, позволяет мне экспериментировать с различными комбинациями аппаратного и программного обеспечения.(Степперы, CAN-Bus, SPI и т.д ...).Я смотрю на следующий список (пожалуйста, не стесняйтесь добавлять больше предметов!):

  • Cortex M3 Chip
  • Оценочная плата
  • Цепочка для инструментов
  • JTAG tools

Для чипа мне бы хотелось, чтобы одна из моделей более высокого класса могла попробовать что угодно.NXP LPC1768 кажется хорошим выбором, но есть еще STM и Stellaris.

Интересными кандидатами на плату в настоящее время являются Keil MCP1760, STM3210E-EVAL, но я боюсь привязки к продавцу, поскольку хотел бы иметь возможность попробовать различные наборы инструментов на одной плате.mBed очень привлекателен, но вне уравнения из-за его онлайн-компилятора (если только не может быть использован и обычный компилятор)

Для Toolchain у меня есть «чувство» к IAR, Rowley Associates.Я бы предпочел простоту использования / хорошее отношение к ресурсам по сравнению с открытым исходным кодом, и желательно инструменты, которые можно использовать для нескольких целей.

Действительно ли мне нужен блок JTAG?Если это «стандартный отраслевой инструмент», как кажется, я хотел бы хотя бы получить некоторый опыт в этом.Похоже, еще один источник жесткой блокировки поставщика.Будет ли лучше использовать внешнюю, с которой я могу ознакомиться, или просто использовать ту, которая включена в оценочную доску?

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

Спасибо.

РЕЗУЛЬТАТЫ: Что язаказал:

Наконец-то я купил «Полное руководство по ARM Cortex-M3 (встроенная технология)» Джозефа Ю, нашел некоторое обучение для платформы CortexM3 (скоро) и купил комплект STMicro: STM3210C-Eval, который имеет несколько встроенных датчиков и не привязан к конкретной программной среде.Я также подобрал несколько плат STm32vl-Discovery (13 $ cdn от digikey!) С встроенным JTAG.Сейчас я играю с ознакомительной версией (32K) IDE от Keil uVision и могу сказать, что я ДЕЙСТВИТЕЛЬНО впечатлен!Мне удалось пересобрать прошивку Discovery, загрузить ее и пройти через нее с помощью отладчика за один день!

Спасибо всем!

Ответы [ 4 ]

3 голосов
/ 02 октября 2010

и llvm, и gcc в порядке, нет необходимости покупать программное обеспечение. Большинство людей, которые предоставляют бесплатную помощь, собираются быть пользователями gcc. Codesourcery - это текущее место, где можно получить более новый / лучший gcc (для рук). Облегченная версия прекрасно. Прокатить свой собственный gcc - это относительно простая вещь, но, возможно, это не то, что вам нравится. Хорошая особенность llvm заключается в том, что он всегда является кросс-компилятором, а предварительные сборки обычно имеют несколько / все цели.

У меня также есть stellaris, mbed и другие примеры cortex-m3. Мне нравится stellaris, а не фанат lpc, избегайте экспресс, mbed на самом деле неплохо. Сумасшедшие ярко-синие светодиоды дают мне мигрант, поэтому я заменил их на зеленый, в противном случае он работает просто отлично, прост в использовании. Игорь прав, вы не заперты в их песочнице, как в экспрессе, у меня есть пример моргания светодиодов с помощью gcc для компиляции где-то там. Вы просто копируете .bin-файл на устройство, похожее на флэш-накопитель, и нажимаете кнопку сброса, чтобы загрузить новый файл.

sparkfun.com имеет плату заголовка stm32 менее чем за 50 долларов плюс mbed, и кто знает, что еще. Доски Stellaris находятся в диапазоне менее $ 100 и отлично подойдут. Я почти сразу же заложил свой 811, случайно выполнив то, что было сказано в предупреждении. Перевернул мои jtag gpio pins неправильно и ... игра окончена. 1968 и другие не 811 серии либо не кирпичны, либо не так легко кирпичны. Платы Stellaris поглощают все устройства с помощью встроенной периферии, что довольно интересно, но не в том случае, если вы хотите заняться чем-то другим, а не просто использовать эти периферийные устройства. Вам понадобится jtag wiggler, если вы используете заголовок stm32 (избегайте праймеров stm), amontek делает хороший, jtag-tiny, и olimex должен работать нормально, но я на самом деле не знаю, что я когда-либо вытащил свой из коробка. Теоретически, одну звездную доску можно использовать как вигглер jtag для другой или для других кортекс-м3. Если у вас есть доска Stellaris, вам больше ничего не нужно, все, что вам нужно, поставляется в коробке по одной цене, хорошо, если вы не хотите использовать этот набор инструментов, вы можете скачать один из перечисленных выше.

2 голосов
/ 08 ноября 2010

Со своей стороны, мне нравится плата LPCXpresso для LPC1768.Он имеет встроенный интерфейс USB JTAG и поставляется с бесплатной версией Code Red IDE (на основе Eclipse).Я нашел интерактивную отладку JTAG очень полезной, когда учился использовать этот чип.Обычно я не использую интерактивную отладку при программировании, но для встроенного программирования я нахожу это все более и более важным.

2 голосов
/ 01 октября 2010

Возможно, вы захотите взглянуть на комплект разработчика Atmel ATSAM3U-EK (около $ 200 от Digi-Key ).Он оснащен сенсорным ЖК-дисплеем, акселерометром, датчиком температуры, аналоговыми входами, JTAG, двумя последовательными портами и USB 2.0 (встроен в SAM3U).

В серии SAM3 мне нравится то, что мне нравится,Он имеет встроенное ПЗУ и флэш-память для хранения программ.С завода он загружает ПЗУ (позже вы изменяете его на загрузку с флэш-памяти), который запускает порт USB, который объявляет себя классом USB-устройства связи (CDC), и запускает загрузочный монитор SAM-BA.Он также имеет встроенный вывод ERASE, который сбрасывает все до заводских настроек.

Итак, все, что вам нужно сделать, чтобы перепрограммировать с нуля, это:

  • Перемычка ERASE дляне менее 200 мс при включении питания
  • , сбросьте и подключите плату к USB-порту
  • запустите программу SAM-BA от Atmel в Windows или Linux
  • выберите последовательный порт
  • включить запись во флэш-память
  • выбрать двоичный файл и отправить его
  • установить его для загрузки с флэш-памяти
  • отсоединить USB и снова нажать сброс.

Нет необходимости в ключе или коробке JTAG.Я знаю, что перепрограммирование через JTAG через IAR, вероятно, меньше шагов, но мне нравится знать, что есть способ добраться до известного состояния, если другие инструменты сломаются.

Набор инструментов IAR поддерживает серию SAM3, и есть порт FreeRTOS для SAM3U + IAR (который я сейчас пытаюсь перенести на SAM3U + GCC, так как лицензии IAR за $ 5K слишком богаты для нас).

Еще одна полезная вещь оSAM3U-EK: на плате установлена ​​флешка NAND, и если вы подключите плату к компьютеру во время демонстрации, она будет монтировать флешку на ваш компьютер как «флешку».На этой флэш-памяти вы найдете документацию, схемы, демонстрационные программы и библиотеки для GCC, IAR и цепочек инструментов Keil, а также инструкции и файлы для восстановления демонстрационной программы на плате (полезно, если вы думаете, что что-то сломали).

1 голос
/ 01 октября 2010

Я также разработчик программного обеспечения изначально. Я использовал несколько разных наборов, но тот, который я нашел наиболее простым в использовании и с которым больше всего справился, это mbed . Вы можете буквально запустить его и запустить через пять минут после открытия коробки. Нет необходимости устанавливать какие-либо IDE с компакт-диска, не нужны JTAG-ключи, не нужно проливать таблицы данных - просто напишите код, скомпилируйте и запустите.
Да, некоторые жалуются, что он «привязан» к онлайн-компилятору. Но я слышал это только от людей, которые на самом деле не пробовали. И это просто не соответствует действительности - вы все равно можете использовать любой другой набор инструментов, который может создавать двоичные файлы для LPC1768: IAR, Keil, CodeSourcery, Yagarto или ваш собственный набор инструментов. Я сам пока не нашел для этого случая, но это, безусловно, возможно.
Вероятно, самым большим недостатком mbed является то, что он не предоставляет интерфейс JTAG, и поэтому вы не можете отлаживать в интерактивном режиме. Пока что я не нашел это критическим, но это может быть важно, если вы выполняете много низкоуровневой работы.

...