Имеет ли значение, какой микроконтроллер использовать для первого встроенного системного программиста?

Я занимаюсь программированием для компьютеров и веб-приложений в течение нескольких лет. Я хотел бы перейти к программированию встраиваемых систем. После запроса начальный вопрос. Интересно, с какой аппаратной / программной среды IDE мне следует начать ...

Или ... неважно?

На какой платформе разработки легче всего изучать и программировать (принимая во внимание удобство использования IDE)?

Какой из них легче всего отладить, если что-то пойдет не так?

Моя цель - узнать о " как работают порты ввода-вывода, ограничения / требования к памяти, включая, возможно, разбиение на страницы, процедуры обслуживания прерываний. " Что лучше: изучить тот, который я буду использовать позже, или высокий уровень концепция должна быть перенесена на большинство микроконтроллеров?

Спасибо!

обновление: как этот комплект разработчика для Начало? Комментарий? предположение?


person Community    schedule 26.01.2010    source источник
comment
предлагать встроенные, а не программирование - почти все вопросы на этом сайте касаются программирования   -  person Jason S    schedule 26.01.2010
comment
Arduino - это не микроконтроллер, это торговая марка платы для разработки, на которой установлен микроконтроллер Atmel AVR. Atmel - это не микроконтроллер, это компания, продукты которой включают в себя ряд архитектур микроконтроллеров, включая AVR, AVR32 и ARM. Точно так же Freescale - это компания, у которой есть несколько различных архитектур, включая ARM, PowerPC и ColdFire. Итак, два ваших предложения не определяют архитектуру, а одно - дубликат.   -  person Clifford    schedule 27.01.2010
comment
@Clifford, спасибо, я только что модифицировал свой Q. Arduino не является микроконтроллером как таковым, но, насколько я понимаю, у него есть некоторая абстракция, которая делает программирование микроконтроллера проще, чем прямо на микроконтроллере Atmel AVR? из-за .. загрузчика?   -  person Henry    schedule 27.01.2010
comment
@ Генри Я не вижу ничего плохого в EKI-LM3S3748. Он использует драйверы FTDI для имитации JTAG через USB. Так что покупать программиста не придется. 109 долларов кажутся разумной ценой за то, что вы получаете. Также не забудьте прочитать Руководство по выбору недорогих инструментов для Cortex-M3 (см. Мой ответ по ссылке).   -  person Judge Maygarden    schedule 28.01.2010
comment
Большое спасибо, судья, где твой список желаний на Amazon? :)   -  person Henry    schedule 28.01.2010
comment
Мой список желаний для Amazon находится прямо здесь: amzn.com/w/2453UELU5UG4N;)   -  person Judge Maygarden    schedule 28.01.2010
comment
Спасибо, Генри! В минувшие выходные я получил приятный сюрприз в коробке от Amazon.   -  person Judge Maygarden    schedule 08.02.2010
comment
Не используйте Arduino для изучения деталей низкого уровня, он не предназначен для этого. Используйте любую хорошо задокументированную оценочную доску, CodeFire по моему опыту - хороший выбор.   -  person W.Sun    schedule 30.12.2013


Ответы (14)


Лично я бы порекомендовал микроконтроллер на базе ARM Cortex-M3. Ядра ARM с повышенной мощностью чрезвычайно популярны, и эти маломощные версии вполне могут стать популярными в космосе. который до сих пор завален проприетарными 8/16-битными ядрами. Вот недавняя статья на эту тему: ARM Cortex-M3 и конвергенция рынка микроконтроллеров < / em>.

Arduino очень популярен среди любителей. Периферийная библиотека Atmel довольно распространена для разных типов процессоров. Таким образом, это сгладит последующий переход от AVR к ARM.

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

Также загляните в FreeRTOS, если вы заинтересованы в разработке операционных систем реального времени (RTOS). Это открытый исходный код, в котором подробно рассказывается, что такое RTOS и как они ее реализовали. Фактически, их пошаговый пример даже нацелен на AVR.


