Советы, необходимые для начинающих ARM Cortex M3
Я скоро отправлюсь на подножку ARM Cortex M3 с официальным обучением (сторона процессора).
Так вот, я немного занимался Arduino и AVR раньше и имею некоторые основы в электронике, но я в основном разработчик программного обеспечения. Я прочитал большинство тем здесь и совсем немного в другом месте о доступных инструментах, и они были действительно полезны. Мне нужно что-то, чтобы соединить все эти элементы ответа вместе.
Я хотел бы снабдить себя стартовым комплектом, который является общим достаточно, чтобы заставить меня двигаться, и это, по крайней мере, позволяет мне экспериментировать с различными комбинациями аппаратного и программного обеспечения (Steppers, CAN-Bus, SPI и т. д...). Я смотрю на следующий список (пожалуйста, не стесняйтесь добавлять больше элементов!):
- Чип Cortex M3
- оценочная комиссия
- Цепочка Инструментов
- инструменты JTAG
Для чипа я хотел бы, чтобы одна из моделей высшего класса могла попробовать немного всего. NXP LPC1768 кажется хорошим выбором, но есть также STM и Стелларис, чтобы подумать.
Интересные кандидаты на доску прямо сейчас-это Keil MCP1760, STM3210E-EVAL, но я боюсь блокировки поставщика, так как хотел бы иметь возможность попробовать различные цепочки инструментов на одной доске. mBed очень привлекателен, но вне уравнения из-за его онлайн-компилятора (если только обычный компилятор также не может быть использован)
Что касается цепочки инструментов, у меня есть "чувство" к IAR, Rowley Associates. Я бы предпочел простоту использования / хорошо сделанность против открытого исходного кода и предпочтительно инструменты, которые можно было бы использовать для нескольких целей.
Действительно ли мне нужен блок JTAG? Если это "стандартный отраслевой инструмент", как кажется, я хотел бы, по крайней мере, получить некоторый опыт в этом. Похоже, это еще один источник жесткой блокировки поставщиков. Будет ли лучше использовать внешний, с которым я могу ознакомиться, или просто использовать тот, который включен в оценочную доску?
В принципе, мне нужна помощь в выборе выигрышной комбинации для вышеупомянутых категорий. Это даже так возможно, или я наивен и должен смотреть на экономию расходов, потому что я в конечном итоге куплю по одному из них в конце концов?
Спасибо.
Результаты: что я заказал:
В конце концов я купил "окончательное руководство по ARM Cortex-M3 (Embedded Technology)" Джозефа ю, нашел некоторое обучение для платформы CortexM3 (скоро) и купил комплект STMicro: STM3210C-Eval, который имеет кучу встроенных датчиков и не привязан к конкретной программной среде. Я также подобрал несколько досок STm32vl-Discovery (13 $ cdn от digikey!) с бортовой разъем. Сейчас я играю с ознакомительной версией (32K) IDE Keil's uVision и могу сказать, что я действительно впечатлен! Я смог восстановить прошивку Discovery, загрузить ее обратно и пройти через нее с отладчиком за один день!
Спасибо всем!
4 ответов:
Я также разработчик программного обеспечения изначально. Я использовал несколько различных наборов, но тот, который я нашел наиболее простым в использовании и сделал больше всего с помощью mbed. Вы можете буквально запустить его в течение пяти минут с момента открытия коробки. Нет необходимости устанавливать какие - либо IDEs с компакт-диска, нет необходимости в JTAG-ключах, нет необходимости заливать таблицы данных-просто напишите код, скомпилируйте и запустите.
Да, некоторые жалуются, что он "привязан" к онлайн-компилятору. Но я слышал это только от людей, которые на самом деле этого не делали. попробовать его. И это просто не верно - вы все еще можете использовать любую другую цепочку инструментов, которая может создавать двоичные файлы для LPC1768: IAR, Keil, CodeSourcery, Yagarto или вашу собственную цепочку инструментов. Я сам еще не нашел для этого случая, но это, безусловно, возможно.
Вероятно, самым большим недостатком mbed является то, что он не предоставляет интерфейс JTAG, и поэтому вы не можете отлаживать его в интерактивном режиме. До сих пор я не считал это критичным, но это может быть важно, если вы делаете много низкоуровневой работы.
У меня есть имитатор большого пальца http://github.com/dwelch67/thumbulator/wiki/thumbulator это только большой палец, а не большой палец 2, но кортекс-м3 делает и большой палец, и большой палец 2. Вам не нужно будет беспокоиться о различиях на некоторое время. Каталог регресса содержит файл make для примеров gcc и llvm. Readme может даже охватить эту тему.
И llvm, и gcc прекрасно работают, нет необходимости покупать какое-либо программное обеспечение. Большинство людей здесь, предоставляющих бесплатную помощь, будут пользователями gcc. Codesourcery-это текущее место для получения нового / лучшего gcc (для arm). Облегченная версия совершенно прекрасна. Скатывание собственного gcc-это относительно легкая вещь, но, возможно, не то, что вам нужно. Хорошая вещь о llvm-это то, что он всегда является кросс-компилятором и предварительно построенные обычно имеют несколько/все цели.
У меня также есть stellaris и mbed и другие примеры cortex-m3. Мне нравится stellaris, не поклонник lpc, избегаю экспрессо, mbed на самом деле не так уж плох. Сумасшедший яркий синие светодиоды дают мне Мигран, поэтому я заменил их зелеными, в остальном он работает просто отлично, прост в использовании. Игорь прав, вы не заперты в их песочнице, как вы с expresso, у меня есть пример мигания светодиодов с помощью gcc для компиляции где-то там. вы просто копируете .бин файл на вещь, которая выглядит как флэш-накопитель и нажмите кнопку сброса, чтобы загрузить новый файл.
Sparkfun.com имеет заголовок STM32 за 50 долларов плюс mbed и кто знает, что еще. Платы stellaris находятся в диапазоне sub $ 100 и прекрасно подходят. Я замуровал свой 811 почти сразу, случайно сделав именно то, что предупреждало не делать. Повернул мои булавки JTAG gpio не в ту сторону и...игра окончена. 1968 и другие серии не-811 или не-кирпичны или не так легки для кирпича. Платы stellaris жуют все io с бортовыми периферийными устройствами, что забавно на некоторое время, но не тогда, когда вы хотите сделать что-то другое, кроме как просто использовать эти периферийные устройства. Вы будете если вы используете заголовок stm32 (избегайте праймеров stm), amontek делает хороший, jtag-крошечный, и olimex one должен работать нормально, но я на самом деле не знаю, что я когда-либо получал свой из коробки. Теоретически одну доску stellaris можно использовать в качестве JTAG wiggler для другой или для других cortex-m3s. если у вас есть доска stellaris, вам больше ничего не нужно, все, что вам нужно, поставляется в коробке по одной цене, ну а если вы не хотите использовать эту цепочку инструментов, то вы можете скачать одну из них. перечисленный выше.
Вы можете посмотреть на Atmel ATSAM3U-EK dev kit (прибл. $200 от Digi-Key ). Он имеет сенсорный экран LCD, акселерометр, датчик температуры, аналоговые входы, JTAG, два последовательных порта и USB 2.0 (встроенный в SAM3U).
Что мне нравится в серии SAM3, так это легкое воспитание. Он имеет встроенный ПЗУ, а также флэш-память для хранения программ. С завода он загружает ПЗУ (позже вы измените его на загрузку с флэш-памяти), который запускает USB-порт, который объявляет себя классом устройств связи USB (CDC)и запускает загрузочный монитор SAM-BA. Он также имеет встроенный стирающий штифт, который сбрасывает все до заводских настроек.
Поэтому все, что вам нужно сделать, чтобы перепрограммировать с нуля, это:
- стирание перемычек в течение не менее 200 мс при включенном питании
- перезагрузите и подключите плату к порту USB
- запустите программу Atmel SAM-BA либо на Windows, либо на Linux
- выберите последовательный порт
- включить вспышку написание
- выберите свой двоичный файл и отправьте его
- установите его на загрузку с flash
- отцепите USB и снова нажмите Сброс.
Не требуется ключ или JTAG-коробка. Я знаю, что перепрограммирование через JTAG через IAR, вероятно, меньше шагов, но мне нравится знать, что есть способ добраться до известного состояния, если другие инструменты сломаются.
Цепочка инструментов IAR поддерживает серию SAM3, и есть порт FreeRTOS для SAM3U + IAR (который я сейчас пытаюсь портировать на SAM3U + GCC, так как лицензии IAR на $5K слишком богаты для нас).
Еще одна интересная вещь о SAM3U-EK: у него есть вспышка NAND на борту, и если вы подключите плату к компьютеру во время запуска демонстрации, он установит вспышку на вашем компьютере в качестве "флэш-накопителя". На этой флеш-карте вы найдете документацию, схемы, демонстрационные программы и библиотеки для цепей инструментов GCC, IAR и Keil, а также инструкции и файлы для восстановления демонстрационной программы на плате (полезно, если вы думаете, что вы сломал что-то).
Со своей стороны, мне нравится доска LPCXpresso для LPC1768. Он имеет встроенный интерфейс USB JTAG и поставляется с бесплатной версией кода Red IDE (Eclipse-based). Я нашел интерактивную отладку JTAG очень полезной, когда учился использовать этот чип. Обычно я не использую интерактивную отладку, когда программирую, но для встроенного программирования я нахожу ее все более и более важной.
Все это стоит всего 33 доллара на DigiKey.
Comments