2010-10-01 4 views
7

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

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

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

  • Cortex M3 Чип
  • Оценочная плата
  • Tool Chain
  • JTAG инструменты

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

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

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

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

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

спасибо.

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

я наконец-то купил Иосиф Йиу "The Definitive Руководство по ARM CortexM3 (Embedded Technology)", нашли подготовку платформы CortexM3 (скоро) и купил комплект STMicro: STM3210C-Eval, который имеет встроенную систему датчиков и не подключен к определенной программной среде. Я также взял несколько плат STm32vl-Discovery (13 $ cdn от digikey!) Со встроенным JTAG. Я сейчас играю с оценочной версией (32K) из IDE Keil's, и я могу сказать, что я НАСТОЯТЕЛЬНО впечатлен! Я смог перестроить прошивку Discovery, загрузить ее и пройти через нее с помощью отладчика за один день!

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

+1

Возможно, вы захотите спросить об этом на http://electronics.stackexchange.com –

+0

Спасибо, отличный сайт, еще одна закладка! –

+0

У меня есть открытие stm32vl, но я получил только открытие stm32f. 168Mhz, i и d кэши, блок с плавающей запятой, криптография, хеш, достаточное количество памяти, много вспышки и т. Д. И т. Д. За $ 20 или меньше. mbeds собираются на хранение, и они остаются на моем столе. https://github.com/dwelch67/stm32vld/tree/master/stm32f4d –

ответ

1

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

+1

Один большой недостаток cortex-m3 заключается в том, что ARM изменен на интерфейс jtag, который использует меньше контактов (некоторые серийные вещи, хотя jtag уже является серийным) и они не выпустят документацию на нем с помощью NDA, по крайней мере, это было так, когда я пытался в этом году. Итак, переходите к чему-то вроде mbed или stellaris, где вы не заперты в песочницу, но у вас есть способ загрузить ваши программы, желательно для коры головного мозга-m3. –

+1

На самом деле, SWD (двухпроводный JTAG) является опцией на Cortex-M3, а не требованием. Например, LPC17xx все еще имеет полный четырехпроводный JTAG (но LPC11xx и LPC13xx действительно являются только SWD). И документы SWD, безусловно, доступны без NDA, хотя вам, возможно, придется зарегистрироваться на arm.com, чтобы загрузить их. –

+0

Мбэд был бы моим первым выбором для домашних проектов, главным образом из-за цены. В настоящее время я смотрю на обучение в Doulos и в конечном итоге хотел бы иметь некоторые изготовленные на заказ платы, чтобы сэкономить на расходах. В процессе обучения я думал о том, чтобы пойти с полным снаряжением (углубленное изучение M3, jtag, отладка источника и т. Д.). Возможно, я пока не должен это исключать? –

2

Возможно, вы захотите посмотреть на Atmel ATSAM3U-EK dev kit (приблизительно $200 from 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, и есть port of FreeRTOS to SAM3U + IAR (которую я сейчас пытаюсь подключить к SAM3U + GCC, поскольку лицензии IAR на 5 тыс. Долларов слишком богаты для нас).

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

+0

Это действительно выглядит как хорошая доска. Если у меня есть загруженная плата, хотя Ethernet и CANbus высоки, это мой список приоритетов и здесь не присутствует. –

3

У меня есть симулятор большого пальца http://github.com/dwelch67/thumbulator/wiki/thumbulator Это только большой палец, а не большой палец 2, но cortex-m3 делает как большой, так и большой палец2. Вы не должны беспокоиться о различиях на некоторое время. В каталоге регресса есть файл make для обоих примеров gcc и llvm. Readme может даже охватить эту тему.

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

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

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

+0

Это правда, что получение чипа из оценочной панели - моя цель в среднесрочной перспективе. Начиная с доски, полной гаджетов, действительно обращается ко мне, чтобы сосредоточиться на изучении процессора, а не на том, как соединять вещи. Тем не менее, stm32 Header выглядит неплохо! PS: В чем разница между JTAG и вигглером? если таковые имеются? –

+0

То же самое. То, что я называю wigglers, - бит-бит jtag, vs с целевым интерфейсом jtag. Используется для параллельных портов, но теперь мы используем чипы с параллельным портом USB. –

2

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

Все это стоит только $ 33 на DigiKey.

Смежные вопросы