Инструменты разработки для встраиваемых систем могут быть очень дорогими. Однако часто есть альтернативы с открытым исходным кодом для более открытых ядер, таких как ARM и AVR. Например, см. WinARM и WinAVR проекты.

Эти цепочки инструментов основаны на GCC и, таким образом, также доступны (и их проще использовать, IMHO) на платформах, отличных от Windows. Если вы знакомы с использованием GCC, то знаете, что существует множество "IDE" на ваш вкус из EMACS и vi (мой любимый) на Eclipse.

Коммерческие предложения могут избавить вас от многих головных болей при настройке. Однако выбор одного из них будет во многом зависеть от вашего целевого оборудования и бюджета. Кроме того, некоторое оборудование поддерживает прямую отладку по USB, в то время как для других может потребоваться дорогой адаптер JTAG.


Другие ссылки:


Недорогие платы Cortex-M3:


Новый Arduino для использования ARM Cortex- M3 вместо микроконтроллера AVR.

person Judge Maygarden    schedule 26.01.2010
comment
Спасибо за ссылку, это действительно интересно, но меня беспокоит стоимость микроконтроллера на базе ARM. beagleboard.org кажется хорошей идеей, но все ли микроконтроллеры / процессоры на базе ARM совместимы с одним и тем же кодом кода ARM? Спасибо. - person Henry; 26.01.2010
comment
Плата Beagle использует ARM Cortex-A8, который полностью отличается от ARM Cortex-M3. A8 имеет частоту 500+ МГц, имеет MMU, FPU, а плата Beagle имеет пару сотен мегабайт оперативной памяти и слот для SD-карты для ГБ флэш-памяти и предназначена для работы с ОС, такой как Linux. M3 работает только с частотой 72 МГц, имеет десятки КБ ОЗУ и 100 КБ флэш-памяти и представляет собой «настоящую» встроенную систему с ограничениями производительности, о которых вам нужно знать. - person KeyserSoze; 26.01.2010
comment
@Henry Если вы придерживаетесь переносимого кода C и не учитываете периферийные устройства конкретных производителей, то код на основе ARM совместим. Однако существует 3 варианта ассемблера ARM. Существует исходная 32-разрядная версия и часто необязательный 16-разрядный вариант Thumb. Cortex-M0 / 3 имеет только новый Thumb2, который должен соответствовать посередине в том, что касается скорости выполнения по сравнению с размером кода. - person Judge Maygarden; 26.01.2010
comment
Есть ли комплект разработчика для ARM Cortex-M3? насколько ARM Cortex-M3 по сравнению с аналогичным по производительности чипом Atmel? Спасибо. - person Henry; 26.01.2010
comment
@Henry Почему бы вам не указать желаемый бюджет и функции (USB, ЖК-дисплей, NAND-память и т. Д.), А затем люди могли бы сделать подробные предложения? У меня есть платы для разработки Atmel и ST Cortex-M3, которые стоили от 200 до 300 долларов, если я правильно помню. Также есть много других провайдеров (например, NXP, Toshiba, TI и т. Д.). - person Judge Maygarden; 26.01.2010
comment
@Henry Я хочу повторить, что я слышал только хорошее о микроконтроллерах AVR, как в Arduino. Просто я лично ими не пользовался. Так что я не могу изложить их так полно. - person Judge Maygarden; 26.01.2010
comment
Я еще не уверен, какая функция мне нужна, бюджет = ‹200 долларов в порядке. Я просто хочу немного попрактиковаться в программировании встраивания на C / C ++ и работе с датчиками, двигателем и ЖК-дисплеем. Спасибо! - person Henry; 26.01.2010
comment
Вы слышали о стандарте программного интерфейса микроконтроллера Cortex onarm.com? Что это такое и что это дает? Означает ли это, что если мой код C использует CMSIS, то он должен работать на всех микроконтроллерах на базе ARM? круто ... абстракция хороша .. - person Henry; 26.01.2010
comment
Да, я недавно работал с CMSIS с вариантами STM32 и SAM3U. Он унифицирует код запуска и доступ к встроенным / основным функциям Cortex-M3, таким как режимы пониженного энергопотребления и контроллер прерываний. Все остальные периферийные устройства (SPI, ADC, UART и т. Д.) По-прежнему будут зависеть от производителя. - person Judge Maygarden; 26.01.2010
comment
с бюджетом ~ 200 долларов, какой комплект разработчика мне выбрать? Спасибо. - person Henry; 27.01.2010
comment
и .. в какой ситуации мне нужно использовать RTOS? Спасибо. - person Henry; 27.01.2010
comment
@Henry RTOS значительно упрощает реагирование на несколько приоритетных асинхронных событий. Даже если это так, вы должны взвесить дополнительную память и затраты на обработку, прежде чем принимать решение об использовании RTOS вместо развертывания собственного решения для планирования. - person Judge Maygarden; 29.01.2010
comment
Re: Бюджет - Платы для разработчиков дороги, так как продаются в низком качестве (по одной на разработчика). Сами чипы на удивление дешевы, если покупать их тысячами. - person doppelfish; 03.02.2010
comment
Re: RTOS - Выберите плату, на которой работает Linux. Используйте RTOS только в том случае, если вы должны соответствовать требованиям реального времени. ОСРВ, как правило, несколько мягкие и отвратительные, и их трудно заставить работать вообще, а программирование против них без поддержки производителя может занять много времени. - person doppelfish; 03.02.2010
comment
@dopplefish У меня был отличный опыт использования FreeRTOS для целей STM32 и SAM3U, но я привык работать без ОС. Предлагать Linux для AVR или Cortex-M3 не очень практично. - person Judge Maygarden; 04.02.2010

