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