Заинтересован в программировании устройств. Когда начать

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

Когда начать ?

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

Я использую Линукс. и я скачал Кейл. никогда не пробовал запускать через Wine. Я запускал его в Windows. Но как работает код мне не до конца понятно. хотя я могу понять логику, поскольку она написана на C. Но для меня это все еще как туман.
Мне просто нужен быстрый кикстарт.


person Neel Basu    schedule 25.09.2010    source источник


Ответы (2)


SO - не лучший сайт для таких вопросов. Между программированием для ПК и программированием для встроенной системы действительно существует большая разница, другие сайты SE специализируются на физических вычислениях. Я получил это электронное письмо от Роберта Картайно во вторник:

... За исключением любого интереса в последнюю минуту со стороны [chiphacker.com], мы запустим [electronics.stackexchange.com] либо завтра [среда, 22 сентября], либо в четверг.

Итак, перейдите на electronics.stackexchange.com здесь и, пока ждете, просмотрите chiphacker.com. Взгляните на эти вопросы на Chiphacker:

Есть несколько моментов, которые следует учитывать при планировании пути входа в программирование встраиваемых систем.

  • Что ты хочешь делать?
  • Что ты умеешь делать?
  • Насколько быстро вам комфортно учиться?

В следующих абзацах я описал несколько вариантов.

Вы отметили свой вопрос linux-device-driver. Значит ли это, что вы хотите создать собственное устройство для использования в Linux? Если вы имели в виду embedded-linux, то вы принадлежите к более широкому классу микроконтроллеров. Я предлагаю вам взглянуть на BeagleBoard, а также на этот вопрос Chiphacker для некоторых других вариантов. Если вы хотите сделать встроенный Linux и хотите создать свою собственную плату, вам сначала нужно накопить некоторый опыт в более простых уровнях проектирования встроенных систем.

Вы также отметили свой вопрос avr, который представляет собой популярный класс микроконтроллеров, созданный Atmel (дополнительную информацию см. на форуме avrfreaks). Информация). Встраиваемые системы я начал изучать на ATmega324p; у них действительно отличная документация, они просты в использовании, и в Интернете больше сайтов для avr, чем для большинства других процессоров.

Если вам нужно более легкое обучение, я предлагаю взглянуть на среду Arduino. Он использует Wiring, который очень похож на C/C++, а Arduino можно улучшить с помощью ' щиты», которые представляют собой модули, которые можно подключить к основной плате Arduino для добавления функциональности. Это ваш быстрый старт.

Хорошим путем обучения будет знакомство с Arduino, затем создание собственной платы AVR (возможно, устройства Linux, например джойстика), а затем работа с комплект для разработки на основе ARM и, наконец, перейти к созданию собственной встроенной платы Linux. Вы можете пропустить несколько шагов, если не возражаете против крутой кривой обучения, или остановиться в любой момент, если возможности данного уровня удовлетворяют ваши потребности. Вам не обязательно нужно «огромное количество знаний в области электроники, чтобы запустить программу на микроконтроллере», это правда, но вы должны понимать некоторые основные вещи, такие как напряжение и ток, прежде чем пытаться зажечь светодиод или соединить два устройства.

Наконец, в своем вопросе вы сказали, что установили Keil IDE. Хотя это хорошая и довольно популярная IDE, я бы посоветовал вам научиться использовать набор инструментов командной строки на основе gcc. Существует ошеломляющее количество способов, которыми что-то может пойти не так при работе со встроенными системами, и IDE добавляет слой магии поверх всего, что происходит. Хотя это может быть приятно, я ярый сторонник минимизации волшебства при попытке изучить систему. Вам нужно понимать низкоуровневые вещи, когда что-то не работает автоматически. Этот совет не применим при использовании Arduino, который предназначен (и делает) для того, чтобы все автоматические магические вещи работали хорошо.

person Kevin Vermeer    schedule 25.09.2010
comment
Хороший ответ. Но нужно ли мне что-то покупать перед запуском? Сколько это будет стоить ? или я должен использовать эмуляторы, чтобы учиться? - person Neel Basu; 26.09.2010
comment
@user - Обязательно что-нибудь куплю. Если вы можете позволить себе Arduino за 30 долларов или даже комплект MSP430 за 4,30 доллара (не рекомендуется в качестве первого комплекта), вы получите гораздо больше удовольствия и будете лучше продолжать учиться. - person Kevin Vermeer; 29.09.2010

На sparkfun.com есть много плат, семейства arduino и прочего. Я рекомендую armmite pro, lillypad вместо arduino pro, потому что пайка не требуется, так как вам понадобится / нужен правильный USB для последовательного порта / питания. mbed2 стоит немного дороже, синие светодиоды неприятны для глаз, но просты в использовании. Ни для одного из вышеперечисленных вам не требуется играть в их песочнице, вы можете использовать консервированную среду и т. д., но не обязательно.

если вы занимаетесь разработкой под Linux, я рекомендую hawkboard.org, а не beagleboard.org, чтобы сделать биглборд пригодным для использования стоит примерно в два раза больше, чем сама доска, доску можно использовать, только купив что-то для ее питания. Но вы можете просто изучить драйверы Linux на своем настольном компьютере / ноутбуке, и вам не обязательно возиться со встроенными.

Эмуляторы — хорошее начало. Qemu — хорошая штука, эмулирует ряд процессоров, отлично подходит для эмуляции виртуальных Linux-систем, изучения разработки драйверов Linux и т. д. Но целью не является получение информации о том, что делает (виртуальный/эмулируемый) процессор. Я считаю полезным иметь видимость. gdb также включает в себя несколько эмуляторов. mame загружен ими, но, как и qemu, предназначен для быстрой эмуляции, а не для обучения. Визуальное продвижение мальчика хорошо. Эмуляция никогда не бывает идеальной, поэтому в конечном итоге вы захотите работать на оборудовании, но эмуляторы и инструменты компилятора бесплатны, и вы можете многому научиться, прежде чем покупать оборудование. Тем не менее, вы не можете многому научиться на эмуляторе, загружая свои программы во флэш-память/память, отлаживая с помощью jtag или других интерфейсов. i2c, спи и т.д.

person old_timer    schedule 27.09.2010