Учитывая, что у вас уже есть опыт программирования, вы можете подумать о том, чтобы приобрести Arduino и стереть прошивку, чтобы делать свои собственные вещи с помощью AVR Studio + WinAVR. Arduino дает вам хорошую отправную точку в понимании того, что касается электроники. Удаление загрузчика Arduino даст вам лучший доступ к внутренностям Atmel.

Чтобы достичь поставленных вами целей, я также рекомендовал бы более глубоко изучить настольные компьютеры с помощью программирования x86. Например, вы можете собрать ядро ​​операционной системы x86.

person Brian    schedule 26.01.2010
comment
стирание прошивки = де-Ардуино? круто, никогда не думал об этом. Ваш совет сначала изучить эти концепции в x86, потому что ... цикл разработки намного короче и легче отлаживать? Пожалуйста, дайте мне более подробную информацию о том, как изучить программирование ядра C и как я могу позже применить эти знания при программировании микроконтроллеров. Я думала, это совершенно разные предметы .. Спасибо. - person Henry; 26.01.2010
comment
В основном потому, что x86 очень хорошо документирован. Также легче увидеть, что вы делаете. К тому же он у вас уже есть. Большая часть концептуального материала, связанного с микроконтроллерами, также применима к низкоуровневому материалу на настольном компьютере. Вы можете прочитать некоторые подробности здесь: osdever.net/bkerndev/index.php?the_id = 90, а здесь есть руководство в стиле кулинарной книги: jamesmolloy.co.uk /tutorial_html/index.html. - person Brian; 26.01.2010
comment
Спасибо за совет, но я думаю, что сразу перейду к программированию микроконтроллера на C. Какой комплект разработчика AVR вы бы порекомендовали? Хотел бы попробовать AVR Studio / WinAVR, управляя каким-нибудь светодиодом / регулятором, динамиком, мортиром или чем-то еще интересным. Спасибо. - person Henry; 27.01.2010
comment
Если вы знаете базовую электронику, вам даже не понадобится комплект разработчика для AVR, его очень легко установить на макетной плате. Тогда достаточно найти программиста. - person starblue; 27.01.2010

ARM - это наиболее широко используемая встраиваемая архитектура, охватывающая огромный диапазон устройств от различных поставщиков и широкий диапазон затрат. Тем не менее, есть существенные различия между устройствами ARM7, 9, 11 и Cortex, особенно Cortex. Однако, если ваша цель - профессионально заняться встраиваемыми системами, опыт ARM вам пригодится.

8-битные архитектуры, как правило, проще в использовании, но они часто очень ограничены как по объему памяти, так и по скорости ядра. Кроме того, потому что они просты в использовании, 8-битные навыки относительно легко приобрести, поэтому это менее привлекательный навык для потенциального работодателя, потому что его легко реализовать внутри компании или с менее опытным (и, следовательно, менее дорогостоящим) персоналом.

Однако если это хобби, а не карьера, низкая стоимость деталей, плат и инструментов, а также простота использования могут сделать 8 bit привлекательным. Я бы посоветовал AVR просто потому, что он поддерживается бесплатным набором инструментов avr-gcc. Некоторые 8-битные цели поддерживаются SDCC, другим компилятором C. Я считаю, что Zilog делает свой компилятор Z8 бесплатным, но вам, возможно, придется заплатить за оборудование для отладки (хотя это относительно недорого). Многие поставщики коммерческих инструментов предоставляют версии своих инструментов с ограниченным размером кода для оценки и некоммерческого использования, но будьте осторожны, большинству отладчиков требуется специальное оборудование, которое может быть дорогостоящим, хотя в некоторых случаях вы можете собрать его самостоятельно, если вам нужны только базовые функции и низкие скорости.

Что бы вы ни делали, смотрите на www.embedded.com. Если вы выберете ARM, я успешно использовал WinARM в коммерческих проектах, хотя он не создан для удобства! Хороший список ресурсов ARM доступен здесь. Для AVR обязательно посетите www.avrfreaks.net

Я бы порекомендовал только компоненты Microchip PIC (по крайней мере, самые дешевые) для высокозатратных проектов, где микс периферийных устройств хорошо подходит для приложения; не для изучения встроенных систем. PIC - это скорее брендинг, чем архитектура, различные диапазоны PIC12, 16, 18, 24 и PIC32 сильно отличаются друг от друга, поэтому изучение одного не обязательно поможет вам использовать другой - часто вам даже нужно приобрести новые инструменты! Тем не менее, dsPIC, основанный на архитектуре PIC24, может быть хорошим выбором, если вы одновременно хотите получить простой опыт работы с DSP.

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

person Community    schedule 26.01.2010
comment
Используется ли AVR вообще в коммерческих продуктах? Или это в основном используется любителями? - person Henry; 27.01.2010
comment
Какой хороший ide / toolchain для ARM Cortex-M3? Нужен ли мне аппаратный отладчик для запуска? Что они делают? Спасибо. - person Henry; 27.01.2010
comment
Ни один поставщик микросхем не выживет, только обслуживая рынок любителей. AVR широко используются в коммерческих продуктах. - person Clifford; 27.01.2010
comment
AVR и PIC обычно борются за лидирующую позицию на рынке 8-битных UC, поэтому оба широко используются в коммерческих целях. Microchip действительно предлагала купить Atmel еще в 2008 году, хотя в Atmel ничего не сказали. - person Mark; 29.01.2010
comment
8-битные устройства всех видов, включая AVR, широко используются в коммерческих продуктах, но это, как правило, простые, недорогие или глубоко встроенные устройства, такие как игрушки, контроллеры отопления, бытовая техника и т. Д. Так что вы можете не знать о них , но они, вероятно, составляют подавляющее большинство приложений. Atmel утверждает, что им принадлежит 30% рынка 8-битных флэш-микроконтроллеров. В разное время Microchip и Atmel претендовали на звание номер один. Но в любом случае AVR - это лучший технический дизайн по сравнению с PIC низкого уровня, и его набор команд лучше подходит для генерации кода C. - person Clifford; 30.01.2010

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

Если ваша цель - просто немного глубже погрузиться во внутреннюю работу вычислительных систем, я почти рекомендую вам отказаться от встроенного маршрута и взять книгу по написанию модуля ядра Linux. Напишите что-нибудь простое, что считывает датчик температуры с SMbus или что-то в этом роде.

Если вы хотите заняться разработкой встроенных приложений высокого уровня (телефоны и т. Д.), Загрузите Android SDK, вы можете писать код на java под eclipse и даже иметь хороший эмулятор.

Если вы хотите попасть в «реальное» пространство микроконтроллеров и действительно взглянуть на низкоуровневое системное программирование, я бы порекомендовал вам начать с очень простой архитектуры, такой как AVR или PIC, что-то без MMU.

Погружение в золотую середину, например, ARM с MMU и какой-то ОС, будь то linux или что-то еще, будет немного шоком, поскольку без фона есть как системное программирование, так и аппаратный интерфейс, я думаю, что переход будет очень грубым если вы планируете заниматься чем-то другим, кроме написания очень простых приложений, подсчета нажатий кнопок или чего-то подобного.

person Community    schedule 28.01.2010
comment
побочный вопрос, похож ли уровень сложности AVR на Freescale HC08 / HC12? Спасибо. - person Henry; 28.01.2010
comment
AVR, такой как ATmega328 (Arduino), является 8-битным микроконтроллером и будет аналогичен HC08 по конструкции / возможностям, и оба аналогичны компонентам низкого уровня PIC18 или PIC16. HC12 - это 16-битный MCU, который больше всего похож на PIC24, dsPIC или AVR XMEGA. Я считаю, что все эти микроконтроллеры являются RISC-конструкциями и используют гарвардскую архитектуру. Что действительно стоило моего первого знакомства с программированием MCU, так это изучение сборки на ядре 68HC11, которое является предшественником HC12. Оттуда я перешел к PIC, а затем и к более сложным ядрам. - person Mark; 29.01.2010

Texas Instruments выпустила очень интересный комплект разработчика по очень низкой цене: eZ430-Chronos Development Tool содержит MSP430 с дисплеем и различными датчиками в спортивных часах, включая программатор отладки USB и точку доступа USB-радио за 50 $

Также существует вики, содержащая много-много информации.

Я уже создал предложение по обмену стека для eZ430-Chronos Набор.

person Community    schedule 14.07.2010

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

На мой взгляд, вы должны начать с - Любой платы AVR (atmega 328P - платы arduino или платы AVR), затем вам следует перейти к микроконтроллеру ARM - сначала выполните ARM CORTEX TDMI, затем плату ARM Cortex M3. Таким образом, вы получите общее представление после чего вы можете выбрать любую доску в зависимости от того, над каким проектом вы работаете и каковы ваши требования.

person Community    schedule 08.07.2019

Что бы вы ни делали, убедитесь, что у вас хорошая среда разработки. Я не являюсь поклонником инструментов разработки Microchip, хотя мне нравятся их микроконтроллеры (MPLAB + ICD слишком много раз сжигал меня, слишком много хлопот и дисфункций). DSP TI серии 2800 довольно хороши и имеют среду разработки C ++ на основе Eclipse, в которую вы можете войти за ‹100 долларов США (получите один из экспериментальных наборов на основе" controlCARD ", например, для 28335) - канал связи отладчика действительно надежный; IDE хороша, хотя иногда случается сбой.

Где-то есть более качественные микросхемы и платы; Я не так хорошо знаком с ландшафтом встроенных микроконтроллеров, но у меня нет особого терпения к плохим IDE с еще одной цепочкой программных инструментов, в которой мне нужно выяснить, как обойти все ошибки.

person Jason S    schedule 26.01.2010
comment
Я поддержу это. Хорошие инструменты разработки имеют огромное значение и, возможно, более важны, чем выбор микроконтроллера. - person semaj; 26.01.2010
comment
Да, поэтому я задаю этот вопрос с IDE рядом с микросхемами ... :) - person Henry; 26.01.2010
comment
Примечание к ситуации с PIC ICD: если вы планируете вообще возиться со схемой или даже оставить электронику незащищенной, возьмите запасной программатор PIC, я сжег их кучу, у них очень плохая защита от высокого напряжения. напряжение / короткое замыкание. - person Mark; 29.01.2010

Некоторые рекомендуют ARM. Я бы рекомендовал ее не как первую платформу для изучения, а как вторую платформу. ARM - немного сложная платформа для изучения низкоуровневых деталей встраиваемых систем, потому что ее код запуска и требования к инициализации сложнее, чем у многих других микропрограмм. Но ARM - крупный игрок на рынке встраиваемых систем, поэтому стоит научиться. Так что я бы порекомендовал это как вторую платформу для изучения.

Atmel AVR был бы хорош для изучения многих встроенных основ по трем основным причинам:

  1. Архитектура достаточно проста
  2. Доступны хорошие комплекты для разработки с учебными пособиями
  3. Форум поклонников с множеством ресурсов

Также могут подойти другие микросхемы с средствами разработки, например MSP430 - хотя у них может и не быть такого фан-форума. Использование средств разработки - хороший способ, поскольку они ориентированы на быстрое освоение микроконтроллера и способствуют эффективному обучению. Скорее всего, у них есть руководства, ориентированные на быстрое начало работы.

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

Я не поклонник PIC, по крайней мере, PIC16, из-за их архитектуры . Это не очень удобно для Си. А банки памяти болезненны.

person Community    schedule 27.01.2010
comment
Однако я не хочу использовать язык программирования Arduino. Легко ли использовать Arduino Mega с AVR Studio? Кроме того, как я могу научиться управлять электродвигателем или использовать ЦАП с Arduino Mega? Будет ли более выгодным комплект разработчика с более широким набором функций? Спасибо - person Henry; 27.01.2010
comment
Конечно, нет необходимости использовать программное обеспечение Arduino. Напишите свой код, используя AVR studio, и загрузите его на плату, используя программное обеспечение для программирования напрямую. Что касается двигателей или ЦАП, я уверен, что найдутся платы для разработки, которые подойдут. Поиск в Google должен что-то найти. - person Craig McQueen; 27.01.2010

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

Я начал использовать одну из них (плата разработчика MBED). Большими преимуществами для меня было то, что я мог кодировать на C или C ++, прямое подключение к USB и удобную среду разработки в режиме онлайн (установка локального инструмента не требовалась вообще!).

http://mbed.org/

Через пять минут после открытия коробки у меня была пробная программа для моргания («привет, мир!»), Выполнявшая следующее:

#include "mbed.h"

DigitalOut myled(LED1);

int main()
{
    while(1)
    {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

Вот и все! Выше полная программа!

Он основан на ARM Cortex M3, быстр и имеет много памяти для встраиваемых проектов (100 МГц, 256 КБ флэш-памяти и 32 КБ оперативной памяти). У онлайн-инструментов разработчика есть очень хорошая библиотека, множество примеров и очень активный форум. Обширная помощь по подключению устройств к MBED и т. Д.

Несмотря на то, что у меня большой опыт работы со встроенными системами (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC и т. Д.), Я все же обнаружил, что это очень простая система, с которой можно справиться, имея серьезные возможности.

Сначала поиграв с ним на базовой макетной плате, я купил базовую плату у этих ребят: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207. У этого есть куча устройств ввода-вывода (включая миниатюрный OLED-экран и 3-осевой акселерометр). На том же сайте я также купил одну из процессорных плат LCPExpresso, которая дешевая, с меньшим энергопотреблением и памятью, чем у MBED, но идеально подходящая для небольших задач (все еще выбивает дерьмо из процессоров PIC / Atmega). Базовая плата поддерживает как LCPExpresso, так и MBED. Приобретение процессорной платы LCPExpress также дало мне прикрепленный отладчик JTAG и автономную среду разработки (комплект разработчика Code Red на основе GCC / Eclipse). Это намного сложнее, чем онлайн-среда разработки MBED, но является логическим продолжением после того, как вы приобрели опыт работы с MBED.

Что касается моей первоначальной точки зрения, то контроллер MBED намного более эффективен, чем контроллер LPCExpresso, НО гораздо проще в использовании и обучении.

person Community    schedule 04.02.2010

Я использую микрочипы PIC, это то, с чего я начал, в основном я занялся этим из-за 123 проектов микроконтроллеров для книги злого гения. Я взял уроки микропроцессоров в школе для получения степени и немного узнал о прерываниях, времени и многом другом, это очень помогло с моими микроконтроллерами. Я полагаю, что некоторые другие программисты и т. Д. Могут быть лучше / проще, но за 36 долларов за PicKit1 я слишком дешев, чтобы покупать еще один ... и, честно говоря, не используя их, я не знаю, легче ли они / лучше Мне нравится мой и я рекомендую его при каждой возможности, и мне потребовалась целая вечность, чтобы по-настоящему взглянуть на него, но, наконец, я смог запрограммировать другой чип вне платы с ICSP. Я не знаю, что делают другие программисты, но для меня это самая приятная вещь, 5-проводный интерфейс, и вы запрограммированы. Это не победить палкой ...

person Community    schedule 15.02.2010

Я использовал только один из них.

Freescale - прекрасная фишка. Я годами использовал чипы HC-something для небольших проектов. Единственное предостережение: я бы не стал трогать CodeWarrier со встроенным 10-футовым шестом. Вы можете найти небольшие бесплатные компиляторы и ассемблеры C (я не помню названия последнего из них), которые отлично справляются с этой задачей. Codewarrior был большим и запутанным, и независимо от того, насколько я знал об архитектуре чипа и программировании на C, всегда казалось, что это только усложняет задачу. Если вы когда-то использовали Codewarrior на Mac и думаете, что CW довольно удобен, что ж, это совсем не так. Встроенный CW выглядит отдаленно похожим, но он работает совсем по-другому и не очень хорошо.

Компилятор командной строки обычно прекрасен. Профессионалы, которые могут выложить большие деньги, получают дорогостоящие среды разработки, и я уверен, что они делают вещи лучше, но без этого это все равно намного лучше, чем писать ассемблерный код для настольного ПК в 1990 году, и каким-то образом нам это удалось. . :-)

person Community    schedule 19.03.2010
comment
По моему опыту, профессионалы хотели бы, чтобы они могли выбросить дорогостоящую IDE с ее дерьмовым редактором и повреждением файлов и получить некоторые реальные инструменты для использования с компилятором командной строки. :) - person XTL; 09.01.2012

Вы можете подумать о RoBoard. Эта плата может не быть тем, что вы ищете с точки зрения микроконтроллера, но у нее есть то преимущество, что она позволяет запускать Windows или DOS, и, таким образом, вы могли используйте Microsoft .NET или даже инструменты разработки C / C ++, чтобы возиться с такими вещами, как сервоприводы или датчики, или даже, что за черт, построить робота! На самом деле это довольно весело.

Также существует Axon II с процессором ATmega640.

В любом случае обе доски должны помочь вам в достижении вашей цели.

Извините за фокус на робототехнике, просто то, что меня интересует, и я подумал, что это может вам тоже помочь.

person Community    schedule 26.01.2010
comment
RoBoard - это всего лишь небольшой одноплатный компьютер. Он не будет заниматься разработкой встроенных систем как таковой. - person Trent; 27.01.2010
comment
@ Трент - Вот почему я сказал, что, возможно, это не то, что он ищет, однако, как я уже сказал, он все еще сможет управлять сервоприводами, датчиками и т.д ... Плюс он может запустить встроенную Windows XP ... - person ; 27.01.2010

Я использую PIC, но, если бы выбрал сегодня, подумал бы об Arduino. Но из ваших целей:

  • как работают порты ввода-вывода
  • ограничения / требования к памяти
  • процедуры обслуживания прерываний

Интересно, лучше ли вам просто взломать ядро ​​Linux?

person Community    schedule 12.02.2010

BBC Micro Bit

https://en.wikipedia.org/wiki/Micro_Bit

Эта дешевая маленькая доска (~ 20 фунтов) был предоставлен ARM Holdings в качестве учебного пособия, и 1 миллион единиц были бесплатно выданы британским студентам.

Он содержит ARM Cortex-M0, самое маленькое ядро ​​ARM из всех.

Я рекомендую ее в качестве первой платы микроконтроллера из-за ее широкой доступности, низкой стоимости, простоты и того факта, что она знакомит вас с архитектурой ARM, которая имеет гораздо более совершенные платы, также доступные для более серьезных приложений.

person Community    schedule 06.01.2019